watch 指令说明
使用命令行工具 watch,定期执行一个命令并全屏显示其输出,可实时监控命令的输出变化。例如监控 CPU 频率:
watch -n 1 grep "cpu MHz" /proc/cpuinfo
指令解析:
-
-n 1
:watch
命令的选项,指定更新间隔。1
表示每秒更新一次。
-
grep \"cpu MHz\" /proc/cpuinfo
:watch
命令要执行的实际命令。grep
是一个搜索工具,用于在文件中查找指定的文本模式。\"cpu MHz\"
是要搜索的文本模式,引号是为了在 shell 中正确传递参数。/proc/cpuinfo
是一个虚拟文件,包含了 CPU 的详细信息。
综合起来,这个命令的作用是:
- 每秒钟读取一次
/proc/cpuinfo
文件。 - 从中提取包含 “cpu MHz” 的行,这些行显示了每个 CPU 核心当前的运行频率。
- 在终端全屏显示结果,并每秒更新一次。
输出示例如下所示:
Every 1.0s: grep "cpu MHz" /proc/cpuinfo 2024-08-01 12:34:56
cpu MHz : 2400.000
cpu MHz : 2400.000
cpu MHz : 2400.000
cpu MHz : 2400.000
常用 watch 指令
-
监控系统负载:
watch -n 1 "cat /proc/loadavg"
-
监控内存使用:
watch -n 5 free -m
-
监控磁盘使用:
watch -n 10 df -h
-
监控网络连接:
watch -n 2 netstat -tuln
-
监控进程:
watch -n 2 'ps aux | sort -nrk 3,3 | head -n 5'
-
监控文件系统变化:
watch -n 1 "ls -l /path/to/directory"
-
监控 GPU 使用(需要 nvidia-smi):
watch -n 2 nvidia-smi
-
监控系统温度(需要 sensors 命令):
watch -n 2 sensors
-
监控特定进程的资源使用:
watch -n 2 'ps -p PID -o %cpu,%mem,cmd'
-
监控网络流量:
watch -n 1 ifconfig
-
监控日志文件的最后几行:
watch -n 5 "tail -n 20 /var/log/syslog"
-
监控当前目录大小:
watch -n 10 "du -sh ."
-
高亮显示差异(使用 -d 选项):
watch -n 1 -d free -m
-
监控 Docker 容器:
watch -n 2 "docker ps"
-
监控系统时间(精确到秒):
watch -n 1 date
使用这些命令时的一些技巧:
- 使用
-n
选项调整更新频率(例如-n 5
表示每 5 秒更新一次)。 - 使用
-d
选项高亮显示每次更新之间的差异。 - 使用引号包裹复杂的命令,特别是那些包含管道或重定向的命令。
- 使用
Ctrl+C
退出watch
命令。
这些命令可以实时监控系统的各个方面,对于系统管理和故障排除非常有用。