También puede manejar la pssalida 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á psque 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 psde 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 --widthcosa funciona exactamente según sus especificaciones solicitadas sin tener que involucrar filtros adicionales o procesos auxiliares (lo que probablemente solo saturará su -auxsalida aún más). Y con lo $COLUMNSque 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 |pipetravé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 -ooperando utput que menciono anteriormente le permite filtrar qué columnas se psmuestran, y cuando agrega la =asignación, incluso puede nombrar la columna como desee. Dejo la asignación vacía y le doy un -pproceso de destino $pidpara que la única salida de pstodos sea el $pidnombre del comando y su argsinvocación. Y -oapenas rasca la superficie de cómo puedes definir lo que se psmostrará 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=