在一行中杀死一个进程

在一行中杀死一个进程

有时我需要通过终端快速结束一个进程,但只是输入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)}'

相关内容