使用 Time 命令检查 Bash 脚本运行需要多长时间
这是一个简单的命令,用于测量……您猜对了,时间。不过,它不是时钟应用程序。它测量运行程序或脚本所花费的时间。
christopher@linux:~$ time ./script.sh
real 0m12.010s
user 0m0.004s
sys 0m0.006s
我将在一分钟内解释时间命令及其输出。
时间实用程序有几个不同的版本。这里我们将介绍Bash版本,因为这是您最有可能在系统中遇到的版本。还有一个 Zsh 版本和一个 GNU 版本。
让我们避免混淆并立即验证您的版本。
christopher@linux:~$ type time
time is a shell keyword
如果您的输出看起来像这样,那就太好了。这意味着您正在使用 bash。该命令在其所有迭代中执行相同的任务,因此如果您不使用 bash,不用担心,您仍然能够理解正在发生的事情。但是,它可能看起来完全不同。
使用时间命令
时间命令测量以下内容:
- 实际时间:已用总时间
- 用户:用户模式下的操作系统处理
- sys:内核模式下的操作系统处理
它可以与任何命令或管道命令一起使用。
使用基于文本的应用程序的时间
让我们看一个使用nano 的示例。Nano 是一个基于终端的文本编辑器。如果我启动 nano 然后立即通过应用程序退出(Ctrl+X),输出将如下所示:
time nano
real 0m1.465s
user 0m0.031s
sys 0m0.006s
使用 GUI 应用程序的时间
这也适用于 GUI 应用程序。一旦应用程序正常退出或在终端输入中断 (CTRL+C),将返回输出。
time firefox
real 0m6.784s
user 0m4.962s
sys 0m0.459s
传统 GNU 版本
正如我之前提到的,大多数 Linux 用户运行 Bash,它本质上是使用快捷方式来创建人类可读的内容。您可以使用转义字符 运行完整的 GNU 版本\
。这将绕过内置的快捷方式。
这次我将只使用sleep 命令来创建一个虚拟作业。数字是持续时间(以秒为单位)。您还将看到这反映在输出的实时中。
请注意,因为它是一个虚拟任务,所以没有实际的资源时间投入到它。
christopher@linux:~$ \time sleep 3
0.00user 0.00system 0:03.00elapsed 0%CPU (0avgtext+0avgdata 1944maxresident)k
0inputs+0outputs (0major+75minor)pagefaults 0swaps
这个输出有点难以阅读,但它也分享了一些关于 RAM 使用情况的信息,你可能会觉得有用。
GNU 时间 -p = (bash)时间
您通常在 bash 版本中看到的输出有点像带有-p
选项的 GNU time run 的别名。
christopher@linux:~$ \time -p sleep 3
real 3.00
user 0.00
sys 0.00
正如您所看到的,这给了我们与使用 bash 快捷方式运行相同的输出。
结论
您喜欢我们的 time 命令指南吗?我希望所有这些技巧都能教给您一些新东西。
如果您喜欢本指南,请在社交媒体上分享。如果您有任何意见或问题,请在下面留言。如果您对希望涵盖的主题有任何建议,也请随时留言。感谢您的阅读。