Linux技术学习分享-Vim 编辑器与 Shell 命令脚本【1.5】

3.3 命令行的通配符

大家可能都遇到过提笔忘字的尴尬,作为 Linux 运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?又比如,假设想要批量查看所有硬盘文件的相关权限属性,一种方式是这样的:

[root@linuxprobe ~]# ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 May 4 15:55 /dev/sda
[root@linuxprobe ~]# ls -l /dev/sda1
brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
[root@linuxprobe ~]# ls -l /dev/sda2
brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
[root@linuxprobe ~]# ls -l /dev/sda3
ls: cannot access /dev/sda3: No such file or directory

        幸亏我的硬盘文件和分区只有 3 个,要是有几百个,估计需要花费一天的时间来忙这个事情了。由此可见,这种方式的效率确实很低。虽然我们在第 6 章才会讲解 Linux 系统的存储结构和 FHS,但现在我们应该能看出一些简单规律了。比如,这些硬盘设备文件都是以 sda开头并且存放到了/dev 目录中,这样一来,即使我们不知道硬盘的分区编号和具体分区的个数,也可以使用通配符来搞定。顾名思义,通配符就是通用的匹配信息的符号,比如星号( *)代表匹配零个或多个字符,问号( ?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配 0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配 a、 b、 c 三个字符中的任意一个字符。俗话讲“百闻不如一见,看书不如实验”,下面我们就来匹配所有在/dev 目录中且以 sda 开头的文件:

[root@linuxprobe ~]# ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 May 4 15:55 /dev/sda
brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
如果只想查看文件名为 sda 开头,但是后面还紧跟其他某一个字符的文件的相关信息,
该怎么操作呢?这时就需要用到问号来进行通配了。
[root@linuxprobe ~]# ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
除了使用[0-9]来匹配 0~9 之间的单个数字,也可以用[135]这样的方式仅匹配这三个指定
数字中的一个,若没有匹配到,则不会显示出来:
[root@linuxprobe ~]# ls -l /dev/sda[0-9]
brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
[root@linuxprobe ~]# ls -l /dev/sda[135]
brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1

3.4 常用的转义字符

        为了能够更好地理解用户的表达, Shell 解释器还提供了特别丰富的转义字符来处理输入的特殊数据。刘遄老师以近十年的工作和培训为基础,愣是用了两周时间从数十个转义字符中提炼出了 4 个最常用的转义字符!这件事情也让我深刻反省了很长时间。原本认为图书写的越厚,作者越是大牛,现在发现这种观念完全是错误的,希望读者在读完本书后能体会到刘遄老师的用心付出。

4 个最常用的转义字符如下所示。

¾ 反斜杠( \):使反斜杠后面的一个变量变为单纯的字符串。

¾ 单引号( ''):转义其中所有的变量为单纯的字符串。

¾ 双引号( ""):保留其中的变量属性,不进行转义处理。

¾ 反引号( ``):把其中的命令执行后返回结果。

我们先定义一个名为 PRICE 的变量并赋值为 5,然后输出以双引号括起来的字符串与变

你可能感兴趣的:(Linux技术学习分享【1】,linux,学习,运维,安装配置,VM,虚拟机,部署虚拟环境安装Linux系统,Vim,文本编辑器,vim)