[Linux]Linux命令行下 一条命令杀死一个进程

1.答案

ps -ef | grep java | grep -v grep |awk '{print $2}'| xargs kill -9
指令意义
ps -ef指令用来查询所有进程
grep java通过管道来过滤指定名字中含有 java 进程
grep -v反向查询,即过滤出不包含 -v 参数后指定字符的信息
awk在这里的作用是取出进程id
xargs接收awk分割后的输出作为kill -9 的参数

2.分析

有很多人同学可能不理解为什么需要grep -v grep,这条指令的意思是什么呢?
我们一步一步来
当我们直接执行以下代码时

ps -ef | grep java

除了我们的目标进程还有另外一个进程
在这里插入图片描述
第一个是目标进程,第二个是什么进程呢?
其实,执行grep这条指令时,该命令本身执行的时候也是一个进程,并也带有 java 关键字,所以其会出现在最后输出的进程信息里
所以我们需要grep -v 过滤掉包含grep信息的进程
过滤掉后就只剩目标进程了
然后通过以下命令取出进程idawk默认是通过空格分割,$1 $2代表的是分割后的结果

awk '{print $2}'

我们取第二个 也就是进程id 所以是$2
最后通过xargs传递给kill -9杀掉目标进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值