1. 特殊符号
| | | 管道符,或者(正则) |
|---|---|
| > | 输出重定向 |
| >> | 输出追加重定向 |
| < | 输入重定向 |
| << | 追加输入重定向 |
| `` $() | 引用命令被执行后的结果 |
| ~ | 当前用户家目录 |
| $ | 以。。。结尾(正则) |
| ^ | 以。。。开头(正则) |
| * | 匹配全部字符,通配符 |
| ? | 任意一个字符,通配符 |
| # | 注释 |
| & | 让程序或脚本切换到后台执行 |
| && | 并且 同时成立 |
| [] | 表示一个范围(正则,通配符) |
| {} | 产生一个序列(通配符) |
| . | 当前目录的硬链接 |
| .. | 上级目录的硬链接 |
2. 通配符

| 符号 | 作用 |
|---|---|
| * | 匹配任何字符串/文本,包括空字符串;代表任意字符(0个或多个) ls file |
| ? | 匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0 |
| [abcd] | 匹配abcd中任何一个字符 |
| [a-z] | 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 |
| {str1..str2} | 表示生成序列. 以逗号分隔,且不能有空格 |
| [!abcd] | 或[^abcd]表示非,表示不匹配括号里面的任何一个字符 |
3. 转义字符
有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 shell提供转义符有三种。
单引号:硬转义,其内部所有的shell 元字符、通配符都会被关掉。—俗称所见即所得
双引号:软转义,其内部只允许出现特定的shell 元字符:$用于参数替换 `(反单引号,esc键下面)用于命令替换
反斜杠:又叫转义,去除其后紧跟的元字符或通配符的特殊意义
4. 用法详解
4.1 ? 任何一个字符
4.2 [abcd]表示匹配中括号内任意一个字符就成立
4.3 {}生成序列
4.4 []用来找文件(匹配文件名)
4.5 利用 {} 来备份
4.6 [^abcd] !^表示非,取反
4.7 []与{}区别
- []只能用来找文件
- {} 用来找文件,或创造文件,生成序列

