在 ps 输出中禁用列名

Lak*_*aki 30 process ps

如何格式化ps -p命令的输出?

为了不给我看这样的东西:

PID TTY                TIME CMD
Run Code Online (Sandbox Code Playgroud)

但只是PID。

我正在使用 Linux。

Gil*_*il' 45

使用该-o选项选择显示哪些列。如果放在=列名之后,标题行将被抑制。

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Run Code Online (Sandbox Code Playgroud)


ste*_*eve 29

使用--no-headers可以省略标题行。

原始输出:

ps
  PID TTY          TIME CMD
27027 pts/0    00:00:00 bash
27071 pts/0    00:00:00 ps
Run Code Online (Sandbox Code Playgroud)

--no-headers

ps --no-headers
27027 pts/0    00:00:00 bash
27072 pts/0    00:00:00 ps
Run Code Online (Sandbox Code Playgroud)

结合-p

ps -p 1 --no-headers
    1 ?        00:00:33 systemd
Run Code Online (Sandbox Code Playgroud)

man页面ps清楚地记录了这一点:

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.
Run Code Online (Sandbox Code Playgroud)

  • 在 macos 上不起作用。自然-____- (2认同)
  • np史蒂夫。只是在这里记录它以供将来的读者使用。BSD 和 Linux 实用程序之间的细微差别非常令人恼火。sed 是最糟糕的 (2认同)
  • 我发现对于特定的列标题,在列名后放置一个 `=` 到 `o` 标志是一种跨平台的方式来做到这一点。例如,`ps -p ${pid} -o state=` 将显示`${pid}` 的进程状态,没有标题。(这就是接受的答案所说的:)) (2认同)