在 Linux 中,查看进程属于哪个用户有多种常用方法,下面按使用场景给你总结一下。
ps 查看进程用户(最常用)ps
ps -ef
输出示例:
UID PID PPID C STIME TTY TIME CMD
root 1234 1 0 10:00 ? 00:00:01 /usr/lib/systemd/systemd
user 5678 1234 0 10:01 pts/0 00:00:00 bash
其中:
ps aux
示例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1234 0.0 0.1 12345 6789 ? Ss 10:00 0:01 systemd
user 5678 0.1 0.2 23456 7890 pts/0 S+ 10:01 0:00 bash
✅ USER 列就是进程所属用户
ps -u 用户名
示例:
ps -u root
ps -u www-data
pgreppgrep -u 用户名
查看进程 PID:
pgrep -u root
查看完整命令:
pgrep -u root -a
top / htop 实时查看toptop
在 top 中:
u,然后输入用户名,可过滤指定用户进程htop(更直观,需安装)htop
F4 过滤用户ps -p PID -o user=
示例:
ps -p 1234 -o user=
ps -fp PID
/proc 查看(底层方式)cat /proc/PID/status | grep Uid
示例:
cat /proc/1234/status | grep Uid
输出:
Uid: 0 0 0 0
/etc/passwd 查用户名ps -eo user,pid,cmd
ps -eo user,pid,cmd | grep nginx
| 需求 | 推荐命令 |
|---|---|
| 查看所有进程及用户 | ps aux |
| 查看指定用户进程 | ps -u 用户名 |
| 实时查看 | top / htop |
| 已知 PID 查用户 | ps -p PID -o user= |
如果你有具体场景(比如:排查某个进程是谁启动的、Docker 容器里、systemd 服务),可以告诉我,我可以给你更精准的命令。