如何在 Linux 中使用 time 命令

Linux 中的 time 命令用于确定给定命令运行所需的时间。 我们使用 time 命令来测试脚本和命令的性能。

Linux 中的 time 命令需要什么?

如果您是在 Linux 系统上工作的系统管理员,则有必要创建可以自动执行手动重复性任务的脚本和 cron 作业。 但是根据脚本的复杂性,服务器负载可能会更高。 最重要的是,如果您同时运行多个具有相似复杂性的脚本,我们将浪费服务器上的资源。

为了解决这个问题,我们需要确保我们的任何自动化脚本占用的 CPU 时间尽可能短。 这就是需要 Linux time 命令的地方。

Linux time 命令显示什么信息?

time 命令显示指定脚本的 3 组不同的时间:

  • 即时的 – 从执行到脚本结束的实际时间
  • 用户时间 – CPU 在用户态所花费的时间
  • 系统时间 – 使用的 CPU 时间

1.不同的Linux时间命令版本

根据您使用的 shell,时间命令版本可能完全不同,并且我们在此处描述的功能默认情况下可能不可用。 您可能会遇到的 Linux 中 time 命令的三个不同版本是:

  • Bash shell 时间命令 – 可直接在 a 中输入时间 bash 壳
  • zsh shell 时间命令 – 可以通过在 zsh shell 中输入时间直接使用
  • GNU 默认 Linux 时间命令 – 这将通过输入 /usr/bin/时间

执行任何命令的运行时的基本输出在 Linux 中的所有三个时间命令中都可用。 但是一些格式化和命令选项可用于 GNU 时间。 您可以在 Linux 中使用 alias 命令来设置 GNU 时间的别名。

我已经在我的系统中设置了 GNU 时间的别名。 使用以下命令创建别名:

alias time=/usr/bin/time 

您可以使用 键入命令.

type time 

根据您使用的时间命令版本,您将获得以下输出之一。

# For bash shell time is a shell keyword  # For Zsh shell time is a reserved word  # The GNU time  time is /usr/bin/time  

2.测量其他命令的执行时间

现在您对命令是什么有了基本的了解,让我们进入用法。 用例的范围可以从用于性能的计时脚本到为其他命令计时。 Linux 中的 time 命令将简单地将自执行以来的时间输出到退出,而不管正在运行什么。

让我们 ping Google 并检查所需的时间。

time ping -c 2 www.google.com 
时间命令默认

在这个演示中,我们只 ping 了 Google 两次。 实际经过的时间为 1 秒,而用户和 CPU 时间可以忽略不计。

3.获取命令运行时的详细统计信息

您可以获得任何命令的详细统计信息,而不仅仅是默认可见的默认信息。 这 -v 选项允许您

time -v ping -c 2 www.google.com 
时间详细输出

太好了,现在您可以看到有关命令运行时的更多详细信息。

4.格式化Linux时间命令的输出

Linux 中的 GNU Time 命令为我们提供了多种选项来格式化和显示运行时。 这 -F 与可以在手册页上找到的格式选项配对的选项可以为我们提供符合我们需要的输出。

man time 

向下滚动,您将找到格式选项。 这是选项的屏幕截图。

人工时间格式化屏幕截图人工时间格式化屏幕截图

我们将在此演示中使用其中的一些,您可以通过阅读手册页继续进一步探索 time 命令输出。

time -f "Elapsed time: %E" ping -c 2 www.google.com 
时间命令格式时间命令格式

正如你所看到的,最后一行现在显示了经过的时间,正如我们预期的那样,文本为“Elapsed time:”。 使用格式选项来打印所需的信息。

5. 将 Linux 时间命令输出保存到文件

我们可能并不总是查看终端屏幕,我们测试的某些命令或脚本可能需要更长的时间。 我们可以将输出重定向到一个文件以查看和传输信息。

time -o time-command.log ping -c 2 www.google.com 

这将节省脚本在具有您指定的名称的文件中运行所需的时间。

时间输出文件时间输出文件

我将文件保存为 time-command.log,但您可以使用任何其他名称保存它。 为了演示,我使用 cat 命令显示了文件的内容。

结论

在本教程中,我们介绍了 Linux 中的 time 命令并详细了解了该命令。 我们希望您现在对 Linux 中的时间命令有一个很好的理解。