grep 是查找含有指定文本行
grep -v 是取反,比如 grep -v grep 就是查找 不含有 grep 內容的行,簡單來說,就是過濾輸入的 grep 命令
Demo:
ps -aux | grep seemmo_server.py 就是查找運行的進程記錄
ps -aux | grep seemmo_server.py | grep -v grep 就把自己過濾掉掉
進階
ps aux | grep seemmo_server.py | grep -v grep | awk '{print $2}' | xargs kill -9
xargs 包含需強制殺死的pid,而 ps aux | grep seemmo_server.py | grep -v grep | awk '{print $2}' 的效果需要說明Linux的一個原理
管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入
解析如下:
1、ps aux 顯示所有的進程
2、ps aux | grep seemmo_server.py 作用是把包括 seemmo_server.py 這個關鍵字的進程都顯示出來
3、如上圖中所示 ps aux | grep seemmo_server.py 會把 grep seemmo_server.py 的進程也統計進來,因此用 ps aux | grep seemmo_server.py | grep -v grep去除grep進程
4、然后,只包含 seemmo_server.py 關鍵字的進程篩選結果作為輸入給 awk '{print $2}',這個部分的作用是提取輸入的第二列,而第二列正是進程的PID
5、最后將 PID 交給 xargs,進行強制殺死
嗯