Bash Shell有很强大的匹配功能,使用通配符,我们可以寻找特定的文件和路径,能够让我们的命令更加的高效。使用通配符进行扩展匹配,首先,我们要学习并记住有哪些元字符。
匹配条件 | 匹配内容 |
* | 由0个或多个字符组成的字符串 |
? | 任何一个字符 |
[abc...] | 括起来的内容中任何一个字符 |
[!abc...] | 不在括起来内容中的任何一个字符 |
[^abc...] | 不在括起来内容中的任何一个字符 |
[[:alpha:]] | 任何字母字符 |
[[:lower:]] | 任何小写字符 |
[[:upper:]] | 任何大写字符 |
[[:alnum:]] | 任何字母或数字 |
[[:punct:]] | 除空格和字母数字以外的任何可打印字符 |
[[:digit:]] | 从0到9的任何单个数字 |
[[:space:]] | 任何一个空白字符,可以是制表符、换行符、回车符、换页符或者空格 |
一、简单模式匹配在输入命令,涉及文件名和路径作为参数时,都可以使用字符匹配,如下例子所示。
二、波浪符扩展前文提到,~代表着当前用户的家目录,为此,当使用到家目录时,可以直接使用波浪符替换。
三、大括号扩展
大括号包括的字符串以逗号隔开可以形成列表,若配合..来使用可以扩展成一个序列,大括号是可以嵌套使用的。
四、变量扩展在shell中,可以使用变量,并通过${变量名}来索引变量。需要注意${}和$()的区别,大括号表示索引,小括号表示执行命令。
五、命令替换使用$(命令)可以进行命令替换,即让命令执行的输出结果作为外部命令的输入,命令替换可以嵌套使用。命令替换除了使用$(命令),还有一种更为常见的用法,就是使用反引号`命令`,效果是一样的。
六、防止参数扩展在敲命令时,如何在某些时候让$(命令)作为命令进行执行,如何在某些时候又只作为字符串呢?有两种方法,一种是使用反斜杠进行转义,另一种是使用“”或''。需要注意的是“”只能防止大部分的参数扩展,‘’可以阻止所有的参数扩展。
七、使用帮助任何软件系统都提供了帮助功能,帮助用户更好的使用系统。Linux系统也不例外,我们可以使用man命令来查看Linux手册。Linux手册包含9个章节,如下表所示。
章节 | 内容 |
1 | 用户命令,包括可执行命令和Shell程序 |
2 | 系统调用,用户空间可以调用的系统内核例程 |
3 | 库函数,由程序库提供 |
4 | 特殊文件,如设备文件 |
5 | 文件格式,用于许多配置文件和结构 |
6 | 游戏,过去的有趣程序章节 |
7 | 惯例、标准、协议、文件系统 |
8 | 系统管理和特权命令,维护任务 |
9 | Linux内核API,内核调用 |
使用man命令获取帮助,一般采用如下两种方式:1、man 1 ls:查看章节1中关于ls的描述。2、man ls:查看手册中所有的有关ls的描述。下面截图中ls(1)表明下面展示的内容是关于ls位于第一章节的内容。
敲入man ls后,进入上述截图界面,可以使用下表中的命令进行导航,这些命令在VI编辑器里是通用的,比较好记。比较常用的有,使用空格或者page up/page down进行翻页,使用上下箭头进行单行滚动,使用G/Shift+G跳转到开头或结尾,使用/进行查询,使用N进行下一个查询,使用Q退出查看。
命令 | 描述 |
空格 | 向下翻一页 |
Page Up | 向上翻一页 |
Page Down | 向下翻一页 |
向下箭头 | 向下滚动一行 |
向上箭头 | 向上滚动一行 |
D | 向下滚动半个屏幕 |
U | 向上滚动半个屏幕 |
/关键词 | 对全文进行搜索关键词 |
N | 向下搜索下一个关键词 |
Shift+N | 向上搜索上一个关键词 |
G | 转到文档开头 |
Shift+G | 转到文档结尾 |
Q | 退出man |