Theo man ps
, ps -aux
là "Để xem mọi quy trình trên hệ thống sử dụng cú pháp chuẩn (UNIX) ". Tôi không tìm thấy cách nào để đặt định dạng do người dùng xác định để hiển thị đầu ra.
Trong BSD cú pháp tuy nhiên, bạn có thể thiết lập độ rộng của cột như: user:<width>
. Sau đây sẽ cung cấp cho bạn thông tin tương tự, đặt chiều rộng cột tên người dùng thành 20 (hoặc bất kỳ giá trị nào khác):
ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
đầu ra với (rất) tên dài:
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
thiết lập độ rộng cột thành 7:
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
Vì lý do thuận tiện, bạn có thể thêm dòng sau vào ~/.bashrc
:
alias psaux='ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm'
vì vậy đó ps aux
là đầu ra "bình thường", trong khi psaux
cung cấp cho bạn phiên bản tên đầy đủ.
Ghi chú:
Bạn cũng có thể hiển thị tên đầy đủ bằng cách di chuyển cột tên đến vị trí cuối cùng:
ps axo pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm,user
cho:
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
Cách hiển thị đầu ra, tự động đặt độ rộng của cột USER
Có một cách khác, tinh tế hơn để đặt chiều rộng của cột USER-. Nếu chúng ta chạy lệnh với giá trị rất cao cho chiều rộng cột USER, chúng ta có thể sử dụng một tập lệnh nhỏ để sắp xếp lại các dòng, điều chỉnh độ rộng của cột thành tên người dùng dài nhất.
Làm như vậy
Sau đó, chạy psaux
trong cửa sổ terminal sẽ hiển thị đầu ra với chiều rộng tự động của cột USER.
Kịch bản:
#!/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:])