我想通過geektools在桌面上使用ps來查看哪些進程正在使用哪些進程。 目前我的命令是:用ps進行組進程
ps -amcwwwxo "command %mem %cpu" | grep -v grep | head -13
的問題,這一點,是因爲看到我使用鉻,進程「谷歌瀏覽器,他」佔據了大部分顯示13行。
有什麼方法可以將同名的所有進程的mem和cpu用法彙總在一起嗎?通過ps或通過另一個命令管道。
我想通過geektools在桌面上使用ps來查看哪些進程正在使用哪些進程。 目前我的命令是:用ps進行組進程
ps -amcwwwxo "command %mem %cpu" | grep -v grep | head -13
的問題,這一點,是因爲看到我使用鉻,進程「谷歌瀏覽器,他」佔據了大部分顯示13行。
有什麼方法可以將同名的所有進程的mem和cpu用法彙總在一起嗎?通過ps或通過另一個命令管道。
您可以使用的awk
和sort
組合:
(
printf "%-20s %-8s %-8s\n" "COMMAND" "%MEM" "%CPU"
/bin/ps -amcwwwxo "command %mem %cpu" |
/usr/bin/awk -F" " '
BEGIN {
idx=0
format="%-20s /%-8s/ %-8s\n"
}
{
idx = idx + 1
col1=$0
col2=$(NF-1)
col3=$NF
sub(/[[:space:]]+[^ ]+[[:space:]]+[^ ]+[[:space:]]*$/,"", col1)
a[idx]=col1
b[col1]+=col2
c[col1]+=col3
}
END {
for(i=2; i<=idx; i++)
{
if (a[i] in b)
{
printf format, a[i], b[a[i]], c[a[i]]
delete b[a[i]]
}
}
}
' |
/usr/bin/sort -rn -t '/' -k 2,2 | /usr/bin/tr -d '/' | /usr/bin/head -n 15
)
它不存在,你應該寫你自己的代碼/命令/腳本來做到這一點。由於所有Google Chrome Helper進程都是獨立的進程,因此您可以編寫一個腳本,使用父進程ID計算所有Chrome進程(助手,插件主機等)。
尋找同樣的,我想通了,這
ps aux | awk '{arr[$1]+=$4}; END {for (i in arr) {print i,arr[i]}}' | sort -k2
打印由MEM有序過程,由用戶進行分組(列1, 1美元),你可以通過其他的東西組合,然後總結其他的東西,改變$ 1和$ 4
我很高興能找到解決辦法,只是想分享。
頂級CPU組通過命令行:
sudo ps aux | awk '{arr[$11]+=$3}; END {for (i in arr) {print arr[i],i}}' | sort -k1nr | head -n 10
簡單而智能的腳本 – ashah 2017-04-04 11:37:56
真棒的東西,謝謝! – skeletalmonkey 2011-06-16 03:53:43
在Ubuntu 16.04上從ZSH執行上述命令時,出現了以下錯誤:錯誤:必須設置個性才能獲得-x選項。解決方法是刪除'-'作爲'ps'參數。用'/ bin/ps amcwwwxo'執行完美! – 2017-04-28 13:01:57