linux中是区分大小写的。
文件名:可以使用除了 / 之外的任意字符,总长度不超过255.
变量名:可以使用字母、数字、下划线 ,不能以数字开头。
bash中的匹配字符
* 任意多个任意字符
? 单个任意字符
[ ] 匹配里面的任意单个字符
[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中的引用
单引号 '': 强引用,其中的任意字符都当做字符来看待。
双引号"": 弱引用,里面的变量将当做变量使用,一般字符仍是一般字符。
命令符`` 或 $() : 命令引用,里面只能放命令,引用的是命令的执行结果。
对比:
ls /dev/sd[a-z] 列出sd开头的,第三个字母是abc。。。z的文件
ls /dev/sd{a..z} 相当于 ls /dev/sda ls/dev/sdb......ls/dev/sdz 相当于多个命令。