Linux中ps命令會自動選擇一列進行排序,但有時這不是我們想要的。
方法一:
ps+sort
sort 選項與參數:
-f :忽略大小寫的差異,例如 A 與 a 視為編碼相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
-n :使用『純數字』進行排序(默認是以文字型態來排序的);
-r :反向排序;
-u :就是 uniq ,相同的數據中,僅出現一行代表;
-t :分隔符,默認是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思
例如:
ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less
按內存使用進行降序排列
ps , -e 是顯示所有進程, -o是定制顯示信息的格式
rss: resident set size, 表示進程占用RAM(內存)的大小,單位是KB
pmem: %M, 占用內存的百分比
pcpu:%C,占用cpu的百分比
vsize: 表示進程占用的虛擬內存的大小,KB
args:進程名(command)
sort命令對ps結果進行排序
-k 1 :按第一個參數 rss進行排
-r:逆序
-n:numeric,按數字來排序
方法二:
使用ps自有參數--sort進行排序
格式:
--sort=[+|-] key
從SORT KEYS段中選一個多字母鍵.“+”字符是可選地,因為默認地方向就是按數字升序或者詞典順序.
比如:
按內存升序排列:ps aux --sort=rss
按CPU降序排列:ps aux --sort=-%cpu
排序中運用的值是ps運用地內部值,並非僅用於某些輸出格式地偽值.排序鍵列表見下表:
c cmd 可執行地簡單名稱
C cmdline 完整命令行
f flags 長模式標志
g pgrp 進程地組ID
G tpgid 控制tty進程組ID
j cutime 累計用戶時間
J cstime 累計系統時間
k utime 用戶時間
K stime 系統時間
m min_flt 次要頁錯誤地數量
M maj_flt 重點頁錯誤地數量
n cmin_flt 累計次要頁錯誤
N cmaj_flt 累計重點頁錯誤
o session 對話ID
p pid 進程ID
P ppid 父進程ID
r rss 駐留大小
R resident 駐留頁
s size 內存大小(千字節)
S share 共享頁地數量
t tty tty次要設備號
T start_time 進程啟動地時間
U uid UID
u user 用戶名
v vsize 總地虛擬內存數量(字節)
y priority 內核調度優先級