如何让`top`只显示一组匹配特定模式的进程?

Shu*_*eng 6 shell bash process top debian

我想显示其命令行包含.*git.*使用的所有进程top

我已经考虑过以下命令: top -p $(pgrep -d',' -f '.*git.*')

但是,上述命令有几个警告:

  • 只有在top执行时存在的进程才会包含在top的输出中(.*git.*不包括new )。
  • man top说最多可以使用-p标志指定 20 个进程,这可能不够。

如何在终端中显示类似动态top的当前.*git.*进程视图?

Ste*_*itt 10

您可以top使用“在窗口中过滤”来执行此操作:开始top,然后按O,然后输入

COMMAND=git
Run Code Online (Sandbox Code Playgroud)

这将过滤进程,匹配该COMMAND列并仅保留该列中可见值包含 的进程git

在对COMMAND列进行过滤时,过滤器适用于当前显示的值 — 正在运行的程序的名称或其完整的命令行。这可以通过按c, 或使用-c参数来切换;在top调用之间记住状态。请注意,过滤器仅适用于字段的可见部分;COMMAND如果列不完全可见或不够宽以包含命令行的相关部分,则在对列进行过滤时,这可能是一个重要的问题。有关详细信息,请参阅 中的COMMAND字段说明man top

过滤器是累积的,可以通过按 清除=。有关man top详细信息,请参阅第 5e 节。

据我所知,没有等效的命令行选项。