1. 程式人生 > >linux 中批量殺死包含某個關鍵字的進程

linux 中批量殺死包含某個關鍵字的進程

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 中批量殺死包含某個關鍵字的進程