使用带有ps -ax的grep一次性杀死大量应用程序(Mac)

时间:2013-06-06 21:21:53

标签: bash shell unix grep kill

我是shell脚本的新手。我最近介绍了使用grep使用bash的教程。

大约5分钟前,由于我的浏览器似乎已经崩溃,因此实际应用了此功能。我想,为了练习,使用shell来查找进程,然后将其杀死。

我输入了ps -ax | grep Chrome

但左边出现了很多行数(这些是“工号”还是“流程数”?)

有没有办法杀死Chrome存在于流程名称中的所有“工作”?而不是单独杀死每一个?

3 个答案:

答案 0 :(得分:4)

我不建议使用killall。 你最初不应该使用-9

我推荐一个简单的pkill

pkill Chrome

答案 1 :(得分:2)

你可以使用killall:

killall Chrome

编辑:删除“-9”,因为它应该用作最后一个资源(是:killall -9 Chrome)。

答案 2 :(得分:2)

我更喜欢我的解决方案。因为它添加了一种通配符。我这样做了:

mkdir ~/.bin

echo "ps -ef | grep -i $1 | grep -v grep | awk '{print $2}' | xargs kill -9" > ~/.bin/k

echo "alias k='/Users/YOUR_USER_HERE/.bin/k $1'" >> ~/.profile

chmod +x ~/.bin/k

现在要杀掉你输入的内容:

k Chrome

k chrome

k chr

小心系统进程或不要被杀死的进程。

就像你有计算器正在运行而另一个叫Tabulator也正在运行。如果您输入
k ulator它会杀死两者。

还要记住,这会在命令k之后杀死与变量匹配的程序的所有实例。

因此,您可以在配置文件中创建两个别名,并在.bin中创建两个文件,一个使用命令grep -i,另一个不使用它。没有-i标志的那个将是大小写和名称敏感的。