在 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进程问题。