1. 特殊符号

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

2. 通配符

image.png

符号 作用
* 匹配任何字符串/文本,包括空字符串;代表任意字符(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 ? 任何一个字符

通配符 - 图2

4.2 [abcd]表示匹配中括号内任意一个字符就成立

通配符 - 图3

4.3 {}生成序列

4.4 []用来找文件(匹配文件名)

通配符 - 图4

4.5 利用 {} 来备份

通配符 - 图5

4.6 [^abcd] !^表示非,取反

通配符 - 图6

4.7 []与{}区别

  • []只能用来找文件
  • {} 用来找文件,或创造文件,生成序列

通配符 - 图7