在 Linux 系统中,有多种方法可以查看进程信息。以下是常用的命令和技巧:
ps
命令(进程快照)基本用法:
ps aux # 查看所有用户的所有进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
常用参数:
- a
:显示终端所有用户的进程。
- u
:显示进程的详细用户/资源占用(CPU、内存等)。
- x
:包括不关联终端的进程(如守护进程)。
- -e
:显示所有进程(等价于 -A
)。
- -f
:显示完整格式(UID、PID、父进程PPID等)。
示例:
ps aux | grep nginx # 过滤特定进程(如nginx)
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head # 按内存排序显示前10进程
top
/ htop
命令(动态监控)top
:实时显示进程状态(CPU、内存等),按 q
退出。
top
M
(按内存排序)、P
(按CPU排序)、k
(杀死进程)。htop
(需安装):增强版 top
,支持鼠标操作和颜色高亮。
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
htop
pgrep
/ pkill
(按名称操作进程)bash
pgrep -l nginx # 查找进程名为nginx的PID及名称
bash
pkill nginx # 终止所有nginx进程
pidof
(直接获取进程PID)pidof sshd # 显示sshd服务的PID
/proc
文件系统/proc/PID/
目录下。
bash
cat /proc/1234/status # 查看PID为1234的进程状态
ls /proc # 列出所有运行中的进程(数字目录即PID)
systemctl
(管理系统服务进程)systemctl status nginx # 查看nginx服务状态(包括主PID)
systemctl list-units --type=service # 列出所有系统服务
netstat
/ ss
(查看网络相关进程)netstat -tulnp | grep 80 # 查看占用80端口的进程
ss -tulnp # 更现代的替代工具(ss)
lsof
(查看文件/端口关联的进程)lsof -i :22 # 查看使用22端口(SSH)的进程
lsof /var/log/syslog # 查看谁在读写syslog文件
ps aux
或 ps -ef
。top
或 htop
。pgrep
/ pkill
。netstat
或 ss
+ lsof
。通过组合这些命令,可以高效管理和排查Linux进程问题。