一行指令砍process

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

一行指令砍process

文章lueo » 週三 12月 08, 2004 12:00 am

比如說我有三個xmms同時在跑
我如果下了 ps aux |grep xmms 會跑出三個xmms來,可是如果我要全部砍掉的話,要kill 三次,還要自己key數字。

請問有什麼方法,可以一個指令把這些grep出來的指令全部砍掉嗎?

比如說 for aa in [grep 出來的數字] do kill $aa; done之類的
lueo
懵懂的國中生
懵懂的國中生
 
文章: 121
註冊時間: 週六 1月 31, 2004 11:52 pm

re:一行指令砍process

文章moto » 週三 12月 08, 2004 12:27 am

嗨 lueo,

可以試試看:
代碼: 選擇全部
killall xmms


;-)
歡迎你來到MOTO學園一起討論Debian相關問題。
在post問題前可先別忘記了以下的步驟:
1:翻一下/usr/share/doc/中是否已經有解答了?
2:閱讀一下無痛起步是否已經提到了?
3:找一下google予以解答?
4:善用學園中的"搜尋"功能,往往答案就在裡面窩。
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北

Re: re:一行指令砍process

文章lueo » 週三 12月 08, 2004 12:35 am

moto 寫:killall xmms

呃啊 沒想到有這麼簡單…
lueo
懵懂的國中生
懵懂的國中生
 
文章: 121
註冊時間: 週六 1月 31, 2004 11:52 pm

re:一行指令砍process

文章訪客 » 週四 12月 09, 2004 5:40 pm

我找到了
代碼: 選擇全部
kill "ps ax|grep xmms|grep -v grep|awk '{print $1}'"

可是如果它送出來的是好幾個數字,不知是否可以用for引入。
kill 是可以接收兩個以上的數字,但是換成其它程序也許就不行了。
訪客
 

文章d2207197 » 週四 12月 09, 2004 5:56 pm

樓上訪客兄的說的命令有些錯誤喔
命令輸出替換應該是用 `` 或 $() 框起來才對,不能用 ""
應該是這樣子
代碼: 選擇全部
kill `ps ax|grep xmms|grep -v grep|awk '{print $1}'`

或這樣子
代碼: 選擇全部
kill $(ps ax|grep xmms|grep -v grep|awk '{print $1}')

才對

至於遇到那種一次只能接收一個參數的(像是 tar),可以改用 xargs,或是用 for 寫。
代碼: 選擇全部
ls *.tar.gz | xargs -n1 tar zxvf

代碼: 選擇全部
for i in *.tar.gz ; do tar zxvf $i ; done

也可以用 find
代碼: 選擇全部
 find . -maxdepth 1 -name '*.tar.gz' -exec tar zxvf {} \;
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客