Deshabilitar nombres de columna en salida ps

23

¿Cómo formatear la salida del ps -pcomando?

Para no mostrarme algo como esto:

PID TTY                TIME CMD

pero solo PIDs.

Estoy usando Linux

TicTacToe
fuente

Respuestas:

36

Use la -oopción para seleccionar qué columnas se muestran. Si coloca =después del nombre de la columna, se suprime la línea del encabezado.

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Gilles 'SO- deja de ser malvado'
fuente
Esta respuesta tiene el beneficio de ser portátil (respaldada por BSD y especificada por POSIX .
Anthony G - justicia para Monica
21

Use --no-headerspara omitir la línea del encabezado.

Salida original:

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

Con --no-headers:

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

Combinando con -p:

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

La manpágina para psdocumenta claramente esto:

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.
Steve
fuente
2
No funciona en macos. Naturall -____-
Avindra Goolcharan
En efecto. No se esperaba que funcionara en MacOS. La pregunta se refería únicamente a Linux, como lo destaca el póster original.
Steve
2
NP Steve. Solo documentarlo aquí para futuros lectores. Las pequeñas diferencias entre las utilidades BSD y Linux son muy irritantes. sed es lo peor
Avindra Goolcharan
OK gracias. Si tiene alguna idea sobre cómo incluir la solución MacOS en la respuesta, ¡con gusto la revisaré!
Steve
2
descubrí que para los encabezados de columna en particular, poner un =después del nombre de la columna al oindicador es una forma multiplataforma de hacer esto. Por ejemplo, ps -p ${pid} -o state=mostrará el estado del proceso para ${pid}, sin el encabezado. (Que es lo que dice la respuesta aceptada :))
Avindra Goolcharan
2

Utilizar

ps -p <PIDs> --no-headers

para obtener una lista de PID sin el encabezado.

dr01
fuente
-1

Para obtener una lista de solo los PID, use:

ps -eo pid

Consulte también la man pssección 'ESPECIFICADORES DE FORMATO ESTÁNDAR' para ver las posibles columnas.

Personalmente, me gusta la forma en que Solaris muestra las posibles columnas para usar para el -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
fuente
1
Esto no soluciona el problema de eliminar el encabezado que se muestra.
Kusalananda
Así es como interpreta 'solo mostrar PID'. Algunos pueden interpretar esto simplemente seleccionando una columna, o como aparentemente interpretas: solo valores.
Lambert