Linux下批量杀掉筛选进程

2018-04-27 2009点热度 0人点赞 0条评论

1. 使用awk批量杀进程的命令

碰到需要杀掉某一类进程的时候,如何批量杀掉这些进程,使用awk命令是很好的选择。

ps -ef|grep xxx|grep -v grep|awk  '{print "kill -9 " $2}' |sh

ps -ef|grep xxx|grep -v grep

就是从当前系统运行的进程的进程名中帅选包含xxx关键字的进程

awk 'pattern {action}'

print是打印,kill -9 是强制停止进程的命令, $2就是前面有ps -ef命令得出的结果的第二列上显示的内容
ps -ef|grep xxx|grep -v grep|awk '{print "kill -9 " $2}'
则列出了要kill掉这些进程的命令,并将之打印在了屏幕上,后面加上|sh后,则执行这些命令,进而杀掉了这些进程

2.使用xargs批量杀进程的命令

ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9

awk在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用awk '{print $2}'将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID,进程号) $0表示所有域,$1表示第一个域,$n表示第n个域。
xargs命令是给命令传递参数的过滤器,善于把标准数据数据转换成命令行参数。在这里则是将获取前一个命令的标准输出然后转换成命令行参数传递给后面的kill命令。

王显锋

激情工作,快乐生活!

文章评论