各ユーザーが実行するプロセスを計算するスクリプトをどのように作成できますかps aux
?私はこれを使用しました
ps aux | awk '{print $1}' | grep root | wc -l
ただし、root ユーザーの数だけが一覧表示されます。ユーザーあたりのプロセス数をリストしたいです。次のようなものが必要です。
root 20
jamshi 15
答え1
ps -fo user | sort | uniq -c
試してみる価値があります。
このコマンドは、ps -eo user=|sort|uniq -c
ユーザーごとのプロセス数をリストします。
ps -eo user=|sort|uniq -c
2 avahi
1 kernoops
1 messagebus
1 nobody
231 root
1 statd
5 steve
1 syslog
読み取りのために列の順序を反転する必要がある場合は、パイプawk '{ print $2 " " $1 }'
答え2
あなたは試すことができます
ps aux |
awk 'NR>1{tot[$1]++;}
END{for(id in tot)printf "%s %s\n",id,tot[id]}'