1、Linux中通配符与正则表达式区别
(1)通配符:
用于匹配文件名,是完全匹配。下面举例说明:
- ?:匹配一个任意字符。
- *:匹配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命令。
(2)正则表达式:
用于匹配字符串,是包含匹配。下面简单举例:
- ?:匹配前一个字符重复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都属于限位符。
限位符是包括自己与其他字符串不匹配的任何字符的统称。
2、Linux别名命令
(别名也是shell中的命令。)
命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的。
命令格式:
#查询系统中命令别名
[root@localhost ~ ] # alias
#设定命令别名
[root@localhost ~ ] # alias 别名=’原命令’
例如:
#用ser别名,替代service network restart命令
[root@localhost ~ ] # alias ser = 'service network restart'
提示:
- 1.别名的优先级是高于系统命令的。
- 2.如果定义的别名和系统命令重叠了,该命令则不能执行了,只能执行别名所代替的命令了。所以在定义别名的时候,最好不要用系统命令。
- 3.怎么确定你定义的别名是否是系统命令,你就直接敲一下你定义的别名或这whereis + 别名,看看有没有找到,如果没有找到了,说明不是一个系统命令。
注意:用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc。
这是说的第二个环境变量配置文件。注意的是,放在自己家目录中的环境变量配置文件只对自己有效。
3、Linux中常用快捷键
- Tab键:命令或文件补全
- ctrl+A:把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
- ctrl+E:把光标移动到命令行结尾。
- ctrl+C:强制终止当前的命令。
- ctrl+L:清屏,相当于clear命令。
- ctrl+U:删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便。
- ctrl+Y:粘贴ctrl+U剪切的内容。
(小写即可。)
这些都是Linux系统的快捷键,每个远程客户端都支持。