Linux,通配符,元字符,转义符!
通配符.
| 字符 | 含义 | 实例 |
|---|---|---|
| * | 匹配 0 或多个字符 | a*b a与b之间可以有任意长度的任意字符,也可以一个也没有,如aabcb,axyzb,a012b,ab. |
| ? | 匹配任意一个字符 | a?b a与b之间必须也只能有一个字符,可以是任意字符,如aab,abb,acb,a0b. |
| [list] | 匹配 list 中的任意单一字符 | a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。 |
| [!list] | 匹配 除list 中的任意单一字符 | a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。 |
| [c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] | a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b… a9b。 |
| {string1,string2,…} | 匹配 sring1 或 string2 (或更多)其一字符串 | a{abc,xyz,123}b a与b之间只能是abc或xyz或123这三个字符串之一。 |
shell元字符(特殊字符 Meta)
shell 除了有通配符之外,由shell 负责预先先解析后,将处理结果传给命令行之外,shell还有一系列自己的其他特殊字符。
| 字符 | 说明 |
|---|---|
| IFS | 由 <space> 或 <tab> 或 <enter> 三者之一组成(我们常用 space)。 |
| CR | 由 <enter> 产生。 |
| = | 设定变量. |
| $ | 作变量或运算替换(请不要与 shell prompt 搞混了)。 |
| > | 重导向 stdout。 * |
| < | 重导向 stdin。 * |
| | | 命令管道 |
| & | 重导向 file descriptor ,或将命令置于背境执行。 * |
| ( ) | 将其内的命令置于 nested subshell 执行,或用于运算或命令替换。 * |
| { } | 将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围。 |
| ; | 在前一个命令结束时,而忽略其返回值,继续执行下一个命令。 * |
| && | 在前一个命令结束时,若返回值为 true,继续执行下一个命令。 *与门逻辑 |
| || | 在前一个命令结束时,若返回值为 false,继续执行下一个命令。 *或门逻辑 |
| ! | 执行 history 列表中的命令。* |
Shell转义符
有时候,我们想让,通配符,或者元字符,变成普通字符,不需要使用它.那么这里我们就需要用到转义符了.shell提供转义符有三种。
| 字符 | 说明 |
|---|---|
| ‘’(单引号) | 又叫硬转义,其内部所有的shell 元字符,通配符都会被关掉.注意,硬转义中不允许出现’(单引号)。 |
| “”(双引号) | 又叫软转义,其内部只允许出现特定的shell 元字符:$用于参数代换 `用于命令代替 |
| \(反斜杠) | (反斜杠) 又叫转义,去除其后紧跟的元字符或通配符的特殊意义。 |


