Sie können die ps
Ausgabe auch etwas besser handhaben .
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Dadurch wird die ps
Ausgabe nach Bedarf nach Ihren Vorgaben analysiert.
Wenn Sie jedoch keinen Zeilenumbruch verwenden, besteht natürlich das Problem, dass Informationen fehlen. Benötigen Sie wirklich alles für alle Prozesse? Öffnen Sie es in einem Pager, wenn ja:
ps ww ${opts} | $PAGER
Wenn nicht, geben Sie an, was Sie sehen möchten:
ps -o args= -p $pid
Alternativ können Sie ps
Ihr Terminal explizit informieren --width
:
man ps
...
w
Breite Ausgabe. Verwenden Sie diese Option zweimal für unbegrenzte Breite.
-w
Breite Ausgabe. Verwenden Sie diese Option zweimal für unbegrenzte Breite.
--width n
Bildschirmbreite einstellen.
Das --width
Ding funktioniert genau nach Ihren Anforderungen, ohne dass zusätzliche Filter oder Zusatzprozesse erforderlich sind (was Ihre -aux
Ausgabe wahrscheinlich nur noch mehr überladen wird ). Und mit $COLUMNS
wie oben gezeigt und wie Stephane betont, wird es sogar dynamisch funktionieren.
Es ist jedoch wahrscheinlich erwähnenswert, dass ich finde, dass Leute oft versuchen, diese Art von unnötigen Filtern hinzuzufügen, damit sie einen |pipe
durch einen anderen Filter aufnehmen können, um die Ausgabe zu analysieren, was wahrscheinlich auch unnötig ist. Natürlich meine ich mit Leuten meistens mich.
Mit dem -o
oben erwähnten Utput-Operanden können Sie filtern, welche Spalten ps
angezeigt werden, und wenn Sie die =
Zuordnung hinzufügen, können Sie die Spalte sogar nach Belieben benennen. Ich lasse die Zuweisung leer und übergebe ihr einen -p
Zielprozess, $pid
sodass die einzige Ausgabe ps
überhaupt der $pid
Befehlsname und dessen args
Aufruf ist. Und -o
kratzt kaum an der Oberfläche, wie Sie definieren können, was ps
angezeigt wird oder nicht. Dies ist die Richtung, die ich Ihnen empfehlen würde, insbesondere über:
man ps
...
So zeigen Sie jeden Prozess auf dem System mithilfe der BSD-Syntax an:
ps ax
ps axu
So drucken Sie einen Prozessbaum:
ps -ejH
ps axjf
So erhalten Sie Informationen zu Threads:
ps -eLf
ps axms
So erhalten Sie Sicherheitsinformationen:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
So sehen Sie jeden Prozess, der als Root (echte und effektive ID) im Benutzerformat ausgeführt wird:
ps -U root -u root u
So zeigen Sie jeden Prozess mit einem benutzerdefinierten Format an:
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
Drucken Sie nur die Prozess-IDs von syslogd:
ps -C syslogd -o pid=
Drucken Sie nur den Namen von PID 42:
ps -p 42 -o comm=