去公司面试的时候关于Linux命令一般会问这个问题:
批量杀死包含php的所有进程。。。。。。
一开始我是不会的,只知道ps找出来进程。后来知道了可以用grep过滤出包含Php的进程,后来又知道了用kill -9 可以杀死,后来又知道了用xargs 可以进行参数代换,所以记录一下。
1
|
ps -aux | grep "php" | grep - v grep | cut -c 9-15 | xargs kill -9
|
分成5段,利用管道命令传递。
第一段是列出所有的进程;
第二段是过滤出包含关键字php的进程;
第三段是过滤吊grep命令;因为你执行grep过滤命令是本身也是包含php关键字的。
第四段其实就是找出包含关键字php的进程的pid,找到了pid我们才好杀死他;这里除了cut,还可以用
1
|
ps -aux | grep "php" | grep - v grep | awk '{$2}' | xargs kill -9
|
awk 过滤出pid,因为pid是第二个字段。
第五段就是用xargs 将前面的命令结果即pid传递给kill命令。
第二个面试点:找出文件内容包含某个关键字的所有文件
1
|
grep -rn "php" .
|
下面应该也可以
1
|
find - type f -name "*.php" | xargs grep "php"
|
记录一下。百度面试,好未来面试问到了这个命令。
本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1956711