GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eleganter ps aux | grep -v grep

Verwenden Sie pgrep. Es ist zuverlässiger.


Die übliche Technik ist diese:

ps aux | egrep '[t]erminal'

Dadurch werden Zeilen gefunden, die terminal enthalten , welche egrep '[t]erminal' nicht! Es funktioniert auch auf vielen Varianten von Unix.


Diese Antwort baut auf einem früheren pgrep auf Antworten. Es baut auch auf einer anderen Antwort auf, die die Verwendung von ps kombiniert mit pgrep . Hier sind einige relevante Trainingsbeispiele:

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

Obiges kann als Funktion verwendet werden :

$ 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

Vergleichen Sie mit der Verwendung von ps mit grep . Die nützliche Kopfzeile wird nicht gedruckt:

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

Linux
  1. Rekursives Grep Vs Find / -type F -exec Grep {}; Was ist effizienter/schneller?

  2. Grep:Speicher erschöpft?

  3. Ist weniger nicht einfach mehr?

  4. Wie kann man mit cut mehr Leerzeichen für das Trennzeichen angeben?

  5. Wie grep \n in Datei

Grep Regex:Ein vollständiger Leitfaden

So schließen Sie in Grep aus

Reguläre Ausdrücke in Grep (Regex)

Terminal-Pager

Grep-Befehl unter Linux/UNIX

Verwenden von grep vs. awk