Linux watch 命令

Linux 命令大全 Linux 命令大全


什么是 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不能直接处理管道,但可以通过临时文件实现。


注意事项

  1. 退出watch:按 Ctrl+C 即可退出watch命令
  2. 刷新频率:设置过低的间隔(如0.1秒)可能导致系统负载过高
  3. 命令长度:过长的命令可能影响可读性,考虑使用脚本替代
  4. 颜色支持:某些命令需要额外参数才能保持颜色输出,如 ls --color=always

替代方案比较

工具 特点 适用场景
watch 简单易用,全屏刷新 需要持续监控命令输出
tail -f 实时跟踪文件变化 监控日志文件增长
tmux + 循环命令 更灵活,可多窗口 复杂监控需求
htop 交互式系统监控 系统资源监控

Linux 命令大全 Linux 命令大全