GNU/Linux >> Tutoriales Linux >  >> Linux

Más elegante ps aux | grep -v grep

Utilice pgrep. Es más confiable.


La técnica habitual es esta:

ps aux | egrep '[t]erminal'

Esto coincidirá con las líneas que contengan terminal , que egrep '[t]erminal' ¡no es! También funciona en muchos sabores de Unix.


Esta respuesta se basa en una anterior pgrep responder. También se basa en otra respuesta que combina el uso de ps con pgrep . Estos son algunos ejemplos de capacitación pertinentes:

$ pgrep -lf sshd
1902 sshd

$ pgrep -f sshd
1902

$ ps up $(pgrep -f sshd)
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1902  0.0  0.1  82560  3580 ?        Ss   Oct20   0:00 /usr/sbin/sshd -D

$ ps up $(pgrep -f sshddd)
error: list of process IDs must follow p
[stderr output truncated]

$ ps up $(pgrep -f sshddd) 2>&-
[no output]

Lo anterior se puede usar como una función :

$ psgrep() { ps up $(pgrep -f [email protected]) 2>&-; }

$ psgrep sshd
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1902  0.0  0.1  82560  3580 ?        Ss   Oct20   0:00 /usr/sbin/sshd -D

Comparar con el uso de ps con grep . La fila de encabezado útil no se imprime:

$  ps aux | grep [s]shd
root      1902  0.0  0.1  82560  3580 ?        Ss   Oct20   0:00 /usr/sbin/sshd -D

Linux
  1. Grep recursivo Vs Find / -type F -exec Grep {}; ¿Cuál es más eficiente/más rápido?

  2. Grep:¿Memoria agotada?

  3. Grep -v ¿Comportamiento inesperado?

  4. ¿Comprobar que se está ejecutando un script?

  5. ¿No es menos solo más?

Grep Regex:una guía completa

Cómo excluir en Grep

Expresiones regulares en Grep (Regex)

Localizadores de terminales

Comando Grep en Linux/UNIX

significado de la salida auxiliar ps