3.Shell中常用的特殊字符

shell Meta元字符,整个shell解释器中都支持的特殊字符,并有特殊的含义
    >     该符号为重定向符号,重定向只收集前面命令的正确输出结果,并且是覆盖重定向。
        例如:
            ls -d /opt /opt/123 > /opt/test
            #/opt是正确输出结果,/opt/123不存在,也就是错误输出,那么test文件里就只能看到/opt这一个内容
    
    >>     该符号为追加重定向符号,追加重定向也是只收集前面命令的正确输出结果,也是覆盖重定向。
        例如:
            ls -d /opt /opt/123 >> /opt/test
            #test文件里本来有内容123456
            #/opt是正确输出结果,/opt/123不存在,也就是错误输出
            #那么test文件里就能看到 123456 和 /opt 这两个内容
    
    <     该命令可以把后面的参数,或者文本内容输出给前面的命令
        比如:
            mail -s test root < a.txt
            #把a.txt里的内容输入到root用户的test邮件里,并且不会交互
    
    2>    只收集前面命令的错误输出
        例如:
            ls -d /opt /opt/123 2> /opt/test
            #/opt是正确输出结果,/opt/123不存在,也就是错误输出,那么test文件里就只能看到 ls: cannot access /root/haha: No such file or directory 这个内容    
    
    &>    收集前面命令的全部输出
        例如:
        #!/bin/bash
        ls /root/1.txt /root/haha/ &> /opt/haha
        #1.txt脚本是正确的,/root/haha是错误输出,其输出的所有结果都会被写进/opt/haha中
    
    >&2    将面命令的输出结果定义为错误输出,通常在脚本中还要与exit连用,必须赋予返回值
        shell脚本中人为定义错误输出:
            例:
            if [ $# -eq 0 ];then
             echo "您没有输入参数" >&2          #将其定义为错误输出
             exit 2                             #还要定义这个错误输出的返回值,只有返回值是非0才是异常
            fi
            在终端执行完这个脚本,再 echo $? 可以看到输出一个数字2,说明系统已经认定这次执行结果为错误了。
    
        提示:所有的重定向符号都有新建文本的功能        
    
    $变量名    取变量值
        例如:
        $a    取a变量的值,引用a这个变量        
        
    ;    在前一个命令结束时,而忽略其返回值,继续执行下一个命令
        例如:
            [ $USER == root ];echo $?
            不管;前面的命令执行是否成功,两条命令都会执行
            比如:
            ls /opt/haha;echo 123
            #haha不存在,这一条命令会报错,紧接着还会再输出123

    &&    在前一个命令结束时,若返回值为 true,继续执行下一个命令

    ||    在前一个命令结束时,若返回值为 false,继续执行下一个命令
    
    \    转译字符,去除其后紧跟的元字符或通配符的特殊意义
    
    ${x:-30}     
        可以在终端命令行中使用,可以看x有没有值,有值就返回x的值,没有就返回30
    
    seq    可以对数字或者变量进行排序
        终端命令行中输入seq 3就会在屏幕中输出1 2 3
        如果a=5 则seq a会输出1 2 3 4 5
        
————————————————————————————————————————————————————————————————————————————————————

黑洞设备:/dev/null 将所有内容自动销毁
    例如:
    vim /opt/test
    ls /opt/haha /opt/aa > /dev/null
    #意思就是将所有输出结果,不管正确与否,都丢进黑洞,不显示任何输出
    
————————————————————————————————————————————————————————————————————————————————————    

取消特殊字符意义的方法:
    使用 ' ' 和 " "符号
    它俩的作用差不多,都是界定范围,这个范围里的东西属于一个整体
    但是"" 不会取消掉这里面的特殊含义
    例:echo '$a' 会直接输出$a,而如果是" "则会输出这个变量的值

————————————————————————————————————————————————————————————————————————————————————

输出命令的执行结果,用于其他命令的运行:
    使用` `或$( ) 可以将里面命令的输出结果,直接用于参与其它命令的运行
    例:mkdir /opt/nsd$(date +%F)        #这就是直接将日期结果作为文件名的一部分了
        
————————————————————————————————————————————————————————————————————————————————————        
        
管道符:|
    将前面命令的参数作为后者的参数
    echo "1234" | passwd root --stdin
        #将1234作为passwd命令执行的参数,非交互的改密码

————————————————————————————————————————————————————————————————————————————————————    
        
把命令放在后台执行 &

————————————————————————————————————————————————————————————————————————————————————

取反    !
    在sed命令中,shell中的数值运算条件测试等都是取反的意思,在很多语言中!都代表取反。
    
————————————————————————————————————————————————————————————————————————————————————

通配符:
    通配符一般是用来匹配路径和文件名称的,通常和find、rm、ls、cp一起使用
    *    匹配 0 或多个字符
    ?    匹配任意一个字符
    []    匹配 [] 中的任意单一字符
    {}    比如:{a1,b2}匹配 a1 或 b2 其中任意一个字符串
    
    
    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值