在本教程中,我们将向您介绍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'
例如,以下命令使用netstat
和grep
命令的组合监视80
端口上的活动连接数:
watch "netstat -anp | grep -c ':80\b.*LISTEN'"
结论
至此,您应该很好地理解如何使用Linux watch
命令。您始终可以watch
通过键入man watch
终端来查看所有可用的命令选项。
如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持