Sie können die psAusgabe 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 psAusgabe 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 psIhr 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 --widthDing funktioniert genau nach Ihren Anforderungen, ohne dass zusätzliche Filter oder Zusatzprozesse erforderlich sind (was Ihre -auxAusgabe wahrscheinlich nur noch mehr überladen wird ). Und mit $COLUMNSwie 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 |pipedurch 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 -ooben erwähnten Utput-Operanden können Sie filtern, welche Spalten psangezeigt 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 -pZielprozess, $pidsodass die einzige Ausgabe psüberhaupt der $pidBefehlsname und dessen argsAufruf ist. Und -okratzt kaum an der Oberfläche, wie Sie definieren können, was psangezeigt 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=