有时候我们会遇到需要将指定命令返回结果进行处理的情况

这种情况下,可能就需要写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命令学习的更多相关文章

  1. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  2. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  3. Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  4. linux xargs 命令详解

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...

  5. 【Linux】命令学习笔记和总结

    莫名的想学习一下Linux了,因为对这方面的知识储备为0.对于命令行界面始终是零接触零了解,对一个程序员来说这几乎是致命的,所以简单了解一下. 一.教程参考 参考菜鸟教程即可: Linux 教程 | ...

  6. 五个知识体系之-Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  7. Linux常用命令学习随笔

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  8. [转]Linux常用命令学习

    转自 https://www.cnblogs.com/gaojun/p/3359355.html 1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文 ...

  9. Linux xargs 命令

    xargs xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可 ...

随机推荐

  1. Linux下能访问Nginx,本地无法访问

    在虚拟机的Linux上安装好Nginx后,启动Nginx服务,在Linux环境下,输入ip直接可以访问到Nginx的欢迎界面,而在电脑本地访问不到界面,出现错误. 显示:你的网络出现问题或代理服务器问 ...

  2. python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  3. SpringBoot配置ThreadPoolTaskExecutor

    package com.example.demo; import org.springframework.context.annotation.Bean; import org.springframe ...

  4. v-for给img的src动态赋值问题

    做一个轮播图,给img赋值src <el-carousel-item v-for="(item, index) in carouselImgs" :key="ind ...

  5. materialize 读取单选按钮

    $('input[name='xxx']:checked')

  6. 3.深入学习Servlet的Response和Request

    一.HttpServletResponse web服务器接受到客户端的HTTP请求,对于这个请求分别创建一个代表请求的对象HttpServletRequest和一个代表响应的对象HttpServlet ...

  7. Vuejs发送Ajax请求

    一.概况 ①vuejs中没有内置任何ajax请求方法 ②在vue1.0版本,使用的插件 vue resource 来发送请求,支持promise ③在vue2.0版本,使用社区的一个第三方库 axio ...

  8. 细说PHP-fpm

    在理解php-fpm之前,我们要先搞清楚几个关键词以及他们之间的关系:CGI FastCGI:(Fast Common Gateway Interface),即快速通用网关接口,是一种让交互程序与We ...

  9. Python逆向(二)—— pyc文件结构分析

    一.前言 上一节我们知道了pyc文件是python在编译过程中出现的主要中间过程文件.pyc文件是二进制的,可以由python虚拟机直接执行的程序.分析pyc文件的文件结构对于实现python编译与反 ...

  10. SpringMVC效验器

    效验器: 1. 效验器依赖 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> &l ...