linux通配符知识
注意:linux通配符和三剑客(grep,awk,sed)正则表达式是不一样的,因此,代表的意义也是有较大区别的。
通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景。
*:通配符,代表所有(0到多个)字符
?:通配符,代表任意1个字符
;:连续不同命令的分隔符
#:配置文件注释
|:管道
~:当前用户的家目录
-:上一次所在的路径
$:变量前需要加的符号
/:路径分隔符号,也是根的意思
>或1>:重定向,覆盖原有数据
>>:追加重定向,追加内容文件尾部
<:输入重定向(xargs,tr)
<<:追加输入重定向(cat)
':单引号,不具有变量置换功能,输出时所见即所得
'':双引号,具有变量置换功能,解析变量后输出,不加引号相当于双引号
`:tab键上面的键,反引号,两个``中间为命令,会先执行,等价$()
{ }:中间为命令区块组合或内容序列
!:逻辑运算中的“非”(not)
&&:and 并且,当前一个指令执行成功时,执行后一个指令
||:or 或者,当前一个指令执行失败时,执行后一个指令
..:两个点代表上一级目录
.:点代表当前目录
1.*号举例
[root@redhat test]# ls *.sh <==代表任意字符(0到多个)
xx.sh xxx.sh xxxx.sh
2.?号举例
[root@redhat test]# ls *
xx.sh xxx.sh xxxx.sh xxxxx.sh
[root@redhat test]# ls ?.sh
ls: 无法访问?.sh:没有那个文件或目录
[root@redhat test]# ls ????.sh <==代表四个字符
xxxxx.sh
[root@redhat test]# touch a.sh
[root@redhat test]# ls ?.sh <==代表一个字符
a.sh
[root@redhat test]# ls -l ????.sh
3.;两个命令之间的分隔符
[root@redhat test]# pwd;pwd
/root/test
/root/test