linux 一篇带你掌握 通配符 与 特殊字符
通配符
- 代表特殊含义的一些符号。
- bash命令行操作时使用。
- 作用于文件名的常见通配符
符号 | 作用 | ||
---|---|---|---|
* | 匹配任意(0个或多个)字符或字符串,包括空字符串 | ||
? | 匹配任意1个字符,有且只有一个字符 | ||
字符集合(匹配一堆字符/文本) | |||
[abcd] | 匹配 abcd 中任何一个字符, abcd 也可以是其他任意不连续字符 | ||
[a-z] | 匹配 a 到 z 之间任意一个字符,字符前后要连续,也可以用连续的数字 [0-9] | ||
[!abcd] | 表示不匹配括号里面的任意一个字符,也可以书写为[!a-b], 这里的!号可以用^替代,即[^abcd] |
与路径有关的特殊符号
符号 | 作用 |
---|---|
~ | 用户家目录 ,超级用户为 /root , 普通用户位/home |
- | 代表上一次(相对于当前路径) 用户所在路径 ($OLDPWQD这个环境变量时刻记录上一次所在路径) |
. | 代表当前目录 |
.. | 代表上一级目录 |
单引号
‘’ 所见即所得,即输出单引号内容时会将单引号内,所有内容都原样输出,或者描述为单引号里面看到的是什么就会输出什么,被称之为
强引用
双引号
- “”输出双引号内所有内容时,如果内容中有命令(要反引一下),变量特殊转义符等,会先把变量,命令,转义字符解析出结果,然后在输出最终内容,被称为弱引用
- 不加引号与双引号效果差不多,区别在于双引号内的内容代表一个整体
反引号
`` 一般用于引用命令,执行的时候命令会被执行,相当于$(),赋值和输出都要将命令用 ``引起来,里面是可执行命令
其他特殊符号
;
- 表示一个命令的结束,也是命令的分隔符
#
- root用户提示符
- 表示是注释内容,是用来给管理员看的,系统不会执行
#
号开头的内容- 作为分隔符 (vim 中替换内容
:%s#1#2#g
)
|
(管道)
将一个命令处理后的中间内容输出给下一个命令继续处理
- 管道传输的是数据流(文件内容),不是文件(文件名)。
- 使用管道过滤效率很低,不建议使用
- 分组功能,同时过滤多个字符串(
egrep "3306|1521" /etc/server
)
$
- 代表普通用户命令提示符
- 字符串前加
$
符号,代表字符串变量内容(echo $LANG)
\
逃脱符或转义字符
- 将有特殊含义的字符(通配符或正则表达式)还原成字符本意(
\?
只表示字符没有特殊意思)
{}
生成序列
echo {1…10}
bash 里特殊符号
-
&&
并且的意思 and 前面正确,后面才输出
-
||
或者的意思,前面错误,后面才输出
-
!
取反 -
重定向
<
标准输入重定向<<
标准输入追加重定向>
标准输出重定向>>
标准输出追加重定向