我如何创建一个脚本来计算每个用户运行的进程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]}'