ps aux
で各ユーザーが実行したプロセスをカウントするスクリプトを作成するにはどうすればよいですか。これを使った
ps aux | awk '{print $1}' | grep root | wc -l
ただし、rootユーザーの数のみが表示されます。各ユーザーのプロセス数をリストしたい。私はこのようなものが必要です:
root 20
jamshi 15
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 }'
あなたが試すことができます
ps aux |
awk 'NR>1{tot[$1]++;}
END{for(id in tot)printf "%s %s\n",id,tot[id]}'