Linux 时间命令输出格式选项示例

举报
Tiamo_T 发表于 2022/08/11 08:41:50 2022/08/11
【摘要】 Linux time 命令有助于识别命令所花费的时间。 使用 Linux time 命令,您可以计算出执行命令、shell 脚本或任何其他程序所花费的时间。

Linux time 命令有助于识别命令所花费的时间。

使用 Linux time 命令,您可以计算出执行命令、shell 脚本或任何其他程序所花费的时间。

默认情况下,time 命令执行给定的命令或程序。执行后,显示标准错误的统计信息和资源使用情况。

Time 命令提供了几个命令行选项和各种格式选项,如本文中所述

1. 基本时间命令使用示例

时间命令语法:

$ time [-options] <command arg1 arg2 ..>

例如,time 命令在 sleep 命令上运行,没有任何选项。

$ /usr/bin/time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+172minor)pagefaults 0swaps

现在让我们了解该命令的一些重要命令行选项。


2. 使用 -o 选项将时间统计输出写入文件

此选项将命令结果限制为标准错误,但将结果写入输出文件。此选项覆盖指定的文件。

这是一个例子:

$ /usr/bin/time -o time.txt sleep 2

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

3. 使用 -a 选项将时间统计输出附加到现有文件

此选项允许将时间命令输出附加到文件中。它与 -o 选项一起使用。此选项通过将时间命令输出附加到指定的输出文件中来避免覆盖输出文件的内容。

这是一个例子:

$ /usr/bin/time -a -o time.txt sleep 4

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+176minor)pagefaults 0swaps

4. 显示 CPU 使用百分比 – %P

您可以使用 -f 选项提供输出格式选择。此选项允许用户提供输出格式选项。它可能会覆盖环境变量 TIME 中指定的格式。下面描述了以下格式选项 - %P、%M、%S、%e、%E、%C、%Z、%c、%x。

此选项给出命令进程(即在时间命令下运行)为其执行所获得的 CPU 百分比。这只是用户 + 系统时间除以总运行时间。它还打印一个百分号。

$ /usr/bin/time -f "\t%P CPU Percentage" find / -name my-program.sh
/root/my-program.sh
        82% CPU Percentage

在这里,命令输出显示 find 命令占用了 82% 的 CPU。

5. 显示最大驻留集大小 - %M

此选项给出命令进程(即在时间命令下运行)在其生命周期内的最大驻留集大小,以千字节为单位。

$ /usr/bin/time -f "\t%M Max Resident Set Size (Kb)" find / -name my-program.sh
/root/my-program.sh
        8688 Max Resident Set Size (Kb)

在这里,命令输出显示 find 命令占用了 8688 KB 作为进程的最大驻留大小。

6. 显示 CPU 总秒数 - %S

此选项给出系统代表进程(在内核模式下)使用的 CPU 秒总数,以秒为单位。

$ /usr/bin/time -f "\t%S CPU-seconds" find / -name my-program.sh
/root/my-program.sh
        0.35 CPU-seconds

在这里,命令输出显示 find 命令在内核模式下花费了 0.35 CPU 秒。

7. 以秒为单位显示经过的实时时间 - %e

此选项给出进程使用的经过的实时时间(即挂钟),以秒为单位。

$ /usr/bin/time -f "\t%e Elapsed Real Time (secs)" sleep 2
        2.00 Elapsed Real Time (secs)

在这里,命令输出显示 sleep 命令执行已持续到 2 秒。

8. 以不同的格式显示经过的实时 - %E

此选项给出进程使用的经过的实时时间(即挂钟),格式为 - [小时:]分钟:秒。

$ /usr/bin/time -f "\t%E Elapsed Real Time (format)" sleep 2
        0:02.00 Elapsed Real Time (format)

这里,命令输出显示 sleep 命令执行耗时 0 小时 0 分 2 秒。

9. 显示程序名称和命令行参数 - %C

此选项给出命令的名称和命令行参数(即在 time 命令下运行)。

$ /usr/bin/time -f "\t%C (Program Name and Command Line)" find / -name my-program.sh
/root/my-program.sh
        find / -name my-program.sh test_time (Program Name and Command Line)

在这里,时间命令输出显示正在运行的命令的名称及其命令行参数。

10. 以字节为单位显示系统页面大小 - %Z

此选项给出系统的页面大小,以字节为单位。这是每个系统的常数,但它可能会因系统而异。

$ /usr/bin/time -f "\t%Z System Page Size (bytes)" sleep 2
        4096 System Page Size (bytes)

这里,命令输出显示 sleep 命令使用 4096 字节作为系统页面大小。

11. 显示上下文切换次数 - %c

此选项给出进程非自愿上下文切换的次数(因为时间片已过期)。

$ /usr/bin/time -f "\t%c Context Switches" find / -name my-program.sh
/root/my-program.sh
        254 Context Switches

在这里,命令输出显示,在 time 命令下执行 find 命令期间,发生了 254 次进程上下文切换。

12. 显示命令的退出状态 – %x

此选项给出命令的退出状态(即在 time 命令下运行)。

$ /usr/bin/time -f "\t%x Exit Status" top1
/usr/bin/time: cannot run top1: No such file or directory
        127 Exit Status

在这里,命令输出显示top1 命令失败,因为此tope1 作为文件不存在。

根据时间命令的手册页,时间命令的退出状态可以如下:

  • 如果调用了 time 命令指定的命令,则退出状态是与 time 命令一起运行的命令的退出状态。
  • 如果找不到指定给时间命令的命令,则为 127。
  • 126 如果可以找到指定给时间命令的命令但无法调用。
  • 如果出现其他问题,则为其他一些非零值 (1-125)。

最后,只执行“time”和“/usr/bin/time”是有区别的。我们在之前的时间命令介绍文章中对此进行了解释。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。