我是 bash 和 Linux 新手,有一个问题。我的问题是我想按 pid 打印进程名称。我用谷歌搜索并找到了几种方法:
ps -p <PID> -o cmd
ps -p <PID> -o comm
我正在使用 Xubutnu 14.04,第一个命令(在任意 pid 上)向我显示:
指令管理系统
x-会话管理器
第二个:
命令
x-会话管理
如您所见,第二个名字不完整。另外,它们都有一个列名。我发现=
在命令末尾添加会使列名称消失。我已阅读man ps
但无法理解comm
和之间的真正区别cmd
(因为对它们的解释是alias
)。
cmd
和comm
标志 to之间有什么区别ps -o
?
答案1
根据man ps
(for ps
from procps-ng 3.3.12
) 该选项comm
仅显示可执行文件名称,而不显示命令名称的修改,而cmd
将参数显示为字符串的命令名称,并且可能可以显示命令参数的修改。
当最后指定此命令时,它们会将输出字符串显示到显示屏的边缘,因此名称可能会被截断。N
可以使用命令将输出截断为列--cols <N>
,使用 清除标题--no-header
,如下所示
ps -p <PID> -o comm --cols <N> --no-header