使用 time 命令检查 Bash 脚本需要多长时间才能运行

这是一个测量……你猜对了,时间的简单命令。 不过,它不是时钟应用程序。 它测量运行程序或脚本所花费的时间。

[email protected]:~$ time ./script.sh
real 0m12.010s
user 0m0.004s
sys 0m0.006s

我将在一分钟内解释 time 命令及其输出。

时间实用程序有几个不同的版本。 在这里,我们将查看 重击 版本,因为这是您最有可能在系统上遇到的版本。 还有一个 Zsh 版本和一个 GNU 版本。

让我们避免混淆并立即验证您的版本。

[email protected]:~$ type time
time is a shell keyword

如果你的输出看起来像这样,那就完美了。 这意味着您正在使用 bash. 该命令在其所有迭代中执行相同的任务,因此如果您不使用 bash,不要害怕,你仍然能够理解正在发生的事情。 但是,它可能看起来完全不同。

使用时间命令

时间命令测量以下内容:

  • 实时:经过的总时间
  • user:用户模式下的操作系统处理
  • sys:内核模式下的操作系统处理

它可以与任何命令或管道命令一起使用。

使用基于文本的应用程序的时间

让我们看一个 example 和 纳米. 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 命令来创建一个虚拟作业。 数字是以秒为单位的持续时间。 您还将看到这反映在输出的实时中。

请注意,因为它是一个虚拟任务,所以没有实际的资源时间专门用于它。

[email protected]:~$ 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 版本有点像 GNU time run 的别名 -p 选项。

[email protected]:~$ time -p sleep 3
real 3.00
user 0.00
sys 0.00

正如你所看到的,这给了我们相同的输出,就好像我们用 bash 捷径。

结论

您喜欢我们的时间命令指南吗? 我希望所有这些技巧都能教会你一些新的东西。

如果您喜欢本指南,请在社交媒体上分享。 如果您有任何意见或问题,请在下方留言。 如果您对希望看到的主题有任何建议,也请随时留下。 谢谢阅读。