• linux中的特殊符号及其含义梳理


    1. 重定向符号及含义

      注意:箭头流向即是数据的流向.

    数字0:标准输入(standard input,简写stdin),数据从右往左方向流动
    数字1:标准正确输出(standard output,简写stdout),数据从左往右流动
    数字2:标准错误输出(standard error output,简写stderr),数据从左往右流动
    >  或  1> 把正确的进行输出(标准输出),覆盖
    >>  或  1>> 把正确的进行输出(标准输出),追加
    2> 把错误的进行输出,覆盖
    2>> 把错误的进行输出,追加
    <  或  0< 一般通过文件来输入重定向,如tr命令使用较多(0一般省略不写)
    <<  或  0<< 追加输入重定向,一般cat命令用的多,在shell脚本中(0一般省略不写)
    &> 合并正确和错误输出,覆盖重定向
    &>> 合并正确和错误输出,追加重定向
    COMMAND > /path 2> /path2 正确或错误(标准输出和标准输入)输出至不同位置
    COMMAND > /path 2> &1 把错误输出导入正确输出的文件中
    COMMAND > /path 2>> &1 追加
    &>/dev/null 正确和错误的都重定向到空
    COMMAND > /dev/null 2>&1 定向到空(同上一个)

    2. 特殊符号/通配符及含义

      通配符:通配符是bash的内置功能,其适用范围在命令行中的普通命令及脚本编程中,跟linux正则表达式有一些区别. 

      通配符的目的:bash中用于实现文件名"通配",通配符仅仅匹配字符. 

    符号 含义
    ######路径位置
    . 当前目录
    .. 上一级目录
    - 上一次所在目录
    ~ 用户家目录
    ######模糊匹配
    * 匹配任意长度的任意字符
    ? 匹配任意单个字符,有且只有一个字符
    ! 取反(正则表达式中,不支持在grep中使用;在find/sed/awk中表示取反)
    [] 匹配指定范围内(中括号内)的任意单个字符
    [^] 匹配指定范围外(中括号之外)的任意单个字符(非)
    [!] 取反,等价于[^]
    ######引号
    '' 单引号,强引用,所见即所得,不会做解释
    "" 双引号,弱引用,双引号中的变量或命令或转移字符会先被解释
    `` 反引号,引用命令,解释命令(等价于 $() 或 ${} )
    ######其他特殊符号
    转义字符,还原原本的意义
    ; 多个命令之间的分隔符(-exec命令中,分号;代表bash的特殊意义)
    |

    管道COMMAND1 | COMMAND2 | COMMAND3| …后一个命令会将前一个

    命令的标准输出,当做要执行的对象

    $ 1)代表普通用户的提示符;  2)$(string)代表字符串变量内容
    # 1)在文本中,前面加#代表行内容被注释;  2)超级管理员的提示符
    {}

    1)可以生成序列;  2)shell脚本编程中,用作引用变量,作为变量与普通字符的

    分隔,让变量成为一个整体

    3. 专用字符集合及其含义

      注意:专用字符在命令行中一般需加中括号[]括起来,所以,下表整理成对出现.

    字符 含义
    [[:alnum:]] 任意数字或字母,匹配大小写字母和数字,等价于字符类'[:alpha:]'与字符类'[:digit:]'的和
    [[:alpha:]] 任意大小写字母,匹配大小写字母,等价于字符类'[:lower:]'和字符类'[:upper:]'的和
    [[:blank:]] 空白字符类,包括:空格和制表符
    [[:cntrl:]] 控制字符
    [[:digit:]] [0-9]  中的任意数字
    [[:graph:]] 图片和图形
    [[:lower:]] [a-z]  任意小写字母
    [[:print:]] 可打印字符,字符类'[:alnum:]'与字符类'[:punct:]'和空格的和
    [[:punct:]] 任意标点符号
    [[:space:]] 任意空格字符
    [[:upper:]] [A-Z] 任意大写字母
    [[:xdigit:]] 十六进制字符

    4. bash中的逻辑运算符

      注意:

      1)逻辑运算符遵循从左往右的顺序进行运算,逻辑运算符&&和||是短路符号,符号左右两边的命令之间具有逻辑关系.

      2)联合使用 && 和 || 的时候,先判断 逻辑与 再判断 逻辑或

    符号 含义

    &&

    (COMMAND1 && COMMAND2)

    与运算and.COMMAND1执行成功,没有报错,COMMAND2才会执行;

    若COMMAND1执行报错,则COMMAND2不会被执行.

    判断命令执行是否成功的依据是echo $? ,若结果是0,

    则是命令执行成功,若是其他数值,都是代表命令执行失败.

    ||

    (COMMAND1 || COMMAND2)

    或运算or.当COMMAND1执行成功,没有报错,COMMAND2不会被执行;

    若COMMAND1执行报错,则COMMAND2会被执行

    ! 1)在bash中表示取反;  2)调用history最近历史命令

    ;

    (COMMAND1;COMMAND2)

    分号前面的命令出错也不影响后面的命令执行,即COMMAND 1;

    COMMAND2都会被执行

    &

    (COMMAND1 & COMMAND2)

    将命令放到后台去执行;如果&两边都是命令,则前面的命令会被放到后台执行,

    后面的命令也会同时执行,这两者之间没有逻辑关系,命令是并行执行的.

  • 相关阅读:
    C# 让程序自动以管理员身份运行
    [转]SAP算号器 license key Developer Access Key 完美解决方案
    【原创】项目性能优化全纪录(一) 存储过程优化
    treeview的遍历
    .NET求职笔试题目(续)
    SQL server 数据同步 Merge 的一个小bug
    use Stored procedure return a tabel(存储过程返回table)
    四种sql server 数据库分页的测试
    十五个世界最顶级的技术类博客网站
    层的拖动与隐藏
  • 原文地址:https://www.cnblogs.com/blog-tim/p/11736206.html
Copyright © 2020-2023  润新知