在本教程中,我们将向您介绍Linux watch命令。
Watch用于定期运行任意命令,并在终端窗口上显示命令的输出。
当您必须重复执行命令并观察命令输出随时间变化时,它非常有用。 例如,您可以使用watch命令监视系统正常运行时间或磁盘使用情况。
watch实用程序是procps(或procps-ng)软件包的一部分,该软件包预安装在几乎所有的Linux发行版上。
如何使用Watch命令
watch命令的语法如下:
watch [OPTIONS] COMMAND
为了更好地说明watch命令的工作原理,让我们运行date命令:
watch date
如上图所示,watch命令将暂时清除所有终端内容,并定期开始运行提供的命令。在没有任何选项的情况下使用时,watch将每两秒运行一次指定的命令。
在屏幕标题的左上角,您可以看到监视更新间隔和执行的命令(每个2.0s:日期),而在左上方的监视则显示当前时间和日期。如果要转动标题,请使用 -t(--no-title)选项。
指定命令的输出显示在屏幕上,并且每两秒定期更新一次。
要退出监视,只需按Ctrl + C组合键即可。您还可以通过使用-g(--chgexit)选项将命令的输出更改时设置要退出的监视。
在以下部分中,我们将介绍最常用的watch命令选项。
如何更改时间间隔
如果两秒的默认更新间隔不适合您的用例,该怎么办?
-n (--interval)选项后跟所需的秒数,允许您更改更新之间的时间间隔:
watch -n INTERVAL_IN_SECONDS COMMAND
例如,要使用df命令监视磁盘空间使用情况并每隔五秒刷新一次屏幕,您将运行:
watch -n 5 df -h
突出显示更新之间的差异
-d (--difference)选项将使watch突出显示连续更新之间的更改。
watch -d COMMAND
假设您希望通过运行uptime命令监视系统正常运行时间并突出显示更改。命令是:
watch -d uptime
如果您希望突出显示为粘滞,则将=累积传递给-d选项。这意味着所有已更改的值都将保持突出显示。
watch -d=cumulative COMMAND
带管道的命令
如果要执行包含管道的命令,则需要将命令括在单引号或双引号中。如果未附带完整命令,watch将仅运行第一个命令,然后将其输出通过管道传递给管道中的下一个命令。
watch 'COMMAND_1 | COMMAND_2'
例如,以下命令将使用netstat和grep实用程序的组合监视端口80上的活动连接数:
watch "netstat -anp | grep -c ':80\b.*LISTEN'"
总结
到目前为止,您应该很好地理解如何使用Linux watch命令。您始终可以在终端中键入man watch来查看所有可用的监视命令选项。