插件窝 干货文章 linux过滤进程怎样排除特定进程

linux过滤进程怎样排除特定进程

进程 bash 排除 process 973    来源:    2025-05-15

Linux 过滤进程并排除特定进程的方法

在 Linux 中,有多种方法可以过滤进程列表并排除特定的进程。以下是几种常用的方法:

1. 使用 ps 命令结合 grep

ps aux | grep -v "process_name"

-v 选项表示反向选择,即不显示包含 "process_name" 的行。

示例:查看所有进程但排除 sshd 进程

ps aux | grep -v "sshd"

2. 使用 pgrep 和 pkill 的排除功能

pgrep -v "process_name"

示例:查找所有不是 bash 的进程

pgrep -v "bash"

3. 使用 ps 结合 awk 进行更精确的排除

ps aux | awk '!/process_name/'

示例:排除 bash 和 sshd 进程

ps aux | awk '!/bash/ && !/sshd/'

4. 使用 ps 的 --exclude 选项(某些 Linux 发行版支持)

ps -e --exclude="process_name"

5. 排除多个特定进程

ps aux | grep -v -e "process1" -e "process2"

或者使用 egrep:

ps aux | grep -v -E "process1|process2"

6. 结合进程 ID 排除

如果要排除特定 PID 的进程:

ps aux | awk '$2 != "1234"'

实际应用示例

  1. 查看所有 Java 进程但排除特定应用:
ps -ef | grep [j]ava | grep -v "myapp"
  1. 统计除了 bash 和 sshd 外的进程数量:
ps -e | grep -v -e "bash" -e "sshd" | wc -l
  1. 杀死所有 Python 进程但排除特定脚本:
pkill -f python | grep -v "important_script.py"

这些方法可以根据需要组合使用,实现更复杂的进程过滤需求。