如何找到所有正在运行的进程的列表,并使用正则表达式对命令列进行过滤。
ps aux
是我用来获取所有正在运行的进程的列表的工具,但我只需要在该命令列上过滤名称中包含“pentaho”的任何进程。正则表达式可能如下所示:
(?i).*pentaho.*
(不区分大小写)
答案1
大多数 Linux 和 Unix 安装都有一个pgrep
以此命名的命令。命令名称p
中的 是process
.检查手册页以确保pgrep
支持您要使用的特定正则表达式。该-f
选项(匹配full command line
而不只是进程名称)通常很有用。
有一个名为 的伴随命令,pkill
因为您搜索进程的原因通常是因为您想向其中之一发送信号。 pkill
这样做,并且有额外的选项来指定您想要发送的信号 - 很像常规kill
命令。
答案2
您可以使用 ps aux 命令和 grep 命令来根据正则表达式过滤输出。
ps aux | grep -i ".*pentaho.*"