* 匹配零个或者多个字符
? 匹配任何单个字符
~]# ls x? 搜索以x打头的文件或者目录 单个字符补上
^ 取得反向值
~ 当前用户家目录
~]# cd 回到家目录
~username ~]# cd ~makangbo 回到用户家目录
~]# ll ~/ 也可以访问目录或文件
~+ 当前工作目录
/]# cd ~+ 类似于.显示当前所在工作目录
/]# ls ~+ /root 也可以访问目录或者文件
~- 前一个工作目录
/]# cd 例如我先cd回到家目录 然后 ~]# cd ~- 输入cd ~-回到前一个工作目录
~]# ll ~-/root 可以进行访问目录或者文件
[0-9] 匹配一个数字范围
~]# ll x[0-9] 访问查看以x开头[0-9]以数字结尾的文件或目录
~]# ll x[1a3] 访问查看以x开头[1;a;3;]以尾数作为结果的文件或者目录
~]# ll x[^1a3] 取反访问以x开头不是[1a3]的文件或者目录 ‘^’
[a-z] 字母范围
~]# ll x[a-c] 访问查看以x开头[a-c]字母结尾的文件或者目录
中间包括大写字母AB等字母;当然范围写的到小写字母c肯定不会到大写C
[A-Z] 格式“aAbBc” 以小些字母a开头的中间包括大写AB到小写字母c的范围
*:任意个字符
?: 任意单个字符
[]:指定范围内任意单个字符
[^]:指定范围外的单个字符
预定义的字符类:# man 7 glob
[:digit:]任意数字,相当于0-9之间 ~]# ll xiaomag[[:digit:]]
[:lower:]任意小写字母 ~]# ll xiaomag[[:lower:]] 访问以xiaomag开头的文件以‘小写字母a-z范围之内’为结尾的文件
[:upper:]任意大写字母 ~]# ll xiaomag[[:upper:]] 访问以xiaomag开头的文件以‘大写字母A-Z范围之内’为结尾的文件
[:aplha:]任意大小写字母 ~]# ll xiaomag[[:alpha:]] 访问以xiaomag开头的文件以‘大小写字母aA-zZ范围之内先小后大’为结尾的文件
[:alnum:]任意数字或字母 ~]# ll xiaomag[[:alnum:]] 访问以xiaomag开头的文件以‘任意数字或大小写字母’为结尾的文件
练习
1:显示/var目录下所有以m开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
~]# ls -1 /var/m*[[:digit:]]*[[:lower:]]
(按照每行一个文件排列)*:匹配零个或者多个字符;[[:digit:]]任意数字开头;[[:lower:]]小写字母
2:显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
~]# ls -l /etc/[[:digit:]]*[^[:digit:]]
(按照长列表显示) 数字 ^取反符,取反非数字
3:显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
~]# ls -l /etc/[^[:alpha:]]*[[:alpha:]]
(按照长列表显示)^取反任意字母的值(意思就是取得非字母开头)
而后跟一个任意长度;任意字符 ;任意字母;
4:显示/etc目录下所有以m开头以非数字结尾的文件或目录。
~]# ls -l /etc/m*[^[:digit:]]
(按照长列表显示)m开头*匹配零个或者多个字符;^取反数字的值(就是非数字)显示出来m****
~]# ls -ld /etc/[[:alnum:]]*.d
(ld只显示列表目录本身,不显示内容)任意数字或字母开头 ;
*匹配零个或者多个字符 以.d为结尾的所有文件或者目录
6:显示/etc目录下,所有.conf结尾,且以,m,n,r,p开头的文件或者目录
~]# ll /etc/[m:r:n:p]*.conf
(打开文件列表)题目要求是以m,p开头的文件 就用[m:r:n:p]把需要的字符围起来加上*(所有)最后以.conf结尾
打下基础,才能该得起高楼大厦;保持自己良好的习惯,改善坏习惯!
作者:小马哥(xiaomag)