Ver comandos completos en la salida ps

16

Cuando se ejecuta pscon la -fopción en PuTTY (para ver el comando correspondiente a cada proceso), las líneas que son más largas que el ancho del terminal no son completamente visibles (no están ajustadas en varias líneas).

¿Cómo puedo forzar el ajuste de línea para poder ver los comandos completos (en varias líneas, si es necesario) cuando se ejecuta ps -f?

sdabet
fuente
No es una respuesta, pero si ejecuto ps -f en un emulador de terminal reducido, la salida se ajusta en varias líneas. ¿Qué terminal estás usando?
MatthewRock
1
Esto podría ser un duplicado de: stackoverflow.com/questions/2159860/…
tommygun
@MatthewRock Utilizo PuTTy aquí, ¿crees que esto es específico?
sdabet
1
@Tonsenson no se puede cerrar como un duplicado entre sitios.
muru
1
@fiddler ah, no podemos migrar viejas preguntas sin la intervención del moderador, y aun así no se recomienda: meta.stackexchange.com/questions/8004/…
muru

Respuestas:

15

Si tiene una psimplementación compatible con POSIX , puede intentar

ps -f | more

Tenga en cuenta que hemos cambiado recientemente el comportamiento y si tiene una implementación que sigue al problema POSIX 7 tc2, puede intentar:

ps -wwf | more

¹ Somos las personas que tienen teleconferencias semanales para discutir la evolución del estándar POSIX.

astuto
fuente
1
ps -wwffunciona bien
sdabet
8

Probablemente encontré la respuesta a su pregunta sobre Stack Overflow . En palabras de Dennis Williamson :

Es probable que esté utilizando un buscapersonas, como menor o mayor, ya que la salida de ps aux es más larga que una pantalla completa. Si es así, las siguientes opciones causarán (o forzarán) líneas largas para ajustarse en lugar de truncarse.

ps aux | less -+S

ps aux | most -w Si usa cualquiera de los siguientes comandos, las líneas no se ajustarán, pero puede usar las teclas de flecha u otras teclas de movimiento para desplazarse hacia la izquierda y hacia la derecha.

ps aux | less -S # use las teclas de flecha, o Esc+ (y Esc+ ), o Alt+ (y Alt+)

ps aux | most # Utilice las teclas de flecha o <y >(Tab también puede utilizarse para desplazarse hacia la derecha) Líneas siempre están envueltos por más y pg.

Cuando ps auxse usa en una tubería, la opción w es innecesaria ya que ps solo usa el ancho de la pantalla cuando la salida es al terminal.

(Nota: esto se aplica a Linux no incorporado, la psutilidad en otras variantes de Unix puede funcionar de manera diferente).

Tommy Gun
fuente
@muru espero que esto ahora se vea mejor. ¡Gracias por aclarar todo!
tommygun
Y perdón por causar el desorden.
MatthewRock
1
Su respuesta solo se aplica /usr/ucb/pse incluso con este programa que necesitaría, wwya que /usr/ucb/pslimita el ancho de salida a 80 si la salida es una tubería. Para el ps POSIX estándar, vea mi respuesta.
schily
1
@schily Esta respuesta es perfectamente correcta para el pscomando habitual en Linux no incrustado, que es lo que tiene la mayoría de los lectores aquí.
Gilles 'SO- deja de ser malvado'
1
Pero el OP no estableció / linux como etiqueta.
schily
3

También hay otra solución simple:

echo "$(ps afx)"
cinatic
fuente
o simplementeps afx
nyxee
1
solo "ps fax" se cortará después de cierta cantidad de caracteres (supongo que 72 de longitud de terminal estándar) la sintaxis de eco "$ (su comando)" es para no cortarlo
cinético
Gracias por eso. Ahora, el comando se comporta de manera completamente diferente en MacOS (escucho que se basa en BSD) y Ubuntu ( Linux). Linux no muestra ninguna diferencia en cuándo echoo no. Pero, MAC OS X está imprimiendo tanto como el terminal puede mostrar. Estoy usando iTerm2y zsh. MAC no permite la --fopción.
nyxee
3

Para simplificar, intente esto: ps auxfww

fibonacci
fuente
0

El comando para MacOS es ligeramente diferente echo "$(ps aux)"

Jibeex
fuente
No quieres pasarlo echoinnecesariamente. Observe también que varias otras respuestas ya mencionan ps auxde alguna manera. Sugeriría comentarios o ediciones sobre esas respuestas existentes para señalar que son buenas para MacOS (que es lo que supongo que quiso decir).
Jeff Schaller
0

O podrías hacer

IFS='$';for line in $(ps axf); do echo $line; done
Stephane Mailloux
fuente
Tengo curiosidad, ¿por qué estás configurando IFSa $?
AdminBee