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时间量。system或sys - 在内核模式下花费的CPU时间。
到目前为止,您应该很好地理解如何使用time命令。如果您想了解有关Gnu time命令的更多信息,请访问time手册页。