在 Linux 中,有多种方法可以过滤进程列表并排除特定的进程。以下是几种常用的方法:
ps aux | grep -v "process_name"
-v
选项表示反向选择,即不显示包含 "process_name" 的行。
示例:查看所有进程但排除 sshd 进程
ps aux | grep -v "sshd"
pgrep -v "process_name"
示例:查找所有不是 bash 的进程
pgrep -v "bash"
ps aux | awk '!/process_name/'
示例:排除 bash 和 sshd 进程
ps aux | awk '!/bash/ && !/sshd/'
ps -e --exclude="process_name"
ps aux | grep -v -e "process1" -e "process2"
或者使用 egrep:
ps aux | grep -v -E "process1|process2"
如果要排除特定 PID 的进程:
ps aux | awk '$2 != "1234"'
ps -ef | grep [j]ava | grep -v "myapp"
ps -e | grep -v -e "bash" -e "sshd" | wc -l
pkill -f python | grep -v "important_script.py"
这些方法可以根据需要组合使用,实现更复杂的进程过滤需求。