插件窝 干货文章 linux过滤进程有哪些有效方法

linux过滤进程有哪些有效方法

进程 使用 过滤 查找 149    来源:    2025-05-15

Linux 进程过滤的有效方法

在 Linux 系统中,有多种有效的方法可以过滤和查找进程。以下是几种常用的方法:

1. 使用 ps 命令过滤

ps 是最基础的进程查看工具,可以通过多种方式过滤:

# 按名称过滤
ps -ef | grep process_name

# 按用户过滤
ps -u username

# 按CPU/内存使用排序
ps aux --sort=-%cpu | head  # 按CPU降序
ps aux --sort=-%mem | head  # 按内存降序

# 精确匹配进程名(避免grep自身出现在结果中)
ps -ef | grep [p]rocess_name

2. 使用 pgrep 命令

pgrep 专门用于查找进程ID:

# 查找指定名称的进程ID
pgrep process_name

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

# 按用户过滤
pgrep -u username process_name

3. 使用 pstree 查看进程树

# 显示进程树
pstree

# 显示特定用户的进程树
pstree username

# 显示进程ID
pstree -p

4. 使用 htoptop 交互式过滤

# 启动htop后按F4可以过滤进程
htop

# 在top中按"o"可以添加过滤条件
top

5. 使用 pidof 查找进程ID

# 查找指定程序的进程ID
pidof program_name

6. 使用 ssnetstat 过滤网络相关进程

# 查看监听特定端口的进程
ss -ltnp | grep :80

# 等同于
netstat -ltnp | grep :80

7. 使用 lsof 按文件或端口过滤

# 查看使用特定文件的进程
lsof /path/to/file

# 查看使用特定端口的进程
lsof -i :80

# 查看特定用户打开的文件/进程
lsof -u username

8. 组合使用多个命令

# 查找并杀死特定进程
pkill process_name
# 或者
kill $(pgrep process_name)

# 查找并显示特定进程的详细信息
ps -p $(pgrep -d, process_name) -o pid,user,cmd,start_time

9. 使用 /proc 文件系统

# 查看所有进程目录
ls /proc | grep -E '^[0-9]+$'

# 查看特定进程的信息
cat /proc/PID/status

选择哪种方法取决于具体需求,简单的进程查找可以使用 pgreppidof,复杂的过滤可以使用 ps 配合管道和 grep,而交互式操作则可以使用 htop