我無法獲得所有pid的CPU%使用率,而不知道任何程序名。所有pid的CPU使用率%
我覺得我很接近的解決方案,這是我迄今所做的:
for line in $(pgrep -f chrome); \
do echo -n $line" - "; \
ps -p $line -o %cpu | sed -n 2p | sed 's/ //'; done
在這個例子中,我只獲得所有鉻的PID。在下一步我希望所有正在執行的PID。
我無法獲得所有pid的CPU%使用率,而不知道任何程序名。所有pid的CPU使用率%
我覺得我很接近的解決方案,這是我迄今所做的:
for line in $(pgrep -f chrome); \
do echo -n $line" - "; \
ps -p $line -o %cpu | sed -n 2p | sed 's/ //'; done
在這個例子中,我只獲得所有鉻的PID。在下一步我希望所有正在執行的PID。
只需使用top
命令即可輕鬆完成此操作。
要由CPU百分比遞減順序,你可以使用top -o -cpu
如果你不想使用top出於某種原因,情侶我能想到這樣做的其他方式。
> ps -e -o "%p-%C"
或者,如果你想要做它在腳本中,類似的信息(或者可能只是再次解析ps或檢查/proc/pid/stat
CPU使用率)
#!/bin/bash
shopt -s extglob
for line in /proc/+([0-9]); do
echo -n "${line##*/}- "
ps -p "${line##*/}" -o %cpu | sed -n 2p | sed 's/ //'
done
凡
shopt -s extglob
匝在擴展文件globing中bash+([0-9])
個匹配含有1個或多個數字${line##*/}
之前試紙的一切,包括最後/
字符
我猜OP知道這個命令的任何文件。 – maverik
這個假設沒有任何基礎。他沒有提過一次。 – ktm5124