1 通配符(wildcard)
| 字符 | 含义 |
|---|---|
| * | 配一个或多个字符 a*b a与b之间可以有任意长度的字符 |
| ? | 匹配任意一个字符 a?b a与b之间必须也只能有一个字符 |
| [list] | 匹配list中任意单一字符 a[xyz]b a[0-9]b a[!0-9]b |
| {string list} | 匹配字符串列表中的任一字符串 a{abc,xyz,123}b a与b之间只能为abc或xyz或123 |
注意:
需要说明的是,通配符与正则表达式语句有些相似,但它与正则表达式不同,只能将其理解为shell特殊字符即可,而且只涉及*,?,[]和{}。
2 元字符(Meta)
| 字符 | 说明 |
|---|---|
| ; | 命令分隔符,在前一个命令结束时,忽略其返回值,继续执行下一个命令 |
| & | 后台运行命令,最大的好处是无需等待命令执行结束,就可以在同一命令行下继续输入命令 |
| = | 变量名=值,为变量赋值。注意"="左右紧跟变量名和值,中间不要有空格 |
| $ | 变量值替换,"$变量名"替换为shell变量的"值",为避免在文本连接时混淆,请使用${变量名} |
| > | 输出重定向,prog > file 将标准输出重定向到文件(覆盖原文件内容) |
| >> | 输出重定向,prog >> file 将标准输出追加到文件 |
| < | 输入重定向,prog < file 从文件file中获取标准输入 |
| | | 管道命令,例:p1 | p2 将p1的标准输出作为p2的标准输入 |
| () | 在子shell中执行命令,或用于运算,或用于命令替换($(command)) |
| {} | 在当前shell中执行命令,或用在变量替换的界定范围(例如上面的${变量名}用法) |
| && | 前一个命令执行成功后,才继续执行下一个命令。例:p1 && p2 ,若p1执行成功后,才执行p2,反之,不执行p2 |
| | | 前一个命令执行失败后,才继续执行下一个命令。例:p1 || p2 ,若p1执行成功后,不执行p2,反之,才执行p2 |
| ! | 执行历史记录(history列表)中的命令,如!1 |
| ~ | 用户主目录 |
3 转义符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
单引号(''):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(``):把其中的命令执行后返回结果。
| 字符 | 说明 |
|---|---|
| ''(单引号) | 硬转义,其内部所有的shell元字符、通配符等都不会被解析,用于参数的原样输出。注意,硬转义中不允许再出现单引号 |
| ""(双引号) | 软转义,可用于保护元字符和通配符,但是允许变量和命令替换的扩展,也允许反斜杠转义符的解析 |
| \(反斜杠) | 转义,保护元字符或通配符不被shell解析,主要用于双引号,单引号,反单引号和美元符号 |
与echo和sed连用时,常用的反斜杠转义字符如下表所示:
| 转义符 | 意义 |
|---|---|
| \a | 响铃字符 |
| \b | 后退符,即删除前一个字符 |
| \c | 输出不换行,与/n作用相反 |
| \d | 以“星期、月、日”表示日期 |
| \f | 换行,但光标仍停留在原处 |
| \h或\H | 显示基本主机名或显示完整的主机名 |
| \t或\T | 24小时或12小时制时间 |
| \n | 输出换行 |
| \r | 光标移至行首,并且不换行 |
| \s | 当前shell的名称,如bash |
| \t | 插入Tab键 |
| \u | 当前登录shell的用户名 |
| \v | Bash版本 |
| \w | 当前工作目录 |
| \W | 当前工作目录的基名 |
| \ | 反斜杠\,有无双引号,结果相同 |
| $ | 美元符号$,有无双引号,结果相同 |
| " | 双引号“,有无双引号,结果相同 |
| ' | 单引号’,不能与双引号同时使用 |
| ` | 反单引号`,有无双引号,结果相同 |
| \nnn | 插入八进制所代表的ASCII字符 |
参考来源:
http://www.cnblogs.com/fnlingnzb-learner/p/6839669.html