在Linux系统中,查看进程的常用命令如下,按场景分类整理:
ps
(Process Status)
ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
ps -u [用户] # 查看指定用户的进程
输出列说明:
USER
(用户)、PID
(进程ID)、%CPU
(CPU占用)、%MEM
(内存占用)、COMMAND
(命令)
top
(动态实时查看)
top # 动态显示进程(按CPU排序,默认3秒刷新)
top -p [PID] # 监控指定PID
交互命令:
M
(按内存排序)、P
(按CPU排序)、q
(退出)
htop
(增强版top
,需安装)
htop # 彩色界面,支持鼠标操作
按名称搜索
pgrep [进程名] # 返回匹配的PID(如 `pgrep nginx`)
pidof [进程名] # 直接返回PID(仅限精确匹配)
ps aux | grep [关键词] # 模糊搜索(如 `ps aux | grep python`)
按端口查进程
lsof -i :[端口号] # 查看占用端口的进程(如 `lsof -i :80`)
netstat -tulnp | grep [端口号] # 需root权限
进程树关系
pstree -p # 显示进程树(包含PID)
pstree [用户] # 查看指定用户的进程树
进程资源占用
pmap [PID] # 查看进程的内存映射
cat /proc/[PID]/status # 查看进程详细信息(如内存、状态)
systemctl
(Systemd服务管理)
systemctl status [服务名] # 查看服务状态(如 `systemctl status nginx`)
strace
(跟踪系统调用)
strace -p [PID] # 跟踪进程的系统调用(调试用)
kill -9 [PID] # 强制终止进程
pkill [进程名] # 按名称终止进程
killall [进程名] # 终止所有同名进程
# 查看Java进程并计算数量
ps -ef | grep java | grep -v grep | wc -l
# 查看占用CPU最高的前10个进程
ps aux --sort=-%cpu | head -n 10
根据需求选择命令,ps
适合静态快照,top/htop
适合动态监控,grep/pgrep
用于快速过滤。