使用ps与awk可一次性统计各用户进程数:ps -eo user= | awk '{count[$1]++} end {for (u in count) print u, count[u]}' | sort -k2,2nr;需sudo获取完整数据。

需要快速统计统信UOS中每个登录用户当前运行了多少个进程,以便评估资源分配均衡性或排查某用户异常启动大量子进程的情况,必须使用终端命令直接解析系统进程表,图形界面工具无法提供按用户聚合的计数结果。
用ps和awk一次性统计每个用户的进程数
这一步操作起来很简单,直接把命令复制粘贴进终端回车就行。
按下 Ctrl + Alt + T 打开终端窗口。
输入以下命令并回车:ps -eo user= | awk '{count[$1]++} END {for (u in count) print u, count[u]}' | sort -k2,2nr。
该命令先用 ps -eo user= 提取所有进程的用户名字段(不带表头),再由 awk 统计每用户名出现次数,最后用 sort -k2,2nr 按第二列(数量)降序排列。输出格式为“用户名 进程数”,例如 root 42、user1 18。
【注意:普通用户执行时看不到其他用户进程,仅显示自己及系统守护进程(如root下的systemd);如需完整统计,必须加sudo权限】
用pgrep按用户精确计数(推荐用于特定用户)
当只需确认某个具体用户(比如www-data或postgres)的进程总数,且要求结果绝对准确(排除伪进程、线程干扰)时,此方法更可靠。
方法一:统计当前登录用户进程数
在终端中执行:pgrep -u $USER | wc -l。
方法二:统计指定用户名(如daemon)的进程数
执行:pgrep -u daemon | wc -l。
pgrep只匹配实际进程,不包含内核线程,且默认忽略自身(即不会把 pgrep 命令本身计入),比 ps 筛选更干净。如果返回 0,说明该用户当前无活跃进程。
用top实时观察用户进程分布
top 本身不直接显示“每个用户的进程数量”,但可通过交互方式快速感知用户级负载集中度。
第一步:在终端输入 top 并回车,进入实时监控界面。
第二步:按 大写字母 U,top 会提示 “Which user”,此时输入目标用户名(如 user1)并回车,界面立即过滤出该用户所有进程。
第三步:观察左上角显示的 “Tasks: X total, Y running…” 中的 total 数值——这就是当前筛选条件下该用户的进程总数。
第四步:按 q 退出 top,或再次按 U 输入其他用户名继续查看。
这个方法不能一次性列出全部用户计数,但对临时抽查某个可疑用户是否异常拥有多进程非常高效,且无需记忆复杂命令。











