正在运行的进程列表

正在运行的进程列表

有一个top命令可以显示正在运行的进程。我想打印 field 中唯一值的排序列表COMMAND。我有这个任务的解决方案

$ top -b -n 1 | tail -n+8 | awk '{print $12}' | cut -d'/' -f 1 |  sort | uniq

然而,对于如此简单的目的来说,这个命令太冗长了。对于该任务有更简单的解决方案吗?

附:我可以使用ps代替top,但它返回的格式太嘈杂:chromevs /opt/google/chrome/chrome --type=renderer --enable- features=LinuxObsoleteSystemIsEndOfTheLine<LinuxObsoleteSystemIsEndOfTheLine --lang=en-US --force-...这只是命令的开始。

答案1

我强烈建议仔细阅读ps.

这可能是一个有趣的开始:

ps -eo comm=,

或者

ps -eo cmd=,

你可能想要第一个。

如果您想要绝对细粒度的控制,请读取Name: 行/proc/nnnnnn/status(或解析 中括号之间的字符串stat),其中nnnnn代表所有数字。对于完整的命令行,读取/proc/nnnnnn/cmdline并将文件中的 NUL 字节转换为空格字符。

请注意,psBSD(作为该生态系统的一部分提供)与 Linux 版本(由 procps-ng 项目提供给 Linux)略有不同,并且两者对选项的解释也略有不同。如果您曾经使用过 *BSD,则值得注意。

相关内容