在本教程中,我们将向您介绍watch命令。

Watch用于定期运行任意命令,并在终端窗口上显示命令的输出。

当您必须重复执行命令并观察命令输出随时间变化时,它非常有用。例如,您可以使用watch命令监视系统运行状态或磁盘使用情况。

watch命令是procps(或procps-ng)软件包的一部分,它几乎预装在所有Linux发行版上。

如何使用Watch命令

watch命令的语法如下:

watch [OPTIONS] COMMAND

为了最好地说明watch命令的工作原理,让我们运行date命令:

watch date
Every 2.0s: date        Sat Aug 17 23:14:21 2019
2019年 08月 17日 星期六   23:15:40 CST

如上所示,watch命令将定时清除所有终端内容,并定期开始运行提供的命令。在没有任何选项的情况下使用时,watch将每两秒运行一次指定的命令。

在屏幕标题的左上角,您可以看到watch更新间隔和执行的命令(Every 2.0s: date),而在左上方的watch则显示当前时间和日期。如果想要关闭标题,请使用-t--no-title)选项。

指定命令的输出显示在屏幕上,并且每两秒定期更新一次。

退出watch命令,只需按下Ctrl+C组合键即可。您还可以通过使用-g--chgexit)选项,当watch命令输出变更时将会退出。

在以下部分中,我们将介绍最常用的watch命令选项。

如何更改时间间隔

如果两秒的默认更新间隔不适合您的用例,该怎么办?

-n--interval)选项,后跟以秒为单位,更改时间间隔:

watch -n INTERVAL_IN_SECONDS COMMAND

例如,要使用df命令监视磁盘空间使用情况并每隔五秒刷新一次屏幕,您将运行:

watch -n 5 df -h
Every 5.0s: df -h                                                                                                                                                                     Sat Aug 17 23:23:17 2019

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           787M  9.4M  777M   2% /run
/dev/sdb5        56G   30G   24G  56% /
tmpfs           3.9G  124M  3.8G   4% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0       89M   89M     0 100% /snap/core/7396
/dev/loop1       89M   89M     0 100% /snap/core/7270
/dev/sdb1        96M   53M   44M  55% /boot/efi
/dev/sdb6       9.1G  3.7G  5.0G  43% /home
/dev/sda2       246G   97G  137G  42% /home/workspace
/dev/sda1       250G   88G  163G  36% /home/huangyanxiong/data
tmpfs           787M  100K  786M   1% /run/user/1000

突出显示更新之间的差异

-d--difference)选项将让watch突出显示连续更新之间的差异。

watch -d COMMAND

假设您希望通过运行uptime命令监视系统正常运行时间并突出显示更改。命令是:

watch -d uptime
 23:26:52 up  1:30,  1 user,  load average: 0.94, 1.00, 1.15

如果您希望突出显示是粘滞的,=cumulative项。这意味着所有已更改的值都将保持突出显示。

watch -d=cumulative COMMAND

带管道的命令

如果要执行包含管道的命令,则需要将命令括在单引号或双引号中。如果未附带完整命令,watch将仅运行第一个命令,然后将其输出通过管道传递给管道中的下一个命令。

watch 'COMMAND_1 | COMMAND_2'

例如,以下命令使用netstatgrep  命令的组合监视80端口上的活动连接数:

watch "netstat -anp | grep -c ':80\b.*LISTEN'"

结论

至此,您应该很好地理解如何使用Linux watch命令。您始终可以watch通过键入man watch终端来查看所有可用的命令选项。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持