Linux Centos 6,64
我使用以下命令在命令栏中显示 htop
htop -u 命令
我该如何做才能使它仅显示我从那些正在运行的命令列表中选择的特定命令?
谢谢
答案1
参数中htop -u
是用户名,而不是命令。
监控特定命令的唯一选项是-p
,但这需要 PID,因此必须先将命令名称转换为 PID,这样才pidof
可以。
如果命令的多个实例正在运行,则pidof
返回以空格分隔的 PID 列表,但该-p
选项采用逗号分隔的列表,因此pidof
必须转换输出:
htop -p $(pidof command | sed 's/ /,/g')
最好将其合并到函数或脚本中,在这种情况下命令将是:
htop -p $(pidof "$1" | sed 's/ /,/g')
虽然我首先想到的sed
是批量编辑,但在这种情况下tr
可以使用更简单的命令:
htop -p $(pidof "$1" | tr ' ' ',')
请注意,GUI 系统监视器(例如qps
和ksysguard
)可以过滤输出并直接显示特定命令(尽管如果命令名称恰好出现在另一个命令的参数列表中,基于文本的过滤器也可能会选择该命令名称)。