Linux基础重点补充——第一关

这篇博客重点总结了Linux基础中的关键命令,包括xargs用于将标准输入转换为其他命令参数,find用于搜索文件,grep的正则表达式文本搜索,sed的行编辑功能,以及awk的文本分析能力。这些命令是Linux运维工程师日常工作中不可或缺的工具。
摘要由CSDN通过智能技术生成

上一篇的基础检验如果掌握好的话,可以说:我们已经入门了,但是距离精英级别Linux运维工程师还差的十万八千里。今天我们先对昨天的基础检测中的几个核心命令重点总结一下。

[核心命令总结]

  • xargs命令

xargs可以将标准输入中的数据以空格分割的参数,传递给其他命令。可以理解为xargs命令是给后续命令传递参数的一个过滤器。它的应用场景主要是在:很多命令不支持使用管道 | 来传递参数。

(1)示例
find /mydirs -mtime +5 | ls -l      #这个命令是错误的,因为stdin不能作为ls的参数  
find /mydirs -mtime +5 | xargs ls -l    #正确 
(2)命令格式
xargs [选项] [命令]
(3)选项
-0:如果输入的stdin含有特殊字符,例如反引号`、反斜杠\、空格等字符时,xargs可以将它还原成一般字符。为xargs的默认选项。
-e <flag>,-E <flag>,--eof=<eof-str>:eof是end of file string的意思。flag可以是一个字符串或者是由空格分隔的多个字符串,当xargs分析到这个flag时,就会停止工作。
-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后有多个参数时,调整参数位置。
例如:find . -name "*.txt"|xargs -I {}  cp {} /tmp/{}.bak。
-r:或者--no-run-if-empty,当xargs的输入为空的时候则停止xargs,不用再去执行后面的命令了,-r是xargs的默认选项。
-s <num>:命令行的最大字符数,指的是xargs后面那个命令的最大命令行字符数,包括命令、空格和换行符。每个参数单独传入xargs后面的命令。
-L <line_num>:设置标准输入中最大的行数作为命令每一次执行的参数。
-d <delim>, --delimiter=<delim>: xargs处理标准输入默认是按换行符和空格作为分隔符,输出arguments的分隔符是空格,这里修改xargs处理标准输入时的分隔符。
-x:eXit的意思,主要是配合-s使用,当命令行字符数大于-s指定的数值时,退出xargs。
(4)用法示例
    <1> 将shell的特殊字符还原成一般字符
    命令    echo '`0123`4 56789'|xargs -t echo
    结果    echo `0123`4 56789
            `0123`4 56789
    *如果直接进行如下操作,会报无法找到命令01234的错误,因为反引号在shell中会将01234作为一个命令来执行,但是01234不是一个命令。-t表示先打印命令,然后再执行。*
    命令    echo '`0123`4 56789'
    结果    -bash: 01234: command not found   
    <2> 设置xargs读入参数时的结束标识,以逗号结束。这里要注意结束标志必须要是单独的字段,即以空格或者换行符分隔的字段。
    命令    01234,56789|xargs -E ","
    结果    01234
    <3> 使用rm、mv等命令同时操作多个文件时,有时会报”argument list too long”参数列表过长的错误,此时可以使用xargs来解决。xargs将标准输入的字符串分隔后,单独作为参数传递给后面的命令。例如,将当前目录的所有文件添加后缀名。
    命令    ls | xargs -t -i mv {} {}.bak
    <4> 设置命令行的最大字符数。参数默认一个一个单独传入命令中执行。
    命令    echo "01234 56789"|xargs -t -s 11
    结果    echo 01234
            01234
            echo 56789
            56789
    <5> 设置stdin中每次多少行作为命令的参数,默认是将stdin中所有行的归并到一行一次性传给命令执行。
    命令    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
  • find命令

Linux下find命令用来搜索文件,并执行指定的操作。

(1)命令格式
find [查找目录] [查找规则] [查找完后的操作]
find pathname   -option [-print -exec -ok …]
(2)命令功能
用于在文件目录结构中查找文件,并作出相应的处理操作。
(3)命令参数
pathname:表示所要查找的目录路径,例如"."表示当前目录,"/"表示根目录。
-print:将find找到的文件输出到标准输出。
-exec:对找到的文件执行exec这个参数所指定的shell命令。相应的形式为:-exec command {} \; 将查到的文件进行command操作,"{}"就代替查到的文件,注意"{}""\"之间有一个空格。
-
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值