Linux 时间命令输出格式选项示例
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”是有区别的。我们在之前的时间命令介绍文章中对此进行了解释。
- 点赞
- 收藏
- 关注作者
评论(0)