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 也可 ...
随机推荐
- live555 基本框架
(转) 从程序的结构来看,live项目包括了四个基本库.程序入口类(在mediaServer中)和一些测试代码(在testProgs中).四个基本库是UsageEnvironment,BasicUsa ...
- python应用-综合应用题解决
题目: A,B,C,D,E五个人捕鱼,不计其数,然后休息, 早上A第一个醒来,将鱼均分成五份,把多余的一条鱼扔掉,拿走自己的一份, B第二个醒来,也将鱼均分为五份,把多余的一条鱼扔掉,拿走自己的一份. ...
- ASP.NET 内容管理系统CMS
一.Umbraco 项目地址: http://umbraco.org/ Umbraco是一个开放源码的CMS内容管理系统,基于asp.net建立,使用mssql进行存储数据. 使用Umbraco ,设 ...
- pm2日志管理插件
pm2的日志模块默认是每一个服务进程都分配两个默认的日志文件 普通日志 错误日志 这两个日志文件存放于/root/.pm2/logs中,如果pm2管理5个服务,那么该文件夹下总共有10个日志文件,并且 ...
- git更换仓库,保留分支,保留提交记录及开发权限
别人推荐的方法都很复杂,这个步骤自己亲自尝试过,非常简单好用. 1.从原地址克隆一份裸版本库,比如原本托管于 GitHub. git clone --bare https://github....(原 ...
- django-评论
视图函数views.py # 订单评论 class OrderCommentView(View): def get(self, request, order_id): # 获取用户信息 user = ...
- iOS应用代码注入防护
在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能.代码健壮相关的问题,我们有时还需要考虑到应用安全的问题.那么应用安全的问题涉及到很多方面.比如防止静态分析的,代码混淆.逻辑混淆:防止 ...
- MyBatis智能标签!
if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ...
- MVC框架模式和Javaweb经典三层架构
一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(Vie ...
- kali linux 局域网攻击(一)
一.攻击准备 此为局域网攻击测试 1)查看自己的IP地址,记住默认网关 2)扫描局域网中的IP fping -asg nbtscan -r 网关地址/ 3)使用arpspoof进行断网攻击 攻击前, ...