watch命令允许我们在循环中重新运行命令,直到我们停止它或遇到可以为您停止循环的条件。当我们等待某些事情发生变化才能继续执行下一个任务时,它会非常有用。
Watch是Linux上的一个命令,它会为你重复运行命令,它提供了一些非常有用的选项。它的基本选项之一是我们可以告诉watch在再次运行指定命令之前要等待多长时间。例如,如果我们运行命令watch -n 10 date,watch命令将首先清除屏幕并立即运行date命令。之后,它将每10秒运行一次命令,直到我们通过按control-C停止它。请注意,屏幕上的第一行将指示迭代之间的等待时间(每10秒)。
$ watch -n 10 日期
每10.0秒:日期软呢帽:2022年8月12日星期五 16:32:09 EDT
美国东部时间2022年8月12日星期五下午04:10:11
-n选项指定命令之间的秒数。默认值为 2。我们可能需要仔细观察才能注意到输出中的变化。
所选命令的每次迭代都会覆盖先前的输出。如果我们想更轻松地关注正在更改的那部分输出,我们可以添加-d选项以突出显示与先前输出不同的那部分输出。如果我们使用d=cumulative设置,则输出的任何更改部分将在每次迭代中继续突出显示。
如果使用-g(输出更改时退出)选项,输出中的任何更改都会导致watch命令停止运行。这在我们等待进程开始或结束时非常有用。一旦我们看到手表输出停止,就会知道是时候进入工作的下一步了。
$ watch -n 5 -g "ps -ef | grep install | wc -l"
在上面的示例中,ps -ef命令输出将包括我们的grep命令以及正在运行的安装命令或脚本。该过程完成后,watch将停止运行,因为输出将发生变化。但是,它只会在完成下一个等待周期后停止。
如果我们正在等待某人登录或退出系统,我们可以使用watch命令让自己知道他们何时登录或退出系统。
$ watch -g 谁
每 2.0 秒:who fedora:美国东部时间2022年8月12日星期五 16:40:00
shs tty2 2022-08-12 16:01:03 (tty2)
像这样的命令会重复显示正在运行的进程数:
$ watch -n 10 "ps -ef | wc -l"
每十秒就会显示一次输出。
每10.0秒:pe -ef | wc -l fedora:2022年8月12日星期五16:32:09 EDT 234
在下面的示例中使用-t选项将从监视输出中省略标题行。
$ watch -n 10 -t 日期
美国东部时间 2022 年 8 月 12 日星期五下午 04:20:10
什么时候结束?watch命令不会自行停止运行。我们可以使用 control-C终止它,或者在输出更改时使用-g选项让它停止。不幸的是,当输出停止变化时,没有停止监视的选项。对于某些任务,这会非常方便。
以上是在Linux上使用watch命令相关操作。我们可以使用watch运行许多不同的命令。任何时候你想监视一个进程,检查日志文件的大小,查看系统性能,或者只是等待一个进程完成,都有一个watch命令可以为你做这些。该命令还有一个有用的手册页,可以解释其用法和命令的选项。
文章评论(0条评论)
登录后参与讨论