kill命令可以说是我们经常使用的一个命令,但是比如我们要关闭多个叫“Google Chrome”的进程的时候,就要小小折腾一下了,下面介绍几种办法,最优直接跳到方法四
方法一
1
ps -ef|grep 'Google Chrome'
根据结果,将pid一个个取出,使用
kill -9 pid1 pid2 pid3…
去逐个删除方法二
1
ps -ef | grep 'Google Chrome' | grep -v grep | awk '{print $2}' | xargs kill -9
解释如下:
ps -ef
用于获取当前系统所有进程,如上图所示。
grep 'Google Chrome'
过滤出与“Google Chrome”字符相关的数据(以行为单位)。
grep -v grep
的作用是除去本次操作所造成的影响,-v 表示反向选择。
awk '{print $2}'
表示筛选出我们所关注的进程号,$2 表示每行第二个变量,在这个例子中就是进程号。所以如果你使用ps工具不一样,或者ps带的参数不一样,那需要关注的就可能不是$2,可能是$1 。
xargs kill -9
中的xargs
命令表示用前面命令的输出结果(也就是一系列的进程号)作为kill -9
命令的参数,-9 表示强制终止,不是必须的。方法三
1
killall Google Chrome
好了前三种方法介绍完了,容我吐槽一波
- 相信你的也看到了Google Chrome前后要加单引号,没办法,我也很无奈
- Linux是大小写敏感的,如果你需要查找的是google chrome,那么不好意思,用Google Chrome是查不到的,因为g≠G & c≠C,所以不能忽略大小写
- 方法2虽然相对优秀,but,这命令也太长太秀了,臣妾做不到啊
方法四
1
2
3
4
5安装pidof
brew install pidof
查看pidof使用
man pidof安装完毕后,执行如下命令
1
2
3
4
5pidof <process name>
pidof google chrome
pidof -l <process name> 能列出更多信息
pidof -l google chromeTerminal会列出所有包含”google chrome“(忽略大小写)的pid,结果如下:
啊~
啊~
啊~
要批量杀进程?
1 | kill -9 $(pidof google chrome) |
其实就是方法一的变种版,方法二的封装版,但是使用上更加简洁方便,推荐哦~