grep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
创新互联公司服务项目包括饶阳网站建设、饶阳网站制作、饶阳网页制作以及饶阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,饶阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到饶阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
ps -eo pid,cmd | awk '{print $1,$2}' | grep KeyWord
选项 | 说明 |
---|---|
-d | 定义多个进程之间的分隔符, 如果不定义则使用换行符。 |
-P | 根据父进程PID,找出所有字进程的pid |
-n | 表示如果该程序有多个进程正在运行,则仅查找最新的,即最后启动的。 |
-o | 表示如果该程序有多个进程正在运行,则仅查找最老的,即最先启动的(多个进程时即父进程PID)。 |
-G | 其后跟着一组group id,该命令在搜索时,仅考虑group列表中的进程。 |
-u | 其后跟着一组有效用户ID(effetive user id),该命令在搜索时,仅考虑该effective user列表中的进程。 |
-U | 其后跟着一组实际用户ID(real user id),该命令在搜索时,仅考虑该real user列表中的进程。 |
-x | 表示进程的名字必须完全匹配, 以上的选项均可以部分匹配。 |
-l | 将不仅打印pid,也打印进程名。 |
-f | 一般与-l合用, 将打印进程的参数。 |
显示详细信息
默认只显示PID
root@361way:~# pgrep zabbix
2380
2381
2382
2383
2384
2385
-l 同时显示PID和ProcessName
root@361way:~# pgrep -l zabbix
2380 zabbix_agentd
2381 zabbix_agentd
2382 zabbix_agentd
2383 zabbix_agentd
2384 zabbix_agentd
2385 zabbix_agentd
-o 当匹配多个进程时,显示进程号最小的那个
root@361way:~# pgrep -l -o zabbix
2380 zabbix_agentd
-n 当匹配多个进程时,显示进程号最大的那个
root@361way:~# pgrep -l -n zabbix
2385 zabbix_agentd
这里需要特别指出的是pgrep默认只能匹配进程的前15个字符串,个体可以参看ubuntu问答上的说明,如下:
ps aux includes the full command line (path and parameters),
while pgrep only looks at the first 15 characters of the executable's names
使用pgrep -f 可以进行进程全字符匹配,示例如下:
//使用ps命令可以正常grep到进程
root@361way:~# ps auxf|grep druid
root 25713 0.0 0.0 8108 940 pts/0 S+ 06:08 0:00 _ grep --color=auto druid
dev 7438 1.3 11.5 5524888 884988 ? Sl Jun16 672:54 java -server -Xmx4g -XX:MaxNewSize=1g -XX:+UseCompressedOops -XX:+UseParNewGC -Duser.timezone=UTC -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Djava.io.tmpdir=/data/tmpdata/java.io.tmpdata -Xloggc:/data/tmpdata/java.io.tmpdata/coordinator-gc.log -classpath lib/*:config/coordinator io.druid.cli.Main server coordinator
//pgrep的匹配结果为空
root@361way:~# pgrep druid
//加上-f参数后,正常得到进程pid
root@361way:~# pgrep -f druid
7438
root@361way:~# pgrep -f -l druid
7438 java -server -Xmx4g -XX:MaxNewSize=1g -XX:+UseCompressedOops -XX:+UseParNewGC -Duser.timezone=UTC -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Djava.io.tmpdir=/data/tmpdata/java.io.tmpdata -Xloggc:/data/tmpdata/java.io.tmpdata/coordinator-gc.log -classpath lib/*:config/coordinator io.druid.cli.Main server coordinator
使用 -P 参数可以输出指定父进程的子进程,如:
root@361way:~# pgrep -P 2380
2381
2382
2383
2384
2385
相关命令pkill ,用法基本和pgrep一致。
本文名称:Linux下使用grep命令进行匹配
文章转载:http://www.shufengxianlan.com/qtweb/news18/92568.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联