Linux——xargs命令学习
有时候我们会遇到需要将指定命令返回结果进行处理的情况
这种情况下,可能就需要写for循环之类的脚本进行处理了(目前我只能想到这种方法)
但是想起来还有一个xargs命令,组合这个命令就比较省事了。
场景如下:
安装Redis执行make test时,报Redis已在运行导致冲突。ps -ef查看Redis,发现还真的有十来个redis进程再跑。那就只能把其全部关闭了。一个一个kill不现实,于是研究了一下xargs命令来实现。以下是我的做法
1.首先我们需要获取到所有redis进程信息
ps -ef|grep redis |grep -v grep>/root/redispid.txt
[root@bogon ~]# cat redispid.txt
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
root : pts/ :: src/redis-server 127.0.0.1:
2.获取pid列
[root@bogon ~]# awk '{print $2}' redispid.txt
3.执行kill动作。可以看到,直接kill掉了
[root@bogon ~]# awk '{print $2}' redispid.txt |xargs kill -
[root@bogon ~]# ps -ef|grep redis
root : pts/ :: grep --color=auto redis
[root@bogon ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /systemd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /zabbix_server
tcp6 ::: :::* LISTEN /mysqld
tcp6 ::: :::* LISTEN /systemd
tcp6 ::: :::* LISTEN /docker-proxy
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master
tcp6 ::: :::* LISTEN /zabbix_server
[root@bogon ~]#
4.简单解释一下xargs命令
格式如下:command |xargs command 第一个command是正常命令,获取到管道后需要用到的命令参数,第二个command是个不完成的命令,第二个命令的参数是第一个命令返回的结果。而xargs则是把管道前的参数传到管道后,同时把参数里包含的换行和空白全部替换为空格。所以才会出现文本里的多行pid被顺利kill掉。整个命令就相当于kill -9 69984 69992 69994 69998 70001 70006 70009 70013 70015 70016 70017 70030 70875 70877 70894 70900 70954 71190 71211 71221 71448 71468 71843 71928 73476
Linux——xargs命令学习的更多相关文章
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)
紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令 简介 ...
- Linux常用命令学习
1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...
- linux xargs 命令详解
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...
- 【Linux】命令学习笔记和总结
莫名的想学习一下Linux了,因为对这方面的知识储备为0.对于命令行界面始终是零接触零了解,对一个程序员来说这几乎是致命的,所以简单了解一下. 一.教程参考 参考菜鸟教程即可: Linux 教程 | ...
- 五个知识体系之-Linux常用命令学习
1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...
- Linux常用命令学习随笔
1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...
- [转]Linux常用命令学习
转自 https://www.cnblogs.com/gaojun/p/3359355.html 1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文 ...
- Linux xargs 命令
xargs xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可 ...
随机推荐
- sql中多条件进行排序的问题
order by后边的字段并不是唯一的,支持多个,按照你排序的先后顺序写就可以了.另外按照每个字段的升序和降序同样支持.默认是升序的.如下order by column1(asc or desc),c ...
- 项目Beta冲刺 用户试用报告
课程: 软件工程1916|W(福州大学) 作业要求: 项目Beta冲刺 团队名称: 火鸡堂 作业目标: 火鸡堂 队员学号 队员姓名 博客地址 备注 221600111 彼术向 http://www.c ...
- BlocksKit block从配角到主角—oc通往函数式编程之路--oc rx化?
BlocksKit 对 oc语言的功能层.UI层进行了大量的适配,使得oc能够复合函数式编程的风格: 是oc语言的函数式编程风格改造: 将函数式风格的BlocksKit API解释为原生的功能调用: ...
- hdu3974-Assign the task-(dfs+线段树)
题意:有n个人,有上下级关系,有m个操作,有两种操作1.把一个任务分给某个人,他的下属也会停下手中工作和他一起做:2.查询某个人的当前任务是什么? 解题:n-1个关系,总有一个人没有上级,以他为根节点 ...
- Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException 拒绝访问 / 出现了内部错误 c# – 当使用X509Certificate2加载p12/pfx文件时出现
环境:iis/netcore 2.2 初始调用:X509Certificate2 certificate = new X509Certificate2(input.Path, CER_PASSWORD ...
- js 队列
js 中的异步队列(micro & macro) js都是靠事件驱动的, js中的事件循环机制是什么呢? 只是简单写一下自己的理解, 所以不是很全面; js 程序执行有 主队列 以及 异步队列 ...
- python字符串转整形异常
python字符串转整形异常 问题 在使用int("xx")转化字符串为整形时,如果字符串是float形式,这样转化会异常 int('3.0') Traceback (most r ...
- 【Gamma】Scrum Meeting 1
目录 写在前面 gamma阶段角色更换 进度情况 任务进度表 Gamma阶段燃尽图 遇到的困难 照片 代码Commit记录 后端 前端 写在前面 例会时间:5.25 22:30-23:00 例会地点: ...
- mvn常见参数命令讲解
关于-N -N,--non-recursive Do not recurse into sub-projects 意思是,不递归到子项目(子模块). 举例: 一个父项目下Father面有3个子项目A. ...
- C++内联函数(C++ inline)详解
使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销. 函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还 ...