怎么在Linux中查命令或进程的执行时间

  介绍

这篇文章将为大家详细讲解有关怎么在Linux中查命令或进程的执行时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在Linux中查找一个命令或进程的执行时间

要测量一个命令或程序的执行时间,运行:

<代码>美元/usr/bin/time ls - p

或者,

<代码> $ ls时间

输出样例:

dir1  dir2  file1  file2  mcelog   real  0 m0.007s   user  0 m0.001s   sys  0 m0.004s   美元,time  ls  a   只.bash_logout  dir1  file2  mcelog  .sudo_as_admin_successful   . .,.bashrc  dir2  .gnupg  .profile  .wget-hsts   .bash_history  .cache  file1  .local  .stack   real  0 m0.008s   user  0 m0.001s   sys  0 m0.005s

以上命令显示出了ls命令的总执行时间。你可以将ls替换为任何命令或进程,以查找总的执行时间。

输出详解:

<李>

真实——指的是命令或程序所花费的总时间

<李>

用户,指的是在用户模式下程序所花费的时间

<李>

sys -指的是在内核模式下程序所花费的时间

我们也可以将命令限制为仅运行一段时间。参考如下教程了解更多细节:

在Linux中如何让一个命令运行特定的时长

<强>时间与/usr/bin/time

你可能注意到了,我们在上面的例子中使用了两个命令时间和/usr/bin/time。所以,你可能会想知道他们的不同。

首先,让我们使用类型命令看时间看命令到底是什么。对于那些我们不了解的Linux命令,命型令用于查找相关命令的信息。更多详细信息,请参阅本指南。

,美元type  -a 时间   time  is  a  shell 关键字   time  is /usr/bin/时间

正如你在上面的输出中看到的一样,时间是两个东西:

<李>

一个是BASH shell中内建的关键字

<李>

一个是可执行文件,如/usr/bin/time

由于壳关键字的优先级高于可执行文件,当你没有给出完整路径只运行时间命令时,你运行的是壳内建的命令。但是,当你运行/usr/bin/time时,你运行的是真正的GNU时间命令,因此,为了执行真正的命令你可能需要给出完整路径。

在大多数壳中如BASH, ZSH, CSH、KSH, TCSH等,内建的关键字时间是可用的。时间关键字的选项少于该可执行文件,你可以使用的唯一选项是- p。

你现在知道了如何使用时间命令查找给定命令或进程的总执行时间。想进一步了解GNU时间工具吗?继续阅读吧!

<强>关于GNU时间程序的简要介绍

GNU时间程序运行带有给定参数的命令或程序,并在命令完成后将系统资源使用情况汇总到标准输出。与时间关键字不同,GNU时间程序不仅显示命令或进程的执行时间,还显示内存、I/O和IPC调用等其他资源。

时间命令的语法是:

/usr/bin/time [选项],command [论点…)

上述语法中的选项是指一组可以与时间命令一起使用去执行特定功能的选项。下面给出了可用的选项:

<李>

- f,格式——使用此选项可以根据需求指定输出格式。

<李>

- p、可移植性——使用简要的输出格式。

<李>

- o文件,与产出=文件——将输出写到指定文件中而不是到标准输出。

<李>

——,附加——将输出追加到文件中而不是覆盖它。

<李>

- v, - verbose——此选项显示时间命令输出的详细信息。

<李>

安静——此选项可以防止时间命令报告程序的状态。

当不带任何选项使用GNU时间命令时,你将看到以下输出。

,美元/usr/bin/time  wc /etc/主机   9日,273年,28日,/etc/主机   0.00 user  0.00 system  0:00.00elapsed  cpu  66%; (0 avgtext + 0 avgdata  2024 maxresident) k   输入0 + 0 outputs (0 + 73小)主要pagefaults  0互换

如果你用壳关键字时间运行相同的命令,输出会有一点儿不同:

,美元time  wc /etc/主机   9日,273年,28日,/etc/主机   real  0 m0.006s   user  0 m0.001s   sys  0 m0.004s

有时,你可能希望将系统资源使用情况输出到文件中而不是终端上。为此,你可以使用- o选项,如下所示。

怎么在Linux中查命令或进程的执行时间