linux巡检命令手册(Linux xargs命令的使用)
linux巡检命令手册
Linux xargs命令的使用1.功能:
xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可能会误判。简单来说,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一。
之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如:
find /sbin -perm +700 |ls -l //这个命令是错误,因为标准输入不能作为ls的参数 find /sbin -perm +700 |xargs ls -l //这样才是正确的
2.命令格式
xargs [选项] [command]
3.选项说明:
-0:如果输入的stdin含有特殊字符,例如反引号`、反斜杠\、空格等字符时,xargs可以将它还原成一般字符。为xargs的默认选项。 -e <flag>,-E <flag>,--eof=<eof-str>:eof是end of file string的意思。flag可以是一个字符串或者是由空格分隔的多个字符串,当xargs分析到这个flag时,就会停止工作。见示例2。 -p:当每次执行一个argument的时候询问一次用户。 -n <num>:表示命令在执行的时候一次使用的argument的个数,由num指定,默认是用所有的参数。 -t:表示先打印命令,然后再执行。 -a <file>:从文件中读入作为sdtin。 -i[replace-str]:告诉xargs可以使用{}代替从标准输入读取的参数,可以指定替代字符串replace-str,如果没有指定,默认为{}。建议使用-I,其符合POSIX标准。 -I [replace-str]:将xargs的输出每一项参数,单独赋值给后面的命令,参数需要用指定的代替字符串replace-str代替,也就是说replace-str不可缺省,必须显示指明,可以使用{} $ @等符号,其主要作用是当xargs command后有多个参数时,调整参数位置。例如:find . -name "*.txt"|xargs -I {} cp {} /tmp/{}.bak。 -r:或者--no-run-if-empty,当xargs的输入为空的时候则停止xargs,不用再去执行后面的命令了,-r是xargs的默认选项。 -s <num>:命令行的最大字符数,指的是xargs后面那个命令的最大命令行字符数,包括命令、空格和换行符。每个参数单独传入xargs后面的命令。见示例4。 -L <line_num>:设置标准输入中最大的行数作为命令每一次执行的参数。见示例5。 -d <delim>, --delimiter=<delim>: xargs处理标准输入默认是按换行符和空格作为分隔符,输出arguments的分隔符是空格,这里修改xargs处理标准输入时的分隔符。 -x:eXit的意思,主要是配合-s使用,当命令行字符数大于-s指定的数值时,退出xargs。 -P:修改最大的进程数,默认是1,为0时候为as many as it can。该选项比较少用,目前还不清楚该用法。
4.用法示例
(1)将shell的特殊字符还原为一般字符。
[b3335@MIC ~]$ echo '`0123`4 56789'|xargs -t echo echo `0123`4 56789 `0123`4 56789
如果直接进行如下操作,会报无法找到命令01234的错误,因为反引号在shell中会将01234作为一个命令来执行,但是01234不是一个命令。-t表示先打印命令,然后再执行。
[b3335@MIC ~]$ echo `01234` 56789 -bash: 01234: command not found 56789
(2)设置xargs读入参数时的结束标识,以逗号结束。这里要注意结束标志必须要是单独的字段,即以空格或者换行符分隔的字段。
[b3335@MIC ~]$ echo 01234 , 56789|xargs -E "," 01234
(3)使用rm、mv等命令同时操作多个文件时,有时会报”argument list too long”参数列表过长的错误,此时可以使用xargs来解决。xargs将标准输入的字符串分隔后,单独作为参数传递给后面的命令。例如,将当前目录的所有文件添加后缀名。
ls | xargs -t -i mv {} {}.bak #选择符合条件的文件 ls|grep -E "201701|201702|201703|201704|201705|201706|201707|201708|201709|201710" |xargs -i mv {} {}.bak
(4)设置命令行的最大字符数。参数默认一个一个单独传入命令中执行。
[b3335@MIC test]$ echo "01234 56789"|xargs -t -s 11 echo 01234 01234 echo 56789 56789
(5)设置标准输入中每次多少行作为命令的参数,默认是将标准输入中所有行的归并到一行一次性传给命令执行。
[b3335@MIC test]$ echo -e "01234\n56789\n01234" | xargs -t -L 2 echo echo 01234 56789 01234 56789 echo 01234 01234
(6)将文件内容以空格分隔同行输出。
//列出文件内容 cat test.txt a b c d e f g h i j k l m n o //多行输入单行输出: cat test.txt | xargs a b c d e f g h i j k l m n o
(7)与ps、grep、awk和kill结合,强制终止指定进程
ps -ef|grep spp|awk '{printf "%s ",$2}'|xargs kill -9
命令解释:
ps -ef|grep spp
用于查找包含spp的进程,awk '{printf "%s ",$2,FNR}
将目标进程ID打印输出,xargs kill -9
则将目标进程ID作为参数传递给kill -9用于杀死进程。
以上就是Linux xargs命令的使用的详细内容,更多关于Linux xargs命令的资料请关注开心学习网其它相关文章!
- linux负载均衡(深入理解Linux负载均衡LVS)
- linux安装php目录路径修改(ubuntu环境下的php相关路径与修改方法)
- docker脚本指定linux(在docker中执行linux shell命令的操作)
- vmware虚拟linux无法配置ip(在VMware虚拟机中查看Linux的IP地址的方法)
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
- 宝塔linux面板安装(宝塔Linux控制面板专业版破解步骤亲测可用)
- linux双网卡热备配置超详细(linux 使用bond实现双网卡绑定单个IP的示例代码)
- apache 配置域名(apache 二级域名解析 window与linux)
- Linux ls命令的使用(Linux ls命令的使用)
- linuxdocker命令使用教程(seata docker 高可用部署的详细介绍)
- linux磁盘分区创建步骤(Linux parted磁盘分区实现步骤解析)
- 护卫神主机大师教程(护卫神主机大师Linux登录账户密码忘记的解决办法)
- vnc连接linux黑屏(阿里云服务器VNC无法连接及黑屏的原因)
- linux搭建nacos(docker搭建nacos1.3.0的实现)
- linux启动jenkins(linux 下jenkins项目搭建过程centos7为例 )
- 定时删除linux日志(Linux使用shell脚本定时删除历史日志文件)
- 小米Watch S1评测 或许能成为小米冲击高端可穿戴设备的里程碑(小米WatchS1评测或许能成为小米冲击高端可穿戴设备的里程碑)
- 手机QQ与小米路由器在一起 明天揭晓,敬请期待(手机QQ与小米路由器在一起)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
热门推荐
- dedecms 添加单页(织梦dedecms内页、详情页中调用文章作者信息的方法)
- CSS边框border样式缩写
- python 接口测试怎么校验json数据(python接口自动化十七--Json 数据处理---一次爬坑记详解)
- Global.asax文件的介绍
- 宝塔面板怎么设置ftp(新安装宝塔Linux面板FTP无法连接的解决方法)
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- 宝塔面板错误代码3(宝塔面板打开网站No input file specified如何解决?)
- SqlServer 复制中将大事务分成小事务分发的方法(SqlServer 复制中将大事务分成小事务分发的方法)
- 云服务器推荐流程(云服务器入门须知的3个技巧)
- 使用python编辑个人名片(python实现名片管理系统项目)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9