Desativando nomes de colunas na saída ps

23

Como formatar a saída do ps -pcomando?

Para não me mostrar algo assim:

PID TTY                TIME CMD

mas apenas PIDs.

Estou usando o Linux.

Jogo da velha
fonte

Respostas:

36

Use a -oopção para selecionar quais colunas são exibidas. Se você colocar =o nome da coluna, a linha do cabeçalho será suprimida.

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Gilles 'SO- parar de ser mau'
fonte
Esta resposta tem o benefício de ser portátil (suportado por BSDs e especificado por POSIX .)
Anthony G - justice para Monica
21

Use --no-headerspara ter a linha do cabeçalho omitida.

Saída original:

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

Com --no-headers:

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

Combinando com -p:

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

A manpágina para psdocumentar claramente isso:

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.
Steve
fonte
2
Não funciona em macos. Naturall -____-
Avindra Goolcharan
De fato. Não era esperado que funcionasse no MacOS. A questão dizia respeito apenas ao Linux, conforme destacado no pôster original.
Steve
2
np steve. Apenas documentando aqui para futuros leitores. As pequenas diferenças entre os utilitários BSD e Linux são altamente irritantes. sed é o pior
Avindra Goolcharan
ok thx. se você tiver alguma idéia de como incluir a solução MacOS em resposta, revisarei com prazer!
steve
2
Eu descobri que, para cabeçalhos de colunas específicos, colocar um =nome após a coluna na obandeira é uma maneira de plataforma cruzada para fazer isso. Por exemplo, ps -p ${pid} -o state=mostrará o estado do processo para ${pid}, sem o cabeçalho. (Que é o que as respostas Unidos aceitaram :))
Avindra Goolcharan
2

Usar

ps -p <PIDs> --no-headers

para obter uma lista de PIDs sem o cabeçalho.

dr01
fonte
-1

Para obter uma lista apenas dos PIDs, use:

ps -eo pid

Consulte também a man psseção 'ESPECIFICADORES DE FORMATO PADRÃO' para obter as possíveis colunas.

Pessoalmente, gosto da maneira como o Solaris mostra as possíveis colunas a serem usadas no -oargumento:

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
Lambert
fonte
1
Isso não resolve o problema de remover o cabeçalho exibido.
Kusalananda
É assim que você interpreta 'apenas exibir PID'. Alguns podem interpretar isso apenas selecionando uma coluna, ou como você aparentemente interpreta: apenas valores.
Lambert