在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用于快速过滤。