在Linux系统中,查看当前进程信息有多种命令和方式,以下是常用的方法及详细说明:
ps
命令(最基础)ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看完整格式的所有进程(标准UNIX风格)
a
:显示所有用户的进程。u
:显示进程的详细用户/资源占用(CPU、内存等)。x
:包括不关联终端的进程(如后台服务)。-e
:显示所有进程。-f
:显示完整格式(UID, PID, 父进程PPID等)。示例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169316 13104 ? Ss May30 0:15 /sbin/init
top
或 htop
(实时动态查看)top # 实时动态显示进程信息(按CPU排序,默认每3秒刷新)
htop # 增强版top(需安装,支持颜色、鼠标操作等)
top
中按 M
按内存排序,按 P
按CPU排序,按 q
退出。htop
更直观,支持进程树视图(F5
)。pstree
(以树形结构显示进程)pstree -p # 显示进程树,并包含PID
示例输出:
systemd(1)─┬─sshd(1234)───sshd(5678)───bash(9012)
├─nginx(3456)───worker(7890)
└─cron(1111)
pgrep
和 pkill
(快速查找/操作进程)pgrep -l nginx # 查找名为"nginx"的进程并显示PID和名称
pkill nginx # 终止所有名为"nginx"的进程
cat /proc/[PID]/status # 查看某个进程的详细状态(替换[PID])
lsof -p [PID] # 查看进程打开的文件列表
bash
cat /proc/1234/status # 查看PID为1234的进程信息
ps aux | grep nginx # 筛选包含"nginx"的进程
ps -eo pid,cmd --sort=-%mem | head # 按内存占用排序显示前10进程
systemctl
(管理系统服务进程)systemctl status nginx # 查看nginx服务的状态(包括主进程PID)
ss
或 netstat
(查看网络相关进程)ss -tulnp # 显示监听端口的进程(需root权限)
netstat -tulnp # 旧版命令(部分系统已弃用)
ps aux
或 ps -ef
。top
或 htop
。pstree -p
。pgrep
/pkill
+ /proc/[PID]/
。根据需求选择合适的命令即可!