用 Linux 的 watch 命令观察命令和任务
创始人
2024-03-02 08:36:10
0

了解 watch 命令如何让你知道任务已完成或命令已执行。

有很多时候,你需要等待一些事情的完成,比如:

  • 一个文件的下载。
  • 创建或解压一个 tar 文件。
  • 一个 Ansible 作业。

其中一些进程有进度指示,但有时进程是通过一层抽象运行的,衡量进度的唯一方法是通过其副作用。其中一些可能是:

  • 一个正在下载的文件不断增长。
  • 一个从 tarball 中提取的目录被文件填满了。
  • Ansible 作业构建了一个容器

你可以用这样的命令查询所有这些:

$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps

但是反复运行这些命令,即使是利用 Bash 历史向上箭头的便利,也是很乏味的。

另一种方法是写一个小的 Bash 脚本来为你自动执行这些命令:

while :
do
 docker ps
 sleep 2
done

但这样的脚本写起来也会很繁琐。你可以写一个小的通用脚本,并将其打包,这样它就可以一直被你使用。幸运的是,其他开源的开发者已经有了这样的经验和做法。

那就是 watch 这个命令。

安装 watch

watch 命令是 procps-ng 包的一部分,所以如果你是在 Linux 上,你已经安装了它。

在 macOS 上,使用 MacPortsHomebrew 安装 watch。在 Windows 上,使用 Chocolatey

使用 watch

watch 命令定期运行一个命令并显示其输出。它有一些文本终端的特性,所以只有最新的输出才会出现在屏幕上。

最简单的用法是:watch

例如,在 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 可以使情况稍微好转。它让你有时间为工作做回顾性笔记!"。下载 备忘录,让有用的语法和选项触手可及。。


via: https://opensource.com/article/21/9/linux-watch-command

作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Apple 发布 macO...
Apple 近日发布了 macOS 11.7.11、watchOS...
2026-02-03 18:49:12
原创 ...
今日,苹果官网突然宣布,将于1月24日-27日开启“新春限时优惠”...
2026-01-23 19:48:20
苹果正在研发 AirTag...
这款设备目前的开发代号尚未公开,但其形态被描述为“类似 AirTa...
2026-01-22 18:21:10
AI健康管家AQ打通App...
继与 Apple Health 打通运动健康等服务后,近日,蚂蚁集...
2025-12-04 16:47:15
外媒:反击美加征39%关税...
综合路透社等外媒报道,瑞士钟表制造商Swatch(斯沃琪)近日推出...
2025-09-16 08:14:15
苹果发布 iOS / iP...
IT之家 8 月 8 日消息,苹果公司今天(8 月 8 日)推出了...
2025-09-15 06:14:43

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...