ps aux コマンドのユーザーあたりのプロセス数

ps aux コマンドのユーザーあたりのプロセス数

各ユーザーが実行するプロセスを計算するスクリプトをどのように作成できますか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]}'

関連情報