watch
命令是 procps-ng 包的一部分,所以如果你是在 Linux 上,你已经安装了它。
在 macOS 上,使用 MacPorts 或 Homebrew 安装 watch
。在 Windows 上,使用 Chocolatey。
使用 watch
watch
命令定期运行一个命令并显示其输出。它有一些文本终端的特性,所以只有最新的输出才会出现在屏幕上。
最简单的用法是:watch <command>
。
例如,在 docker ps
命令前加上 watch
,就可以这样操作:
$ watch docker ps
用 watch
命令,以及一些创造性的 Unix 命令行技巧,可以生成临时的仪表盘。例如,要计算审计事件:
$ watch 'grep audit: /var/log/kern.log |wc -l'
在最后一个例子中,如果有一个可视化的指示,表明审计事件的数量发生了变化,这可能是有用的。如果变化是预期的,但你想让一些东西看起来“不同”,watch --differences
就很好用。它可以高亮显示与上次运行的任何差异。如果你在多个文件中搜索,这一点尤其有效,所以你可以很容易地看到哪个文件发生了变化。
如果没有预期的变化,你可以使用 watch --differences=permanent
要求它们被“永久”高亮显示,以便知道哪些变化需要调查。这通常是更有用的。
控制频率
最后,有时该命令可能是资源密集型的,不应运行得太频繁。-n
参数控制频率。watch
默认使用 2 秒间隔,但是 watch -n 10
可能适合于资源密集型的情况,比如在子目录的任何文件中搜索一个模式:
$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'
用 watch 观察一个命令
watch
命令对于许多临时性的系统管理任务非常有用,在这些任务中,你需要在没有进度条的情况下等待一些耗时的步骤,然后再进入下一个步骤。尽管这种情况并不理想,但 watch
可以使情况稍微好转。它让你有时间为工作做回顾性笔记!"。