搜索关键字杀一组进程
2016-12-27 20:04
225 查看
有时候,系统里运行了一堆进程需要清理一下。
普通青年的杀法是ps aux | grep 关键字, 找到了之后,再用kill命令一个一个地杀。
这样做的效率太低了,于是在网上搜到了各种办法。各有千秋,还真挺好玩的。
|是管道,把管道左边的结果传给右边的命令
首先还是传统的grep ps的结果。但是这其中就有ps grep本身,所以要通过grep -v grep把带grep命令本身的过滤掉。
经过这两步,打印出来的是这样的格式:
命令是:
输出结果为:
接着cut命令出场,切出来第9字符到第15字符的结果,刚好是进程号这部分:
最后,将这些进程号,通过xargs传给kill -9去杀掉。
这个方法简单粗暴,不过有点过于精确了。比如在macOS上就不灵了,因为格式不同。在我的macBookPro上,打出来的格式是这样的:
要是还按9-15切,就乱套了。
这个方法,终于在Linux和mac上都OK了。
终于不用数cut哪几列,也不用知道awk的命令是什么鬼了。
是的,用不着了,pgrep有个马甲叫pkill,搜到了直接杀。
普通青年的杀法是ps aux | grep 关键字, 找到了之后,再用kill命令一个一个地杀。
这样做的效率太低了,于是在网上搜到了各种办法。各有千秋,还真挺好玩的。
cut大法
ps -ef|grep 关键字|grep -v grep|cut -c 9-15|xargs kill -9
|是管道,把管道左边的结果传给右边的命令
首先还是传统的grep ps的结果。但是这其中就有ps grep本身,所以要通过grep -v grep把带grep命令本身的过滤掉。
经过这两步,打印出来的是这样的格式:
命令是:
ps -ef|grep distcc|grep -v grep
输出结果为:
distccd 8410 20190 0 18:13 ? 00:00:00 /usr/local/bin/distccd --pid-file=/tmp/distccd.pid --log-file=/tmp/distccd.log --daemon --allow 10.0.0.0/8 --allow 100.0.0.0/8 --nice 10 distccd 8685 20190 0 18:13 ? 00:00:00 /usr/local/bin/distccd --pid-file=/tmp/distccd.pid --log-file=/tmp/distccd.log --daemon --allow 10.0.0.0/8 --allow 100.0.0.0/8 --nice 10 distccd 10103 20190 0 18:13 ? 00:00:00 /usr/local/bin/distccd --pid-file=/tmp/distccd.pid --log-file=/tmp/distccd.log --daemon --allow 10.0.0.0/8 --allow 100.0.0.0/8 --nice 10 distccd 10588 20190 0 18:14 ? 00:00:00 /usr/local/bin/distccd --pid-file=/tmp/distccd.pid --log-file=/tmp/distccd.log --daemon --allow 10.0.0.0/8 --allow 100.0.0.0/8 --nice 10 distccd 11139 20190 0 18:14 ? 00:00:00 /usr/local/bin/distccd --pid-file=/tmp/distccd.pid --log-file=/tmp/distccd.log --daemon --allow 10.0.0.0/8 --allow 100.0.0.0/8 --nice 10
接着cut命令出场,切出来第9字符到第15字符的结果,刚好是进程号这部分:
8410 8685 10103 10588 11139
最后,将这些进程号,通过xargs传给kill -9去杀掉。
这个方法简单粗暴,不过有点过于精确了。比如在macOS上就不灵了,因为格式不同。在我的macBookPro上,打出来的格式是这样的:
501 12652 949 0 6:32下午 ttys003 0:00.00 -bash 501 12691 949 0 6:33下午 ttys003 0:00.00 -bash 501 12765 949 0 6:34下午 ttys003 0:00.00 -bash 501 95552 949 0 五06下午 ttys003 0:00.00 -bash
要是还按9-15切,就乱套了。
awk大法
通过具体的列来切,适应性是差了点。我们有什么办法能按分隔符来取呢? 我们可以借助awk工具,awk ‘{print 1}'是打印第一列,awk '{print2}’是第二列。ps aux|grep 关键字 |grep -v grep |awk '{print $2}'|xargs kill -9
这个方法,终于在Linux和mac上都OK了。
pgrep大法
做为杀进程这么常用的功能,怎么还需要劳烦cut和awk呢,系统已经提供了pgrep命令,专搜进程号。pgrep 关键字 | xargs kill -9
终于不用数cut哪几列,也不用知道awk的命令是什么鬼了。
pkill
不过,慢着,既然都有pgrep了,还需要麻烦xargs吗?是的,用不着了,pgrep有个马甲叫pkill,搜到了直接杀。
pkill 关键字
pkill和killall的区别
killall可以将同名进程都杀掉,比如开了n个adb,用killall adb就杀了。但是killall需要的是全名,而pkill只要部分名字就可以了,比如用pkill ad,一样将所有adb都杀光。相关文章推荐
- 搜索关键字杀一组进程
- Memcache实现搜索关键字
- Android 搜索结果匹配关键字且高亮显示功能
- 【陈希章】 http://www.xizhang.com 多文件下载、jquery、ashx调用静态方法、搜索关键字高亮显示、Background-position的妙用
- C++ 按关键字搜索文件夹中的文件 & 全盘符搜索文件
- 仿微信查找聊天记录自动搜索关键字
- js+正文规则 高亮搜索关键字(二)
- Linux文件夹下利用Bash脚本搜索指定关键字文件
- Java微博搜索关键字采集
- android 搜索自动匹配关键字并设置器颜色
- exit()函数与_exit()函数及return关键字的区别: exit()和_exit()函数都可以用于结束进程,不过_exit()调用之后会立即进入内核,而exit()函数会先执行一些清理
- Linux 如何在 vi 里搜索关键字
- (10)根据关键字搜索
- 使用google进行关键字搜索的域名采集。
- Vim搜索关键字
- 搜索关键字记录
- 实现支持逻辑搜索/单词搜索/词组搜索+支持OR/AND关键字的VBS CLASS!
- 多关键字模糊搜索的一点想法(待续)
- easyui 可搜索关键字的comboxgrid
- asp.net关键字模糊查询(类似于各大网站搜索功能)