time命令用于确定运行指定命令运行所需的时间。它对于测试脚本和命令的性能非常有用。例如,如果您有两个不同的脚本执行相同的工作,并且您想知道哪个脚本执行得更好,更快,则可以使用Linux time命令来确定每个脚本所需的执行时间。

在本教程中,我们将说明如何使用time评估运行指定命令的时间。包括time命令的基本语法,了解zsh,bash,gnu三个版本time命令差别。并使用wget命令与time命令的实际示例评估wget执行时间。

time命令的版本

Bash和Zsh,使用最广泛的Linux shell都有自己的time命令内置版本,它优先于Gnu time命令。您可以使用type命令确定time是可执行二进制还是内置关键字。

type time
# Bash
time is a shell keyword shell的关键词

# Zsh
time is a reserved word  保留单词

# GNU time (sh)
time is /usr/bin/time  二进制可执行文件

使用Gnu time命令时,您需要指定time二进制文件的完整路径,通常/usr/bin/time或使用前导反斜杠\time,以防止使用内置命令。Gnu time允许您格式化输出并提供其他有用的信息,如内存I/O和IPC调用。

使用Linux time命令

在下面的示例中,我们将使用wget工具测试下载Linux内核所需的时间:

time wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.9.tar.xz

输出打印的内容取决于您正在使用的time命令的版本:

# Bash
real	0m33.961s
user	0m0.340s
sys	0m0.940s

# Zsh
0.34s user 0.94s system 4% cpu 33.961 total

# GNU time (sh)
0.34user 0.94system 0:33.96elapsed 4%CPU (0avgtext+0avgdata 6060maxresident)k
0inputs+201456outputs (0major+315minor)pagefaults 0swaps

real是从会话开始到结束的时间。这是从您按Enter键的那一刻到wget命令完成的那一刻的时间。user - 在用户模式下花费的CPU时间量。systemsys - 在内核模式下花费的CPU时间。

到目前为止,您应该很好地理解如何使用time命令。如果您想了解有关Gnu time命令的更多信息,请访问time手册页。