Wie kann der Befehl ps den Speicher in mb anstelle von kb anzeigen lassen?
10
Der Linux-Befehl ps zeigt verschiedene Speichernutzungen wie RSS und die Größe standardmäßig in KB an. Gibt es eine Möglichkeit, in mb oder gb zu zeigen, wie es der ls -s --human-readableFall ist?
Die fehlende Erwähnung in man pslegt nahe, dass es keine solche eingebaute Option gibt.
Ulrich Schwarz
Antworten:
19
AFAIK Sie können es nicht einfach durch reinen psBefehl mit Optionen erreichen. Sie können jedoch einige Textverarbeitungsprogramme verwenden, awkum das zu tun, was Sie möchten:
Dies ergibt sich aus psund dann für jede Zeile mit Ausnahme der ersten, die die fünfte Spalte, die normalerweise in KB ist, durch MB ersetzt, wobei das M-Suffix hinzugefügt wird.
Sie können es zu einem Alias machen und in einer .bashrc- Datei speichern, damit Sie es mit so etwas wie aufrufen können myps.
Die meisten Leute fragen sich, wie man das Format beibehält oder andere Einheiten und Präzision verwendet.
Für eine einfache Version können Sie den column -tAusgabefilter verwenden:
Dies erkennt jedoch Leerzeichen in der letzten Spalte nicht korrekt. Leider müssen wir uns mit der Textformatierung befassen und unsere eigene Formatzeichenfolge im printfähnlichen Format vorbereiten .
%8sbedeutet sfür Zeichenfolge, 8für 8 Zeichen breit und da keine -Ausgabe dieses Feldes rechtsbündig ist.
substr(o, a)Nimmt die Teilzeichenfolge der ursprünglichen Zeile (daher ozuvor gespeichert) ab der Position, adie in der vorherigen Bedingung berechnet wurde, sodass die Befehlsausgabe mit beibehaltenen Leerzeichen angezeigt werden kann.
man ps
legt nahe, dass es keine solche eingebaute Option gibt.Antworten:
AFAIK Sie können es nicht einfach durch reinen
ps
Befehl mit Optionen erreichen. Sie können jedoch einige Textverarbeitungsprogramme verwenden,awk
um das zu tun, was Sie möchten:Dies ergibt sich aus
ps
und dann für jede Zeile mit Ausnahme der ersten, die die fünfte Spalte, die normalerweise in KB ist, durch MB ersetzt, wobei das M-Suffix hinzugefügt wird.Sie können es zu einem Alias machen und in einer .bashrc- Datei speichern, damit Sie es mit so etwas wie aufrufen können
myps
.Die meisten Leute fragen sich, wie man das Format beibehält oder andere Einheiten und Präzision verwendet.
Für eine einfache Version können Sie den
column -t
Ausgabefilter verwenden:Dies erkennt jedoch Leerzeichen in der letzten Spalte nicht korrekt. Leider müssen wir uns mit der Textformatierung befassen und unsere eigene Formatzeichenfolge im
printf
ähnlichen Format vorbereiten .Erläuterung:
NR==1
Bedingung ist nur für die erste Zeile (Header). Wir verwenden die ursprüngliche ps-Ausgabe, um zu bestimmen, wo COMMAND startet:o=$0
speichert die unveränderte gesamte Zeile, damit wir sie später verwenden könnena=match($0,$11)
findet die Position des 11. Feldes (an der Stelle, an der die COMMAND-Spalte in der ursprünglichen Ausgabe beginnt)NR>1
ist für folgende Zeilen (Daten). Wir ändern das 5. Feld:$5=int(10*$5/1024)/10"M"
Ändert den Wert in Megabyte mit einer Dezimalstelle und fügt das Suffix "M" hinzu.%-10s
bedeutets
für Zeichenfolge,10
für 10 Zeichen breit,-
für Linksausrichtung%8s
bedeutets
für Zeichenfolge,8
für 8 Zeichen breit und da keine-
Ausgabe dieses Feldes rechtsbündig ist.substr(o, a)
Nimmt die Teilzeichenfolge der ursprünglichen Zeile (dahero
zuvor gespeichert) ab der Position,a
die in der vorherigen Bedingung berechnet wurde, sodass die Befehlsausgabe mit beibehaltenen Leerzeichen angezeigt werden kann.quelle
1.23GB
):ps aux | awk '{$5=int(100 * $5/1024/1024)/100"GB";}{ print;}'
ps
Formatierung beizubehalten? Tabs sind komplett entfernt mitawk