通过命令行在Linux中查找进程计数

Tra*_*ker 25 linux command-line process count

我一直在寻找通过Linux命令行查找具有相同名称的正在运行的进程数的最佳方法.例如,如果我想找到运行的bash进程数并获得"5".目前我有一个脚本执行'pidof',然后计算标记化的字符串.这工作正常但我想知道是否有更好的方法可以完全通过命令行完成.在此先感谢您的帮助.

Dav*_*d Z 55

在具有pgrep可用的系统上,该-c选项返回与给定名称匹配的进程数的计数

pgrep -c command_name
Run Code Online (Sandbox Code Playgroud)

请注意,这是一种grep匹配,而不是完全匹配,因此例如pgrep sh也会匹配bash进程.如果您想要完全匹配,也可以使用该-x选项.

如果pgrep没有,您可以使用pswc.

ps -C command_name --no-headers | wc -l
Run Code Online (Sandbox Code Playgroud)

-C给的选项ps需要command_name作为参数,该程序将打印信息表,谁的可执行文件名给定的命令名称相匹配的过程.这是完全匹配,而非grep风格.该--no-headers选项禁止表格的标题,通常作为第一行打印.有了--no-headers,每个进程匹配一行.然后wc -l计算并打印输入中的行数.


Ama*_*9MF 11

result=`ps -Al | grep command-name | wc -l`
echo $result
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以试试 :

ps -ef | grep -cw [p] rocess_name

要么

ps aux | grep -cw [p] rocess_name

例如:

ps -ef | grep -cw [i] nit