linux watch 命令
watch 命令简介
在 Linux 系统中,watch 是一个非常实用的命令行工具,它可以按照设定的时间间隔重复执行某个命令,并将结果以全屏方式展示。这个工具非常适合用于持续监控系统运行状态、文件内容变化或其他需要实时观察的场景。
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'
每两秒读取一次 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 不直接支持管道,但可通过中间文件实现复杂操作。
使用建议
- 结束运行:按下 Ctrl+C 即可终止 watch 进程
- 刷新频率控制:过于频繁的刷新(如 0.1 秒)可能会增加系统负担
- 命令长度限制:太长的命令会影响阅读体验,推荐封装成脚本调用
- 颜色输出问题:部分命令需添加额外参数才能保持色彩,例如 ls –color=always
类似工具对比
工具 | 主要特性 | 适用场合 |
---|---|---|
watch | 简单直观,屏幕整体刷新 | 持续观察命令输出变化 |
tail -f | 动态追踪文件新增内容 | 日志文件增长监测 |
tmux + 循环命令 | 具备多窗口管理能力 | 多种监控任务并行处理 |
htop | 图形化交互式资源监控 | 系统性能分析 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END