![在一行中杀死一个进程](https://linux22.com/image/7194/%E5%9C%A8%E4%B8%80%E8%A1%8C%E4%B8%AD%E6%9D%80%E6%AD%BB%E4%B8%80%E4%B8%AA%E8%BF%9B%E7%A8%8B.png)
有时我需要通过终端快速结束一个进程,但只是输入ps -e | grep firefox
然后一直终止是很乏味的。我想alias
在我的 .bashrc 中创建一个,然后输入killfirefox
我猜这会这么做,但我并不真正理解一切。
所以我了解到要么ps -e | grep firefox | sudo awk '{print $1}'
要么pgrep firefox
会返回我需要杀死进程的 firefox pid。我认为这可以完成这项工作:
pgrep firefox | sudo awk '{kill $1}'
但它不起作用。它什么也没说,Firefox 仍在运行。然后我尝试了pgrep firefox | sudo awk '{system(sudo kill $1)}'
,但它返回“sh:1:27762:未找到”。
为什么我的方法不起作用?怎么了?
答案1
为了让你的方法有效,你必须修复 awk 语法并使用系统函数在 awk 中执行命令:
pgrep firefox | awk '{system("kill "$1)}'
然后你就拥有了自己制作的(重新发明的轮子)等价物:
pkill firefox
正如您的问题评论中所指出的。
答案2
对于像 Firefox 这样的应用程序,我只使用killall firefox
.
答案3
你可以尝试创建这个的别名吗
ps -U 根 -u 根 | grep "$2" | | grep "$2" | sudo awk '{system("sudo Kill"$2)}'