插件窝 干货文章 常用的linux查看进程

常用的linux查看进程

进程 查看 nginx 显示 841    来源:    2025-04-05

在 Linux 系统中,查看和管理进程是系统管理的重要任务之一。以下是常用的查看进程命令及其用法:


1. ps - 查看当前进程

基本语法:

ps [options]

常用组合: - ps aux:查看所有用户的所有进程(BSD 风格)
- a:显示所有用户的进程
- u:显示进程的详细信息(如用户、CPU、内存等)
- x:包括未关联终端的进程(如后台服务)
输出列说明:USER, PID, %CPU, %MEM, VSZ(虚拟内存), RSS(物理内存), TTY, STAT(状态), START, TIME, COMMAND

  • ps -ef:以完整格式列出所有进程(标准 UNIX 风格)
    • -e:所有进程
    • -f:完整格式(包括 PPID、启动时间等)

示例:

ps aux | grep nginx  # 查找 nginx 相关进程

2. top - 动态实时查看进程

功能:动态显示系统资源使用情况和进程列表(按 CPU 占用排序,默认 3 秒刷新一次)。
快捷键: - P:按 CPU 使用率排序
- M:按内存使用率排序
- q:退出
- k:终止指定 PID 的进程
- 1:显示所有 CPU 核心的负载

类似工具: - htop(需安装):增强版 top,支持鼠标操作和颜色高亮。
bash sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL


3. pstree - 以树形结构显示进程

功能:直观展示进程间的父子关系。
常用选项: - -p:显示 PID
- -u:显示用户名
- -a:显示完整命令

示例:

pstree -apu  # 树形显示所有进程及用户信息

4. pgrep - 通过名称查找进程 PID

功能:快速根据进程名获取 PID。
示例:

pgrep -l nginx  # 查找 nginx 进程并显示名称

5. pidof - 获取进程的 PID

功能:直接返回指定进程名的 PID。
示例:

pidof nginx  # 输出 nginx 的主进程 PID

6. lsof - 查看进程打开的文件

功能:列出被进程打开的文件或网络连接。
常用场景

lsof -i :80       # 查看占用 80 端口的进程
lsof -p <PID>     # 查看指定 PID 打开的文件
lsof -u username  # 查看某用户打开的文件

7. kill / pkill - 终止进程

  • kill:通过 PID 终止进程
    bash kill -9 <PID> # 强制终止进程(SIGKILL)
  • pkill:通过名称终止进程
    bash pkill -f "nginx" # 终止所有匹配 "nginx" 的进程

8. systemctl - 管理系统服务(Systemd)

适用场景:查看或管理由 Systemd 管理的服务进程。

systemctl status nginx   # 查看 nginx 服务状态
systemctl stop nginx    # 停止服务
systemctl start nginx   # 启动服务

9. netstat / ss - 查看网络相关进程

  • netstat(较老,部分系统已弃用): bash netstat -tulnp | grep 80 # 查看监听 80 端口的进程
  • ss(推荐替代 netstat): bash ss -tulnp | grep 80

总结表格

命令 用途 常用示例
ps aux 查看所有进程详情 ps aux | grep java
top 实时监控进程资源占用 top
pstree 树形显示进程关系 pstree -p
pgrep 根据名称查找 PID pgrep -l nginx
lsof 查看进程打开的文件/端口 lsof -i :22
kill 终止进程 kill -9 1234
systemctl 管理 Systemd 服务 systemctl status sshd

根据需求选择合适的工具:
- 快速查找进程pgreppidof
- 实时监控tophtop
- 分析进程关系pstree
- 网络连接sslsof