linux 中批量殺死包含某個關鍵字的進程
阿新 • • 發佈:2017-08-16
linux命令
去公司面試的時候關於Linux命令一般會問這個問題:
批量殺死包含php的所有進程。。。。。。
一開始我是不會的,只知道ps找出來進程。後來知道了可以用grep過濾出包含Php的進程,後來又知道了用kill -9 可以殺死,後來又知道了用xargs 可以進行參數代換,所以記錄一下。
ps -aux | grep "php" | grep -v grep | cut -c 9-15 | xargs kill -9
分成5段,利用管道命令傳遞。
第一段是列出所有的進程;
第二段是過濾出包含關鍵字php的進程;
第三段是過濾吊grep命令;因為你執行grep過濾命令是本身也是包含php關鍵字的。
第四段其實就是找出包含關鍵字php的進程的pid,找到了pid我們才好殺死他;這裏除了cut,還可以用
ps -aux | grep "php" | grep -v grep | awk ‘{$2}‘ | xargs kill -9
awk 過濾出pid,因為pid是第二個字段。
第五段就是用xargs 將前面的命令結果即pid傳遞給kill命令。
第二個面試點:找出文件內容包含某個關鍵字的所有文件
grep -rn "php" .
下面應該也可以
find -type f -name "*.php" | xargs grep "php"
記錄一下。百度面試,好未來面試問到了這個命令。
linux 中批量殺死包含某個關鍵字的進程