1.命令别名(alias)
Note:当直接执行"alias"命令不加任何选项时,会打印出当前shell进程中已存在的命令别名
(1)alias NAME='VALUE'
定义别名"NAME",其相当于执行命令"VALUE"
例子:
alias cdnet='cd /etc/sysconfig/network-scripts'
Note:在命令行中定义的别名,仅对当前shell进程有效
(2)如果想永久定义就要编辑以下配置文件
对当前用户有效:~/.bashrc,保存后使用"source ~/.bashrc"重新读取配置文件生效
对所有用户有效:/etc/bashrc,保存后使用"source ~/.bashrc"重新读取配置文件生效
撤销别名
unalias [-a] name
-a:撤销当前shell中的所有别名定义
后面跟name就是撤销自己定义的别名
例子:
unalias cdnet #撤销上面例子中定义的别名
Note:如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND"来执行
2 通配符:glob(globbing)
bash中用于实现文件名"通配"
通配符:*,?,[]
(1)*
任意长度的任意字符
例子:
a*b:以a开头b结尾,中间是任意长度任意字符的文件,"aab,a123b,acb..."都是符合的
(2)?
任意单个字符
例子:
a?b:以a开头b结尾,中间只能有一个任意字符的文件,"a3b,acb,adb..."都是符合的
任意两个字符
例子:
a??b:以a开头b结尾,中间可以有两个任意字符的文件,"accb,a12b,addb..."都是符合的
任意三个字符(一次类推,之间匹配几个字符,就写几个"?")
.....
(3)[]
只能匹配指定范围内的任意单个字符
[0-9]:所有数字中挑一个
[a-z]:所有字符中挑一个,默认不区分大小写
[A-Z]:仅匹配大写字母
例子:
ls /tmp/a[0-9]b:这就会匹配所有以a开头,b结尾,中间是0-9之间任意一个数字的文件
专用字符集合:
[:digit:] :任意的数字,相当于0-9,[[:digit:]] = [0-9]
ls /tmp a[[:digit:]]b #匹配/tmp下a开头b结尾并且中间是任意单个数字的文件
[:lower:] :任意小写字母
ls /tmp a[[:lower:]]b #匹配/tmp下a开头b结尾并中间是单个小写字母的文件
[:upper:] :任意大写字母
ls /tmp a[[:upper:]]b #匹配/tmp下a开头b结尾并中间是单个大写字母的文件
[:alpha:] :任意大小写字母
ls /tmp a[[:alpha:]]b #匹配/tmp下a开头b结尾并中间是任意单个大小写字母的文件
[:alnum:] :数字或字母
ls /tmp a[[:alnum:]]b #匹配/tmp下a开头b结尾并中间是任意单个大小写字母以及数字的文件
[:space:] :空格字符
[:punct:] :标点符号
转义符号"\"
加入要匹配[a-z]中的"-"就要使用"\-"转义,让系统知道按照一个普通字符处理
(4)[^]
匹配指定范围之外的任意单个字符
网友评论