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