有一个top命令可以显示正在运行的进程。我想打印 field 中唯一值的排序列表COMMAND。我有这个任务的解决方案
$ top -b -n 1 | tail -n+8 | awk '{print $12}' | cut -d'/' -f 1 | sort | uniq
Run Code Online (Sandbox Code Playgroud)
然而,对于如此简单的目的来说,这是一个过于冗长的命令。是否有更简单的任务解决方案?
PS:我可以使用ps而不是top,但它返回的格式太嘈杂:chromevs/opt/google/chrome/chrome --type=renderer --enable- features=LinuxObsoleteSystemIsEndOfTheLine<LinuxObsoleteSystemIsEndOfTheLine --lang=en-US --force-...这只是命令的开始。
我强烈建议您仔细阅读ps.
这些可能是一个有趣的开始:
ps -eo comm=,
Run Code Online (Sandbox Code Playgroud)
或者
ps -eo cmd=,
Run Code Online (Sandbox Code Playgroud)
你可能想要第一个。
如果您想要绝对细粒度的控制,请阅读Name: 行/proc/nnnnnn/status(或解析 中括号之间的字符串stat),其中nnnnn表示所有数字。对于完整的命令行,读取/proc/nnnnnn/cmdline并将文件中的 NUL 字节转换为空格字符。
请注意,psBSD(作为该生态系统的一部分提供)与 Linux 的版本(由 procps-ng 项目提供给 Linux)略有不同,两者对选项的解释略有不同。值得注意的是,如果您使用过 *BSD。