linux中是区分大小写的。

  1. 文件名:可以使用除了  /  之外的任意字符,总长度不超过255.

  2. 变量名:可以使用字母、数字、下划线 ,不能以数字开头。


bash中的匹配字符

  1. * 任意多个任意字符

  2. ? 单个任意字符

  3. [ ] 匹配里面的任意单个字符

    [abc] 匹配 a 或 b  或 c

    [ABC] 同上

    [a-z] 匹配a-z的任意单个字符

    [0-9] 匹配0-9的任意单个字符

    [[:upper:]] 大写字母

    [[:lower:]] 小写字母

    [[:alpha:]] 所有字母

    [[:digit:]] 所有数字

    [[:alnum:]] 所有字母数字

    [[:space:]] 空格

    [[:punct:]] 标点符号



    

    提示:[:digit:] 相当于 0-9,使用的时候[[:digit:]]===[0-9]   ,其他同理。


4.  [^...] 匹配给定范围以外的任意单个字符


bash 中的参数展开(一般用在命令中),相当于多个参数分别执行。

     cmd {a,b,c}=== cmd a;cmd b;cmd c

     cmd  {a,b,c}_{x,y,z} === cmd a_x;  cmd a_y;   cmd a_z;   cmd b_x;   cmd b_y;   cmd b_z;  cmd c_x;  cmd c_y;   cmd c_z

  


bash中的引用

  1. 单引号 '': 强引用,其中的任意字符都当做字符来看待。

  2. 双引号"":    弱引用,里面的变量将当做变量使用,一般字符仍是一般字符。

  3. 命令符``  或  $()  :    命令引用,里面只能放命令,引用的是命令的执行结果。


对比:

ls /dev/sd[a-z]   列出sd开头的,第三个字母是abc。。。z的文件

ls /dev/sd{a..z}  相当于 ls /dev/sda  ls/dev/sdb......ls/dev/sdz   相当于多个命令。