linux命令支持通配符的简单介绍

linux--10、管道命令符和命令行通配符

管道命令符 " | " 的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为"命令A|命令B"。

成都网站设计、成都网站建设介绍好的网站是理念、设计和技术的结合。创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

例如:

搜索rsyslogd进程: $ ps -ef | grep rsyslogd

用反野形式查看/etc 目录中有哪些文件: $ ls -l /etc/ | more

bash解释器支持多种文本通配符,包括:

我们之前在学文本查询搜索命令时就用到了通配符,例如,在 /etc 目录下搜索所有的以host开头的文件:

$ find /etc -name "host*"

另外,bash解释器还支持很多的特殊字符扩展:

例如:

先定义名称为PRICE的变量值为5

$ PRICE=5

输出“价格是5”:

输出“价格是$5”,但因为美元符号与代表变量取值的$符号冲突,所以需要用到转义字符:

使用单引号,变量将不再被取值:

执行 uname -a 后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):

通配符和正则表达式支持的命令相同吗

通配符和正则表达式支持的命令不相同。通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序,这些文本处理工具正是由于支持正则表达式才变得强大。

Linux正则表达式与通配符

正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法

grep、sed、awk天然支持正则

grep -v代表反选,反向选择匹配到的内容

grep -E代表使用扩展正则

grep -P代表使用Perl正则

sed -r 代表使用扩展正则

正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)

1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)

3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

b. 处理过程:查找文本文件中是否包含要查找的 “关键字”(关键字可以是正则表达式) ,默认返回匹配的该行的内容

c. grep|egrep处理文件时,按行处理 |

| sed | sed | sed -r | - | a. 处理对象:文本文件

b.处理操作:对文本文件的内容进行 查找、替换、删除、增加等操作

c. sed 在处理文本文件的时候,按行处理 |

| awk | - | awk | - | a. awk 处理的对象:文本文件

b. awk 处理操作:主要是对列进行操作 |

注意:egrep 或 sed -r 默认使用扩展正则表达式(EREs),一般特殊字符({})可以不转义

grep -E 以及egrep(Extend Regular Expression)

Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别 。

通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。

通配符说明

示例:* 的使用:代表任意0-N个字符,代表所有字符

4-17 Linux中的通配符

1、通配符:它由 shell 解析,一般用于搜索时匹配文件名或目录名。

2、常用通配符:

3、实操练习:

Linux系统通配符与ls命令的功能及用法

文件通配符

* 匹配零个或多个字符

? 匹配任何单个字符

~ 当前用户家目录

~mage 用户mage家目录

~+ 当前工作目录

~- 前一个工作目录

[0-9] 匹配数字范围

[a-z]:字母(或的关系)就是表示中括号中的某一个字符

[A-Z]:字母

[a-c]:a A b B c

[A-C]:A b B c C,也就是[]在里面匹配字母时是以aAbB...这样排序的

[wang] 匹配列表中的任何的一个字符

[^wang] 匹配列表中的所有字符以外的字符

{}花括号用来匹配一组用逗号分隔的字符串中的任一个。

左花括号之前的所有字符称为前文(preamble),右花括号之后的所有字符称为后文(preamble)。

前文和后文都是可选的。花括号中不能包含不加引号的空白符

预定义的字符类:man 7 glob(通配符)

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母[:lower:] 这个只相当于a-z,表示的时候必须要在加上中括号

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:图形字符

[:xdigit:]:十六进制字符

ls命令的功能:

列出当前目录的内容或指定目录

ls命令的用法:

ls [options] [files_or_dirs]

示例:

ls -a 包含隐藏文件

ls -l 显示额外的信息

ls -r 倒转排序或者可以说是逆序排列

ls -R 目录递归通过(递归会进入到子目录)

ls -ld 目录和符号链接信息

ls -1  文件分行显示(列显示)

ls –S  按从大到小排序(按文件的大小排序)

ls –t  按mtime排序(按文件的修改时间排序)

ls –u 配合-t选项,显示并按atime从新到旧排序

ls –U  按目录存放顺序显示(以创建文件的次序进行显示)

ls –X  按文件后缀排序

ls -d  列出目录本身并不显示内容

ls -h  单位换算

ls -I  --ignore(忽略)=PATTERN(模式)按着规定的模式去隐藏不进行显示

实例:

1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数

字的文件或目录

ls -d /var/l*[0-9]*[[:lower:]]

2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录

ls -d /etc/[0-9]*[^0-9]

3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符

的文件或目录

ls -d /etc/[^[:alpha:]][[:alpha:]]*

4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符

的文件或目录

ls -d /etc/rc[0-6]*

5、显示/etc目录下,所有以.d结尾的文件或目录

ls -d /etc/*.d

6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

ls -d /etc/[mnrp]*.conf

7、只显示/root下的隐藏文件和目录

ls -d /root/.*

ls -aI "[^.]*"  当前目录为/root

l. ls -d .* --color=auto 当前目录为/root

8、只显示/etc下的非隐藏目录

ls -d /etc/*/


网站名称:linux命令支持通配符的简单介绍
文章分享:http://hbruida.cn/article/doddgoo.html