GNU/Linux >> Linux Esercitazione >  >> Linux

Più elegante ps aux | grep -v grep

Usa pgrep. È più affidabile.


La solita tecnica è questa:

ps aux | egrep '[t]erminal'

Questo corrisponderà alle righe contenenti terminal , quale egrep '[t]erminal' non! Funziona anche su molti sapori di Unix.


Questa risposta si basa su un precedente pgrep Rispondere. Si basa anche su un'altra risposta che combina l'uso di ps con pgrep . Ecco alcuni esempi di formazione pertinenti:

$ 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]

Quanto sopra può essere utilizzato come funzione :

$ 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

Confronta con l'uso di ps con grep . La riga di intestazione utile non viene stampata:

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

Linux
  1. Grep ricorsivo Vs Trova / -type F -exec Grep {}; Qual è più efficiente/più veloce?

  2. Grep -v Comportamento imprevisto?

  3. Meno non è solo di più?

  4. Come grep \n nel file

  5. ps significato uscita aux

Grep Regex:una guida completa

Come escludere in Grep

Espressioni regolari in Grep (Regex)

Cercapersone terminali

Comando Grep in Linux/UNIX

Come specificare più spazi per il delimitatore usando cut?