关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

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

发布时间:2021-04-06 19:34:07

本文将详细解释如何在Linux中检查命令或进程的执行时间。文章内容质量较高,微子网络将与大家分享,以供参考。希望大家看完这篇文章后对相关知识有一定的了解。

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

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

$ /usr/bin/time -p ls

或者,

$时间ls

样本输出:

dir 1 dir 2 file 1 file 2 celog

real0m0.007s

user0m0.001s

sys0m0.004s

$timels-a

.bash _ logout dir 1 file 2 mcelog . sudo _ as _ admin _ success

.bashrcdir 2 . GnuPG . profile . wget-hsts。bash _ history . cachefile 1 . local . stack

real0m0.008s

user0m0.001s

上面的命令sys0m0.005s显示了ls命令的总执行时间。您可以用任何命令或进程替换ls来计算总执行时间。

输出详细信息:

Real ——指的是一个命令或程序花费的总时间

用户——指程序在用户模式下花费的时间

Sys ——指的是程序在内核模式下花费的时间

我们也可以限制命令只运行一段时间。有关更多详细信息,请参考以下教程:

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

time 与 /usr/bin/time

您可能已经注意到,在上面的示例中,我们使用了两个命令time和/usr/bin/time。所以,你可能想知道他们之间的区别。

首先,让我们使用type命令来看看时间命令是什么。对于那些我们不知道的Linux命令,type命令用来查找相关命令的信息。有关更多详细信息,请参见本指南。

$type-atime

timeisashellkeyword

Timeis/usr/bin/time正如您在上面的输出中看到的,时间是两件事:

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

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

因为shell关键字的优先级比可执行文件高,所以当运行time命令而没有给出完整路径时,就运行了shell的内置命令。但是,当您运行/usr/bin/time时,您运行的是真正的GNU time命令。因此,为了执行真正的命令,您可能需要给出完整的路径。

在大多数shell中,如BASH、ZSH、CSH、KSH、TCSH等。内置关键字time可用。time关键字的选项比可执行文件少,唯一可以使用的选项是-p。

现在,您知道如何使用time命令来查找给定命令或进程的总执行时间。想了解更多GNU时间工具?继续读!

关于 GNU time 程序的简要介绍

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

时间命令的语法是:

/usr/bin/time[选项]命令[参数.]以上语法中的选项指的是一组可与time命令一起使用来执行特定功能的选项。以下选项可用:

-f,format——使用此选项根据需要指定输出格式。

-p,便携性——使用简短的输出格式。

-o file,output=file ——将输出写入指定的文件,而不是标准输出。

-a,append ——将输出附加到文件,而不是覆盖它。

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

quiet该选项防止时间命令报告程序状态。

当您在没有任何选项的情况下使用GNU时间命令时,您将看到以下输出。

s="brush:bash;">$/usr/bin/timewc/etc/hosts 928273/etc/hosts 0.00user0.00system0:00.00elapsed66%CPU(0avgtext+0avgdata2024maxresident)k 0inputs+0outputs(0major+73minor)pagefaults0swaps

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

$timewc/etc/hosts
928273/etc/hosts
real0m0.006s
user0m0.001s
sys0m0.004s

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

$/usr/bin/time-ofile.txtls
dir1dir2file1file2file.txtmcelog

正如你看到的,time 命令不会显示到终端上。因为我们将输出写到了file.txt 的文件中。 让我们看一下这个文件的内容:

$catfile.txt
0.00user0.00system0:00.00elapsed66%CPU(0avgtext+0avgdata2512maxresident)k
0inputs+0outputs(0major+106minor)pagefaults0swaps

当你使用 -o 选项时, 如果你没有一个名为 file.txt 的文件,它会创建一个并把输出写进去。如果文件存在,它会覆盖文件原来的内容。

你可以使用 -a 选项将输出追加到文件后面,而不是覆盖它的内容。

$ /usr/bin/time -a file.txt ls

-f 选项允许用户根据自己的喜好控制输出格式。 比如说,以下命令的输出仅显示用户,系统和总时间。

$/usr/bin/time-f"\t%Ereal,\t%Uuser,\t%Ssys"ls
dir1dir2file1file2mcelog
0:00.00real,0.00user,0.00sys

请注意 shell 中内建的 time 命令并不具有 GNU time 程序的所有功能。

有关 GNU time 程序的详细说明可以使用 man 命令来查看。

$ man time

想要了解有关 Bash 内建 time 关键字的更多信息,请运行:

$ help time

关于怎么在Linux 中查命令或进程的执行时间就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


/template/Home/Zkeys/PC/Static