Nach man ps
, ps -aux
ist es, „alle Prozesse auf dem System unter Verwendung finden Standard (UNIX) Syntax “. Ich habe keine Möglichkeit gefunden, ein benutzerdefiniertes Format für die Anzeige der Ausgabe festzulegen.
In BSD - Syntax können Sie jedoch die Breite der Spalte wie festgelegt: user:<width>
. Das Folgende sollte Ihnen dieselben Informationen geben und die Spaltenbreite des Benutzernamens auf 20 (oder einen anderen Wert) setzen:
ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
Ausgabe mit (sehr) langem Namen:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
.........................................................................................
root 3826 0.0 0.1 77828 4788 ? Ss 08:15:55 00:00:00 cupsd
lp 3831 0.0 0.0 63156 2224 ? S 08:15:56 00:00:00 dbus
lp 3832 0.0 0.0 63156 2220 ? S 08:15:56 00:00:00 dbus
root 4822 1.7 5.1 446964 210416 tty8 Ss+ 08:38:00 00:03:27 Xorg
root 4923 0.0 0.1 174652 4412 ? Sl 08:38:02 00:00:00 lightdm
tantemarievanhier 5181 0.0 0.1 544216 4796 ? Sl 08:38:08 00:00:00 gnome-keyring-d
tantemarievanhier 5228 0.0 0.0 40492 2740 ? Ss 08:38:08 00:00:00 init
tantemarievanhier 5369 0.0 0.0 41816 3064 ? Ss 08:38:09 00:00:02 dbus-daemon
tantemarievanhier 5376 0.0 0.0 10616 316 ? Ss 08:38:09 00:00:00 ssh-agent
Spaltenbreite auf 7 setzen:
ps axo user:7,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
.........................................................................................
tantem+ 6623 0.0 0.0 287228 3820 ? Sl 08:39:00 00:00:00 unity-webapps-s
tantem+ 6679 0.0 0.4 676856 18640 ? Sl 08:39:20 00:00:00 update-notifier
tantem+ 6721 0.0 0.1 541224 7056 ? Sl 08:40:20 00:00:00 deja-dup-monito
tantem+ 6743 0.0 0.5 810616 21888 ? Sl 08:41:55 00:00:00 unity-scope-hom
tantem+ 6758 0.0 0.2 717256 10352 ? Sl 08:41:55 00:00:00 unity-files-dae
tantem+ 6760 0.0 0.5 607208 22920 ? Sl 08:41:55 00:00:00 unity-scope-loa
tantem+ 6784 0.0 0.2 350676 9060 ? Sl 08:41:56 00:00:00 unity-music-dae
Aus praktischen Gründen können Sie die folgende Zeile hinzufügen ~/.bashrc
:
alias psaux='ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm'
Das ps aux
ist also die "normale" Ausgabe, während psaux
Sie die vollständige Namensversion erhalten.
Hinweis:
Sie können auch den vollständigen Namen anzeigen, indem Sie die Namensspalte an die letzte Position verschieben:
ps axo pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm,user
gibt:
PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND USER
5181 0.0 0.1 544216 4548 ? Sl 08:38:08 00:00:00 gnome-keyring-d tantemarievanhier
5228 0.0 0.0 40492 2668 ? Ss 08:38:08 00:00:00 init tantemarievanhier
5369 0.0 0.0 41816 3032 ? Ss 08:38:09 00:00:07 dbus-daemon tantemarievanhier
So zeigen Sie die Ausgabe an, indem Sie die Breite der USER-Spalte automatisch einstellen
Es gibt eine andere, verfeinerte Möglichkeit, die Breite der USER-Spalte festzulegen. Wenn wir den Befehl mit einem sehr hohen Wert für die USER-Spaltenbreite ausführen, können wir ein kleines Skript verwenden, um die Zeilen neu anzuordnen und die Spaltenbreite an den längsten Benutzernamen anzupassen.
Um das zu tun
Wenn Sie dann psaux
in einem Terminalfenster ausgeführt werden, wird die Ausgabe mit einer automatischen Breite der Spalte USER angezeigt.
Das Drehbuch:
#!/usr/bin/env python3
import subprocess
command = "ps axo user:30,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm"
l = subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").split("\n")
minlen = sorted(set([30-len(item.split(" ")[0]) for item in l]))[0]
for line in l:
print(line[:30-minlen]+line[30:])