Linux watch 命令
什么是 watch 命令
watch 是 Linux 系统中一个非常实用的命令行工具,它能够定期执行指定的命令,并将输出结果全屏显示。这个命令特别适合用于监控系统状态、文件变化或任何需要持续观察的命令输出。
watch 命令的基本语法
watch [选项] 命令
常用选项参数详解
选项 | 说明 | 示例 |
---|---|---|
-n 或 --interval |
设置刷新间隔时间(秒),默认2秒 | watch -n 5 date |
-d 或 --differences |
高亮显示两次刷新之间的差异 | watch -d ls -l |
-t 或 --no-title |
不显示顶部的时间、命令和间隔信息 | watch -t free -h |
-b 或 --beep |
当命令退出码非零时发出蜂鸣声 | watch -b ping example.com |
-e 或 --errexit |
命令执行错误时停止更新并退出 | watch -e ./check_status.sh |
-g 或 --chgexit |
当命令输出变化时退出 | watch -g ls -l |
-c 或 --color |
解释 ANSI 颜色和样式序列 | watch -c 'ls --color=always' |
实际应用示例
监控系统内存使用情况
watch -n 1 free -h
这个命令会每秒刷新一次,显示当前内存使用情况(-h
参数使输出更易读)。
监控目录文件变化
watch -d 'ls -l /var/log'
使用 -d
选项可以高亮显示文件列表的变化,非常适合监控日志目录。
监控网络连接
watch -n 0.5 'netstat -tulnp | grep 80'
这个命令每0.5秒检查一次80端口的网络连接情况。
监控CPU温度
watch -n 2 'sensors | grep Core'
每2秒显示一次CPU核心温度。
高级使用技巧
组合多个命令
watch 'date; echo; df -h'
使用分号分隔多个命令,echo
用于添加空行分隔输出。
监控特定用户进程
watch 'ps -u username -o pid,cmd,%cpu,%mem --sort=-%cpu'
监控指定用户的进程,按CPU使用率排序。
使用管道和重定向
watch 'dmesg | tail -20 > /tmp/dmesg.log; cat /tmp/dmesg.log'
虽然watch不能直接处理管道,但可以通过临时文件实现。
注意事项
- 退出watch:按
Ctrl+C
即可退出watch命令 - 刷新频率:设置过低的间隔(如0.1秒)可能导致系统负载过高
- 命令长度:过长的命令可能影响可读性,考虑使用脚本替代
- 颜色支持:某些命令需要额外参数才能保持颜色输出,如
ls --color=always
替代方案比较
工具 | 特点 | 适用场景 |
---|---|---|
watch | 简单易用,全屏刷新 | 需要持续监控命令输出 |
tail -f | 实时跟踪文件变化 | 监控日志文件增长 |
tmux + 循环命令 | 更灵活,可多窗口 | 复杂监控需求 |
htop | 交互式系统监控 | 系统资源监控 |
点我分享笔记