在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]/。根据需求选择合适的命令即可!