当前位置:首页 > Linux > 正文

linux 如何查看进程

nux查看进程常用ps、top、htop等命令,可按需选择以获取进程信息

Linux系统中,查看进程是日常系统管理和故障排查的重要操作,以下是几种常用的方法及其详细说明:

ps命令

ps命令是最基础且功能强大的进程查看工具,通过不同的参数组合可以获取丰富的进程信息。

参数组合 功能描述 示例输出字段
ps 显示当前终端下的进程 PID、TTY、TIME、CMD
ps -e 显示所有进程(包括其他用户) PID、USER、CMD
ps -ef 显示所有进程的完整信息(长格式) UID、PID、PPID、C、STIME、TTY、TIME、CMD
ps -aux 以用户为主的格式显示所有进程 USER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME、COMMAND

示例

  • ps aux | grep python:查找与Python相关的进程。
  • ps -ef --sort=-%mem:按内存使用率降序排列进程。

top命令

top命令提供动态更新的实时视图,适合监控进程资源占用情况,默认每3秒刷新一次,支持交互式操作。

快捷键 功能
h 显示帮助信息
q 退出top
k 终止进程(需输入PID)
r 调整进程优先级(renice)
P 按CPU使用率排序
M 按内存使用率排序

输出字段示例

  • Tasks:总进程数、运行中、休眠、停止、僵尸进程数。
  • CPU:用户态(us)、系统态(sy)、空闲(id)等占比。
  • Mem/Swap:总内存、已用、空闲、缓存等信息。

htop命令

htop是top的增强版,支持彩色高亮、垂直/水平滚动、树状视图(需安装)。

安装方式

  • Debian/Ubuntu:sudo apt install htop
  • CentOS/RHEL:sudo yum install htop

特点

linux 如何查看进程  第1张

  • 鼠标支持:直接点击列头排序。
  • 树状视图:按F5切换显示进程层级关系。
  • 自定义列:按F2选择显示的字段。

pstree命令

pstree以树状结构展示进程间的父子关系,适合分析进程派生逻辑。

常用参数

  • -p:显示进程ID。
  • -u:显示用户名。
  • -a:附加命令行参数。

示例

pstree -pu sshd

输出可能为:

sshd(1234)───sshd(1235)───bash(1236)

表示SSHD服务派生了子进程。

pgrep和pidof

用于根据进程名快速获取PID。

命令 功能 示例
pgrep [选项] 进程名 查找进程ID,支持模糊匹配 pgrep -f "python script.py"
pidof [进程名] 获取进程ID(部分系统不支持) pidof nginx

注意pgrep -f可匹配完整命令行,如查找包含特定参数的进程。

/proc文件系统

每个进程在/proc目录下有一个同名子目录,存储进程详细信息。

常用文件

  • /proc/[PID]/status:查看进程状态、内存使用等。
  • /proc/[PID]/cmdline:查看启动命令及参数。
  • /proc/[PID]/fd:查看进程打开的文件描述符。

示例

cat /proc/$(pgrep nginx)/status

可获取Nginx进程的内存、上下文切换次数等。

systemctl和service(针对系统服务)

用于查看系统服务的运行状态及对应的主进程。

命令 适用场景 示例
systemctl status [服务名] systemd系统 systemctl status nginx
service [服务名] status 老版本init系统 service ssh status

输出示例

● nginx.service A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2025-07-14 10:00:00 CST; 1h ago
 Main PID: 1234 (nginx)
    Tasks: 2 (limit: 4915)
   Memory: 10.5M
   CGroup: /system.slice/nginx.service
           ├─1234 /usr/sbin/nginx -g daemon on; master_process on
           └─2345 /usr/sbin/nginx -g daemon on; worker process

FAQs

如何终止一个进程?
可以使用kill [PID]pkill [进程名]

kill 1234          # 终止PID为1234的进程
pkill -f "python" # 终止所有包含"python"的命令行进程

若进程不响应,可使用kill -9 [PID]强制终止。

如何查看某个进程的详细资源占用?
使用pidstat命令:

pidstat -p 1234  # 监控PID为1234的进程的CPU、内存、IO等

或者通过top -p [PID]htop交互式查看

0