『无欲则无求』Linux常用命令 — 30、通配符or正则表达式or别名or常用快捷键

    技术2022-07-10  125

    文章目录

    1、Linux中通配符与正则表达式区别(1)通配符:(2)正则表达式: 2、Linux别名命令3、Linux中常用快捷键

    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系统的快捷键,每个远程客户端都支持。

    Processed: 0.012, SQL: 9