用于匹配文件名,是完全匹配。下面举例说明:
?:匹配一个任意字符。*:匹配0个或任意多个任意字符,也就是可以匹配任何内容。[]:匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。[-]:匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母。[^]:逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符。 # 通过通配符查找文件 [root@localhost ~ ] # find . -name "abc*" ./abcd ./abc [root@localhost ~ ]# find . -name "a?c" ./acc ./abc 其他同理提示:只要是操作文件名或者目录名的命令都可以是用通配符。如rm命令。
用于匹配字符串,是包含匹配。下面简单举例:
?:匹配前一个字符重复0次,或1次(?是扩展正则,需要使用egrep命令。注shell分为标准正则和扩展正则。)。*:匹配前一个字符重复0次,或任意多次。[]:匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。[-]:匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母。[^]:逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符。^:匹配行首(限位符)。$:匹配行尾(限位符)。其中主要是是?和*,在通配符和正则表达式的不同。
关于*注意: [root@localhost ~ ] # grep "a*" abc 向上面命令中,单写一个字母+*是没有任何意义的。结果会显示文件中所有内容,包括空白行。 因为*是匹配前一个字符重复0次,或任意多次。0次代表什么都没有,也就是没有条件的筛选,所以就显示文件汇总所有的内容。
而[root@localhost ~ ] # grep "aa*" abc命令,则表示查找文件中包含有小写字母a的行。和开头无关,正则是含有匹配,包含就会被列出。
如果想要在正则当中去匹配开头的内容,就需要使用限位符。如下:
[root@localhost ~] # grep "^a" abc abc abc 123 abc123abc [root@localhost ~] # grep "^aa*" abc 和上面查询结果也一样。小练习:
[root@localhost ~]# egrep"aaa?" abc 123aaaaabc 123aabc 上面证明是包含匹配 [root@localhost ~j# egrep "3aaa?b"abc 123aabc [root@localhost ]# 如果只想要搜索两个a的字符串,就需要使用限位符,其中的3和b都属于限位符。 限位符是包括自己与其他字符串不匹配的任何字符的统称。(别名也是shell中的命令。)
命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的。
命令格式: #查询系统中命令别名 [root@localhost ~ ] # alias #设定命令别名 [root@localhost ~ ] # alias 别名=’原命令’ 例如: #用ser别名,替代service network restart命令 [root@localhost ~ ] # alias ser = 'service network restart'提示:
1.别名的优先级是高于系统命令的。2.如果定义的别名和系统命令重叠了,该命令则不能执行了,只能执行别名所代替的命令了。所以在定义别名的时候,最好不要用系统命令。3.怎么确定你定义的别名是否是系统命令,你就直接敲一下你定义的别名或这whereis + 别名,看看有没有找到,如果没有找到了,说明不是一个系统命令。注意:用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc。 这是说的第二个环境变量配置文件。注意的是,放在自己家目录中的环境变量配置文件只对自己有效。
(小写即可。) 这些都是Linux系统的快捷键,每个远程客户端都支持。