禁用 ps 输出中的列名称

禁用 ps 输出中的列名称

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

为了不向我展示这样的东西:

PID TTY                TIME CMD

但只是 PID。

我正在使用Linux。

答案1

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

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456

答案2

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

原始输出:

ps
  PID TTY          TIME CMD
27027 pts/0    00:00:00 bash
27071 pts/0    00:00:00 ps

--no-headers

ps --no-headers
27027 pts/0    00:00:00 bash
27072 pts/0    00:00:00 ps

结合-p

ps -p 1 --no-headers
    1 ?        00:00:33 systemd

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

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.

答案3

使用

ps -p <PIDs> --no-headers

获取不带标头的 PID 列表。

答案4

要获取仅包含 PID 的列表,请使用:

ps -eo pid

另请参阅man ps“标准格式说明符”部分以了解可能的列。

我个人喜欢 Solaris 显示参数可能使用的列的方式-o

ps: option requires an argument -- o
usage: ps [ -aAdefHlcjLPyZ ] [ -o format ] [ -t termlist ]
        [ -u userlist ] [ -U userlist ] [ -G grouplist ]
        [ -p proclist ] [ -g pgrplist ] [ -s sidlist ] [ -z zonelist ] [-h lgrplist]
  'format' is one or more of:
        user ruser group rgroup uid ruid gid rgid pid ppid pgid sid taskid ctid
        pri opri pcpu pmem vsz rss osz nice class time etime stime zone zoneid
        f s c lwp nlwp psr tty addr wchan fname comm args projid project pset lgrp

相关内容