Linux 中的 time 命令及示例 - Linux 命令行教程
Linux 中的 time 命令就像直接内置在命令行终端中的秒表。 time 命令能够跟踪任何命令完成执行所需的时间。您所需要做的就是在某个命令前加上时间命令。您的命令将正常执行,但它也会显示命令的持续时间。
如果您曾经需要测量命令的持续时间,那么这是一个完美的工具。这是一个基本命令,选项很少,目的也很简单。所以,学习时间并不长。在本教程中,您将通过示例学习如何在 Linux 中使用它。请按照下面的示例来了解它是如何工作的。
在本教程中您将学习:
如何在 Linux 上使用 time 命令
常用选项
time命令语法简单,用途也很简单,所以不需要花很长时间就能学会。以下示例将教您有关 time 命令所需了解的所有信息,高级部分将向您展示一些较少使用的选项,这些选项可能偶尔会派上用场。
请注意,在本指南中,我们主要使用 Bash time 命令。 GNU 和其他系统 shell(例如 zsh)有自己的 time 命令版本,其工作方式略有不同。主要是他们的输出看起来有点不同。
Linux 中的 time 命令基本示例
如前所述,只需在任何命令前面添加 time 命令即可测量命令执行所需的时间。一个完美的例子是 wget 命令,它用于从 Internet 下载文件。使用time命令,我们可以有效地测量一个文件下载到我们的计算机上需要多长时间。
$ time wget http://example.com/linux.iso
我们要关注的部分是最后三行,这是按时间输出的。
real 4m12.067s user 0m0.086s sys 0m1.030s
这些信息的含义如下:
现在让我们尝试相同的下载,同时使用 GNU 时间 进行测量。我们可以通过提供命令的完整路径 -
/usr/bin/time
来告诉我们的系统使用 time 命令的特定实现。$ /usr/bin/time wget http://example.com/linux.iso
我们只关心最后两行——来自 GNU time 的行。
0.05user 0.95system 0:08.64elapsed 11%CPU (0avgtext+0avgdata 7220maxresident)k 0inputs+30488outputs (0major+428minor)pagefaults 0swaps
注意
您始终可以使用 man 命令来阅读有关 time 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
高级用法
time 命令非常简单,您可能会发现在运行该命令时通常不会提供任何额外的选项。然而,有一些不同的选项可以提供 GNU time ,它们在各种情况下肯定会派上用场。在本指南的这一部分中,我们将向您展示一些我们认为有用的鲜为人知的选项。
Linux 中的 time 命令高级示例
使用
-o
选项将 time 输出发送到指定文件,而不是像通常那样发送到标准错误。$ /usr/bin/time -o download.log wget http://example.com/linux.iso
使用
-v
(详细)选项可以获得非常详细的输出。请注意,输出非常大,因此您可能不会经常使用此选项。$ /usr/bin/time -v wget http://example.com/linux.iso Command being timed: "wget https://wordpress.org/latest.tar.gz" User time (seconds): 0.08 System time (seconds): 0.25 Percent of CPU this job got: 10% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.15 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 7112 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 0 Minor (reclaiming a frame) page faults: 426 Voluntary context switches: 455 Involuntary context switches: 76 Swaps: 0 File system inputs: 0 File system outputs: 29448 Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0
结束语
在本指南中,我们全面了解了 time 命令,当您需要测量在 Linux 系统上执行某些操作所需的时间时,这是您需要了解的唯一命令。该命令非常简单,因此通常不需要使用任何额外选项来运行它。但是,我们在本指南中向您展示了一些方便的选项,这些选项在某些情况下可能很有用。