引言
watch用于定期运行任意命令,并在终端窗口上显示该命令的输出。当你必须重复执行命令并观察命令输出随时间变化时,它非常有用。
例如,可以使用watch命令来监视系统正常运行时间或磁盘使用情况。
watch程序是procps(或procps-ng)软件包的一部分,几乎所有Linux发行版都预装了该软件包。
用法
watch命令的语法如下所示:
watch [选项] 命令
为了最好地说明watch命令是如何工作的,让我们运行date命令:
watch date
输出内容如下图:
正如上图所示,watch命令将临时清除所有终端内容,并开始定期运行提供的命令。
在不带任何选项的情况下使用时,watch将每两秒运行一次指定的命令。
在屏幕标题的左上角,您可以看到监视更新间隔和执行的命令(每2.0s:date),而在右上角的监视显示当前时间和日期。
如果您想关闭标题,请使用-t(--no-title)选项。
指定命令的输出显示在屏幕上,并每两秒定期更新一次。要退出watch命令,只需按Ctrl+C组合键。
你还可以使用-g(--chgexit)选项将watch设置为在命令的输出更改时退出。
下面我们介绍最常用的watch命令选项。
修改监控时间间隔
如果两秒的默认更新间隔不合适怎么办?-n(--interval)选项后跟所需的秒数,允许你更改更新之间的时间间隔:
watch -n 间隔秒数 命令
例如每5秒刷新一次,监控磁盘使用情况:
watch -n 5 df -h
输出内容如下图:
高亮显示差异内容
-d(--Difference)选项将使Watch突出显示连续更新之间的更改。
watch -d 命令
假设你想要通过运行uptime命令监视系统正常运行时间,并突出显示更改。输入以下命令:
watch -d uptime
可见输出差异部分都被高亮显示了。
watch 命令中使用管道符
如果要执行包含管道的命令,则需要用单引号或双引号将该命令引起来。
如果没有包含完整的命令,watch将只运行第一个命令,然后通过管道将其输出传递给管道中的下一个命令。
正确用法:
watch 'COMMAND_1 | COMMAND_2'
例如,以下命令将使用netstat和grep实用程序的组合监视端口80上的活动连接数:
watch "netstat -anp | grep -c ':80\b.*LISTEN'"
写在最后
到这儿,你应该已经很好地理解了如何使用Linux watch命令。
选项并不多,功能也很单一,相信在你的管道操作中,会有它的一席之地。
Happy coding :-)
我是 @程序员小助手 ,持续分享编程故事,欢迎关注。