time命令可统计命令执行耗时,输出real(挂钟时间)、user(用户态cpu时间)、sys(内核态系统调用时间);加-p参数输出纯秒数便于脚本处理;重定向需用{ time cmd; } 2>file或(time cmd) 2>file;gnu time -v提供内存、i/o等详细资源数据。

直接在命令前加 time 就能统计实际执行耗时,最常用也最有效。
基础用法:直接加 time 前缀
在任意命令前加上 time,执行后会自动输出三类时间:
- real:挂钟时间(从按下回车到命令退出的总耗时),含等待 I/O、调度延迟等
- user:进程在用户态占用 CPU 的时间(纯计算时间)
- sys:进程在内核态执行系统调用的时间(如读写文件、分配内存)
例如:
time ls -R /tmp | head -n 5
输出类似:
real 0m0.023s
user 0m0.004s
sys 0m0.012s
获取纯数字秒数(适合脚本解析)
加 -p 参数,输出统一为秒数,不带单位和格式:
-
time -p sleep 1.5 → 输出:
real 1.50
user 0.00
sys 0.00
这个格式可直接被 shell 脚本读取或参与数值比较。
把结果保存到文件(注意重定向技巧)
time 的输出默认走 stderr,不能直接用 > file 捕获。正确做法是:
- 用大括号包裹整个命令块:
{ time ls /var/log; } 2> timing.log - 或用子 shell:
(time ls /var/log) 2> timing.log
这样就能把 real/user/sys 写入文件,方便后续分析或归档。
用 GNU time 获取更详细资源数据
系统自带的 shell 内置 time 功能有限。若需内存、I/O、页错误等指标,用完整版:
- 先确认路径:which time(常见为
/usr/bin/time) - 安装(如未预装):
sudo apt install time(Debian/Ubuntu)
sudo yum install time(CentOS/RHEL) - 查看全部资源:
/usr/bin/time -v find /etc -name "*.conf" 2>&1
输出中会包含最大驻留集(Maximum resident set size)、I/O 等待次数(Major (requiring I/O) page faults)等关键性能线索。











