在Linux中,有多种工具可以用于过滤进程,其中许多工具确实支持正则表达式。以下是主要工具及其正则表达式支持情况的说明:
ps
命令ps
本身不支持正则表达式,但可以结合 grep
使用:
ps aux | grep -E 'pattern'
-E
选项启用扩展正则表达式(ERE)。
pgrep
命令专门用于查找进程ID,支持正则表达式:
pgrep -f 'pattern' # 使用完整命令行匹配
pgrep '^pattern$' # 精确匹配
pkill
命令类似于 pgrep
但用于终止进程:
pkill -f 'pattern'
htop
交互式工具在 htop
中,按 F3
或 /
可以搜索进程,支持正则表达式。
top
命令在 top
运行时,按 O
(大写)可以过滤进程,支持简单的模式匹配但不完全是正则表达式。
# 查找以"python"开头且包含"script"的进程
pgrep -f '^python.*script'
# 查找nginx或apache进程
ps aux | grep -E 'nginx|apache'
# 查找特定用户的java进程
pgrep -u username 'java'
-f
选项通常会对整个命令行进行匹配,而不仅仅是进程名如需更复杂的进程过滤,可以考虑结合 awk
或 perl
等工具使用。