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 也可 ...
随机推荐
- 33、安装MySQL
一.Windows安装MySQL 1.下载 打开网址,页面如下,确认好要下载的操作系统,点击Download. 可以不用登陆或者注册,直接点击No thanks,just start my downl ...
- java语言评价--java帝国
“陛下您想想,我们有很多宝贝,” IO大臣根本不理线程大臣, 继续侃侃而谈:“ 比如IoC, AOP,反射.动态代理.泛型.注解.JDBC.JMS...... 还有我们引以为豪的JVM.这些东西,那些 ...
- 使用 ML.NET 对 K-Means 平均值聚类分析和分类
数据集 :https://en.wikipedia.org/wiki/Iris_flower_data_set 聚类分析 非监管式机器学习任务,用于将数据实例分组到包含类似特性的群集. 聚类分析还可用 ...
- Flutter之网络请求
Flutter之网络请求 一,介绍与需求 1.1,介绍 1,http一个可组合的,基于Future的库,用于发出HTTP请求.包含一组高级功能和类,可轻松使用HTTP资源.它与平台无关,可以在命令行和 ...
- 在itop4412移植linux4.14和设备树遇到的问题及解决
Linux4.14的设备树下已经对itop4412做了支持,本来应该很容易进行移植,可是在使用讯为给的资料中,对exynos4412-itop-scp-core.dtsi中原本的代码全部进行了注释,并 ...
- AttributeError: module ‘select’ has no attribute 'epoll’
场景:mac 下导入的 ‘select’ 包 import select,然后在 主函数 中创建的 epoll 对象 epl = select.epoll(),运行报错如下 Traceback (mo ...
- starUML
下载地址: https://www.qqxiazai.com/down/10296.html 下载后解压,先运行 绿化.exe 然后右键管理员运行 StarUML.exe 进入后就可以画UML以及时序 ...
- Zabbix实战-简易教程--中间件kafka监控
一.环境准备 1.安装kafka Step 1: 下载代码 你可以登录Apache kafka 官方下载.http://kafka.apache.org/downloads.html备注:2.11-1 ...
- 分布式系统 与 Google
google 论文 http://duanple.com/?p=170 google 论文与开源 http://duanple.com/?p=1096 分布式系统论文集 https://github. ...
- SAS 指定LOG LIST输出
LIBNAME S '.\'; PROC PRINTTO LOG='.\LOG\PRINT_LOG.LOG';RUN; DATA A;SET SASHELP.CLASS (FIRSTOBS=2 OBS ...