通配符
标签(空格分隔): linux基础
作者:Mr:wei
第1章 回顾特殊符号
符号 | 解释 |
---|---|
| | #管道符,或者(正则) |
> | #输出重定向 |
>> | #输出追加重定向 |
< | #输入重定向 |
<< | #追加输入重定向 |
~ | #当前用户家目录 |
`` 或$() | #引用命令被执行后的结果 |
$ | #以。。。结尾(正则) |
^ | #以。。。开头(正则) |
* | #匹配全部字符,通配符 |
? | #任意一个字符,通配符 |
# | #注释 |
& | #让程序或脚本切换到后台执行 |
&& | #并且 同时成立 |
[] | #表示一个范围(正则,通配符) |
{} | #产生一个序列(通配符) |
. | #当前目录的硬链接 |
… | #上级目录的硬链接 |
第2章 通配符
他是shell的内置功能 通配符,用过DOS的应该很了解,也很常用。 通配符,指包含这些字符的字符串“?”,“*”,“【”,{}
通配符含义===>匹配文件名
符号 | 作用 |
---|---|
* | 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * |
? | 匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0 |
[abcd] | 匹配abcd中任何一个字符 |
[a-z] | 表示范围a到z,表示范围的意思 |
{…} | 表示生成序列。以逗号分隔,且不能有空格补充 |
[!abcd] | 或[^abcd]表示非,表示不匹配括号里面的任何一个字符 |
2.1.1 通配符详解
[root@text ~]# mkdir {a..n}
[root@text ~]# ls
a b c d e f g h i j k l m n
[root@text ~]# touch {n..z}
[root@text ~]# ls
a b c d e f g h i j k l m n o p q r s t u v w x y z
2.1.2 ? 任何一个字符
[root@text ~]# ls ./?
./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z
./a:
./b:
./c:
./d:
./e:
./f:
./g:
./h:
./i:
./j:
./k:
./l:
./m:
./n:
这里一个?代表一个字符,如果有匹配三个字符,应该是???,多个就以此类推
2.1.3 [abcd]表示匹配中括号内任意一个字符就成立
[root@text ~]# ls [djbcz]
z
b:
c:
d:
j:
2.1.4 通配符是用来找文件(匹配文件名)
[root@text ~]# ls [a..f]
a:
f:
[root@text ~]# ls [a-f]
a:
b:
c:
d:
e:
f:
中括号不支持..符号,从哪到哪用-
2.1.5 {}生成序列
[root@text ~]# mkdir {a..n}
[root@text ~]# ls
a b c d e f g h i j k l m n
[root@text ~]# touch {n..z}
[root@text ~]# ls
a b c d e f g h i j k l m n o p q r s t u v w x y z
2.1.6 利用 {} 来备份
[root@text ~]# cp abcd{,.bak}
[root@text ~]# ls
abcd abcd.bak
[root@text ~]# cp abc{d,www.bak}
[root@text ~]# ls
abcd abcd.bak abcwww.bak
[root@text ~]# cp abcd{,www.bak}
[root@text ~]# ls
abcd abcd.bak abcdwww.bak abcwww.bak
,表示代表用逗号后面的字符替换逗号前面的字符
2.1.7 [^abcd] !^表示非,取反
[root@text ~]# ls abc[^z]
abcd
[root@text ~]# ls abc[^d]
ls: cannot access abc[^d]: No such file or directory
2.2.1 []与{}区别
[]只能用来找文件
{} 用来找文件,或创造文件,生成序列
第3章 特殊符号
3.4.1未分类特殊符号
3.4.2 #表示注释
linux 会忽略他,给运维人员看的,解释说明用的。
3.4.2 $ 引用变量,取变量的值或普通用户的命令提示符
1,shell $变量 ===>取变量里面的内容
2,awk $取列 $数字
3,普通用户的命令提示符
第4章 常用特殊符号及通配符
通配符 | 含义 |
---|---|
* | 代表任意(0个或多个)字符 |
? | 代表任意1个字符 |
[abcd] | 匹配中括号中任意一个字符 |
{} | 中间为命令区块组合或内容生成 |
特殊符号 | 含义 |
---|---|
; | 分号 连续不同命令的分隔符 |
# | 配置文件注释 |
| | 管道,将前一个命令的结果交给后一命令继续处理 |
~ | cd ~ 当前用户的家目录 |
- | cd - 用户上一次所在的目录,由变量OLDPWD控制;su - 切换用户的系统环境 |
… | 上一级目录 |
. | 当前目录(当前目录三种写法:ls或ls .或ls ./) |
$ | 变量前需要加的符号$OLDPWD;普通用户的命令提示符 |
/ | 根;路径分隔符号 |
\ | 屏蔽系统别名;转义字符; |
> | 输出重定向 |
>> | 输出追加重定向 |
< | 输入重定向 |
<< | 输入追加重定向 |
‘’ | 单号引,不具有变量置换功能,输出时所见即所得 |
“” | 双引号,具有变量置换功能,解析变量输出``反引号(倒引号),``中间是命令,会先执行,等价于$() |
! | 逻辑运算中的“非”;vi/vim中的强制退出;!+ 字母 调出最近一次以此字母开头的命令;!!使用最近一次操作的命令 |
&& | 当前一个指令执行成功时,执行后一个指令 |
双管道符 | 当前一个指令执行失败时,执行后一个指令 |
第5章 单引号,双引号,不加引号的区别
[root@text ~]# echo '$LANG $(which mysql) {a..z}'
$LANG $(which mysql) {a..z}
[root@text ~]# echo "$LANG $(which mysql) {a..z}"
en_US.UTF-8 /usr/local/mysql/bin/mysql {a..z}
[root@text ~]# echo $LANG $(which mysql) {a..z}
en_US.UTF-8 /usr/local/mysql/bin/mysql a b c d e f g h i j k l m n o p q r s t u v w x y z
单引号:所见即所得。
双引号:解析特殊符号,特殊符号有了原本的特殊意思
不加引号:比较特殊,支持通配符
来源:CSDN
作者:Rocky_0120
链接:https://blog.csdn.net/weixin_46150723/article/details/104405059