kill -9 `ps -ef|grep cpu|grep -v grep|awk ‘{print $2}‘`命令解析

本文介绍了如何在Linux环境中,通过ps、grep、grep-v和awk命令组合来查找并批量杀死包含特定关键字的进程,如cpu.sh。首先,使用grep过滤出包含'cpu'的进程,再通过grep-v排除grep自身,接着awk提取出第二列(即PID),最后使用kill-9命令一次性杀死所有匹配到的进程。文中还提到了其他进程管理命令如pkill,以及它们在特定情况下的使用。
摘要由CSDN通过智能技术生成

转载:https://blog.csdn.net/u____/article/details/79859503

1、场景

在一个Linux机器上起了很多个cpu.sh的脚本,如下图,想一次性把他们kill掉

2、方法

2.1去除grep cpu

上图中可以看到最后一个pid为22603的进程是grep cpu进程,并非cpu.sh,怎么把它去除呢,通过ps -efw | grep cpu |grep -v grep达到目的

 

为什么能达到这个效果?

我们通过grep --help看

 

 

可以看出

1.grep 是查找含有指定文本行的意思,比如grep cpu 就是查找含有cpu的文本的行

2.grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行

2.2杀进程

使用ps -efw一个一个查看cpu.sh的PID,然后一个一个kill -9 PID或 kill -9 PID1 PID2 PID3

kill -9后面支持多个PID,意思是将这些PID全部kill掉

2.3进阶

kill -9 `ps -ef|grep cpu|grep -v grep|awk '{print $2}'`

kiil -9后面``里面的内容表示参数输入,而ps -ef|grep cpu|grep -v grep|awk '{print $2}'的的效果需要说明Linux的一个原理

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

那么这个命令行的解析如下:

1、ps -ef 显示所有的进程,其中后面的e是显示结果的意思,f是显示完整格式,其他比如-w是不限制列宽显示,具体可见ps --help all

2、ps -ef|grep cpu作用是把包括cpu这个关键字的进程都显示出来

3、如2.1所示,ps -ef|grep cpu会把grep cpu的进程也统计进来,因此用ps -ef|grep cpu|grep -v grep去除grep进程

4、最后,只包含cpu关键字的进程筛选结果作为输入给awk '{print $2}',这个部分的作用是提取输入的第二列,而第二列正是进程的PID

执行效果见下图

 

附录:

本文内容参考了

https://blog.csdn.net/beyondlpf/article/details/8065070

作者还提及了pgrep、pidof、xargs、pkill和killall等命令行,很有意思,尤其是pkill,达到本文档目的用pkill只需要pkill -9 cpu即可,很简洁,但不知道在我的机器上为何没有生效,mark下,后续研究


————————————————
版权声明:本文为CSDN博主「u____」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u____/article/details/79859503

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值