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]}'

相关内容