插件窝 干货文章 linux过滤进程是否支持正则表达式

linux过滤进程是否支持正则表达式

正则 表达式 进程 支持 856    来源:    2025-05-15

Linux进程过滤与正则表达式支持

在Linux中,有多种工具可以用于过滤进程,其中许多工具确实支持正则表达式。以下是主要工具及其正则表达式支持情况的说明:

1. ps 命令

ps 本身不支持正则表达式,但可以结合 grep 使用:

ps aux | grep -E 'pattern'

-E 选项启用扩展正则表达式(ERE)。

2. pgrep 命令

专门用于查找进程ID,支持正则表达式:

pgrep -f 'pattern'  # 使用完整命令行匹配
pgrep '^pattern$'   # 精确匹配

3. pkill 命令

类似于 pgrep 但用于终止进程:

pkill -f 'pattern'

4. htop 交互式工具

htop 中,按 F3/ 可以搜索进程,支持正则表达式。

5. top 命令

top 运行时,按 O (大写)可以过滤进程,支持简单的模式匹配但不完全是正则表达式。

正则表达式示例

# 查找以"python"开头且包含"script"的进程
pgrep -f '^python.*script'

# 查找nginx或apache进程
ps aux | grep -E 'nginx|apache'

# 查找特定用户的java进程
pgrep -u username 'java'

注意事项

  1. 不同工具支持的正则表达式语法可能略有不同
  2. 某些工具默认使用基本正则表达式(BRE),而其他工具使用扩展正则表达式(ERE)
  3. 使用 -f 选项通常会对整个命令行进行匹配,而不仅仅是进程名

如需更复杂的进程过滤,可以考虑结合 awkperl 等工具使用。