插件窝 干货文章 linux查看进程的方法

linux查看进程的方法

进程 查看 所有 bash 610    来源:    2025-04-05

在 Linux 系统中,有多种方法可以查看进程信息。以下是常用的命令和技巧:


1. 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进程

2. 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
    

3. pgrep / pkill(按名称操作进程)

  • 查找进程PIDbash pgrep -l nginx # 查找进程名为nginx的PID及名称
  • 杀死进程bash pkill nginx # 终止所有nginx进程

4. pidof(直接获取进程PID)

pidof sshd         # 显示sshd服务的PID

5. /proc 文件系统

  • 每个进程的信息存储在 /proc/PID/ 目录下。 bash cat /proc/1234/status # 查看PID为1234的进程状态 ls /proc # 列出所有运行中的进程(数字目录即PID)

6. systemctl(管理系统服务进程)

systemctl status nginx    # 查看nginx服务状态(包括主PID)
systemctl list-units --type=service  # 列出所有系统服务

7. netstat / ss(查看网络相关进程)

netstat -tulnp | grep 80  # 查看占用80端口的进程
ss -tulnp                 # 更现代的替代工具(ss)

8. lsof(查看文件/端口关联的进程)

lsof -i :22               # 查看使用22端口(SSH)的进程
lsof /var/log/syslog      # 查看谁在读写syslog文件

总结场景推荐:

  • 快速查看所有进程ps auxps -ef
  • 实时监控资源占用tophtop
  • 按名称查找/操作进程pgrep / pkill
  • 分析网络连接netstatss + lsof

通过组合这些命令,可以高效管理和排查Linux进程问题。