También puede manejar la ps
salida un poco mejor.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Eso le indicará ps
que analice su salida según sus especificaciones según sea necesario.
Por supuesto, si no ajusta la palabra, entonces tiene el problema de la falta de información. ¿Realmente lo necesitas todo para todos los procesos? Ábralo en un buscapersonas si es así:
ps ww ${opts} | $PAGER
Si no, especifique lo que desea ver:
ps -o args= -p $pid
Alternativamente, puede informar explícitamente ps
de su terminal --width
:
man ps
...
w
Amplia salida. Use esta opción dos veces para un ancho ilimitado.
-w
Amplia salida. Use esta opción dos veces para un ancho ilimitado.
--width n
Establecer ancho de pantalla.
La --width
cosa funciona exactamente según sus especificaciones solicitadas sin tener que involucrar filtros adicionales o procesos auxiliares (lo que probablemente solo saturará su -aux
salida aún más). Y con lo $COLUMNS
que se muestra arriba y como señala Stephane, incluso funcionará dinámicamente.
Sin embargo, probablemente valga la pena señalar que encuentro que las personas a menudo intentan agregar este tipo de filtros innecesarios para que puedan acomodar uno a |pipe
través de otro filtro para analizar la salida, que también es bastante probable que sea innecesario. Por supuesto, por personas me refiero principalmente a mí.
El -o
operando utput que menciono anteriormente le permite filtrar qué columnas se ps
muestran, y cuando agrega la =
asignación, incluso puede nombrar la columna como desee. Dejo la asignación vacía y le doy un -p
proceso de destino $pid
para que la única salida de ps
todos sea el $pid
nombre del comando y su args
invocación. Y -o
apenas rasca la superficie de cómo puedes definir lo que se ps
mostrará o no. Esta es la dirección que le recomendaría que tome, especialmente a través de:
man ps
...
Para ver todos los procesos en el sistema utilizando la sintaxis BSD:
ps ax
ps axu
Para imprimir un árbol de procesos:
ps -ejH
ps axjf
Para obtener información sobre hilos:
ps -eLf
ps axms
Para obtener información de seguridad:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Para ver todos los procesos que se ejecutan como root (ID real y efectiva) en formato de usuario:
ps -U root -u root u
Para ver todos los procesos con un formato definido por el usuario:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
Imprima solo los ID de proceso de syslogd:
ps -C syslogd -o pid=
Imprima solo el nombre de PID 42:
ps -p 42 -o comm=