watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在 Linux 下,watch 是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了!
# 命令格式
| $ watch[参数][命令] | 
# 命令功能
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令 / 定时执行命令
# 命令参数
| 参数 | 描述 | 
|---|---|
| -n 或 --interval | watch 缺省每 2 秒运行一下程序,可以用 - n 或 - interval 来指定间隔的时间 | 
| -d 或 --differences | watch 会高亮显示变化的区域 | 
| -d=cumulative | 会把变动过的地方 (不管最近的那次有没有变动) 都高亮显示出来 | 
| -t 或 - no-title | 会关闭 watch 命令在顶部的时间间隔,命令,当前时间的输出 | 
| -h, --help | 查看帮助文档 | 
# 使用实例
例一 :每隔一秒高亮显示网络链接数的变化情况
| $ watch -n 1 -d netstat -ant | 
说明:
其它操作:
切换终端: Ctrl+x
退出 watch:Ctrl+g (deepin 系统没效果,只能使用 Ctrl+c 退出了)
例二 :每隔一秒高亮显示 http 链接数的变化情况
| # 每隔一秒高亮显示 http 链接数的变化情况。 后面接的命令若带有管道符,需要加 '' 将命令区域归整。 | |
| $ watch -n 1 -d 'pstree|grep http' | 
例三 :实时查看模拟攻击客户机建立起来的连接数
| $ watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l' | 
例四 :监测当前目录中 scf' 的文件的变化
| $ watch -d 'ls -l|grep scf' | 
例五 :10 秒一次输出系统的平均负载
| $ watch -n 10 'cat /proc/loadavg' | 
