我对 shell 脚本很陌生。我最近介绍了一个使用 bash 和 grep 的教程。
大约 5 分钟前,当我的浏览器似乎崩溃时,这个功能的实际应用程序发生了。为了练习,我想使用 shell 查找进程然后将其终止。
我打了ps -ax | grep Chrome
但是出现了很多行,左边有很多数字(这些是“工作编号”还是“流程编号”?)
有没有办法杀死 Chrome 以进程名称存在的所有“工作”?而不是单独杀死每个人?
我不建议使用killall
. 你不应该-9
一开始使用。
我推荐一个简单的pkill
:
pkill Chrome
你可以使用killall:
killall Chrome
编辑:删除“-9”,因为它应该用作最后一个资源(原为:killall -9 Chrome)。
我更喜欢我的解决方案。因为向它添加了一种通配符。我这样做了:
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 标志的将区分大小写和名称。