转自https://blog.csdn.net/tao_627/article/details/18922795,部分修改,如有冒犯,立即删除。
watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。直接在 watch 后面接你想运行的命令,watch 就会帮你重复运行,并把每次的结果都更新在屏幕上。默认watch会以2s的间隔重复运行命令,你也可以用 -n 参数指定时间间隔。还有一个实用的参数是-d,这样watch会帮你高亮显示变化的区域,这样更加一目了然了。Ctrl+c 就可以退出,你可以拿他来监测你想要的一切命令的结果变化,比如tail一个 log 文件,ls监测某个文件的大小变化,看你的想象力了。
FreeBSD和Linux下watch命令的不同
在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。
-d, --differences[=cumulative] 高亮显示变动
-n, --interval= 周期(秒)
-t 或-no-title 会关闭watch命令在顶部的时间间隔
如:watch -n 1 -d netstat -ant
而在FreeBSD下的watch命令是查看其它用户的正在运行的操作,watch允许你偷看其它terminal正在做什么,该命令只能让超级用户使用。
实例
[root@pdc conf]# who
root ttyp0 Oct 2 21:48 (192.168.x.x)
root ttyp1 Oct 2 22:25 (192.168.x.x)
xxhui ttyp3 Oct 2 23:48 (192.168.x.x)
[root@pdc conf]# watch ttyp3
#watch uptime
#watch -t -d uptime
#watch -d -n 1 netstat -ntlp
#watch -d ’ls -l | fgrep goface’ //监测goface的文件
#watch -t -differences=cumulative uptime
#watch -n 60 from //监控mail
#watch -n 1 ”df -i;df” //监测磁盘inode和block数目变化情况
#watch -n 60 -d du -ah //查看usb3.0拷贝到该目录下面的速度
有趣的linux命令:看看哪些文件正在变!
# watch -d -n 1 'df; ls -Alt -F /path'
在使用这条命令时你需要替换其中的 /path 部分,watch 是实时监控工具,
-d 参数会高亮显示变化的区域,-n 1 参数表示刷新间隔为 1 秒。
df; ls -FlAt /path 运行了两条命令,df 是输出磁盘使用情况,ls -FlAt 则列出 /path 下面的所有文件。
ls -FlAt 的参数详解:
-F 在文件后面加一个文件符号表示文件类型,共有 */=>@| 这几种类型,* 表示可执行文件,/ 表示目录,= 表示接口( sockets) ,> 表示门, @ 表示符号链接, | 表示管道。
-l 以列表方式显示
-A 显示 . 和 ..
-t 根据时间排序文件