0

我对 shell 脚本很陌生。我最近介绍了一个使用 bash 和 grep 的教程。

大约 5 分钟前,当我的浏览器似乎崩溃时,这个功能的实际应用程序发生了。为了练习,我想使用 shell 查找进程然后将其终止。

我打了ps -ax | grep Chrome

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

有没有办法杀死 Chrome 以进程名称存在的所有“工作”?而不是单独杀死每个人?

4

3 回答 3

4

我不建议使用killall. 你不应该-9一开始使用。

我推荐一个简单的pkill

pkill Chrome
于 2013-06-06T21:27:54.543 回答
2

你可以使用killall:

killall Chrome

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

于 2013-06-06T21:25:26.397 回答
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

请注意系统进程或不要被杀死进程。

就像您正在运行 Calculator 并且另一个名为 Tabulator 的也在运行。如果你输入
k ulator它会杀死他们。

还要记住,这将杀死与 command 之后的变量匹配的程序的所有实例k

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

于 2013-09-25T02:40:46.467 回答