一,本章内容
1,特殊字符
2,文件名通配符
3,多命令中的逻辑运算符和括号
4,命令中正则表达式
备注:本Linux系统为RHEL5.3
二,linux系统特殊字符
1,双引号
1],$ NAME=”mary”
2],echo“now time: ’date’ ” # 使用反引号引用命令输出
3],# echo $NAME | grep jhon Alix错误错误错误
# echo $NAME | grep “jhon Alix”
2,单引号
1],$ NAME=”mary”
2],echo“now time: ’date’ ” # 使用反引号引用命令输出
3],# echo $NAME | grep jhon Alix错误错误错误
# echo $NAME | grep ‘jhon Alix’
3,命令引用符反引号
# ls -l ‘cat /etc/shells’
4,变量引用和命令转换符美元符号
$表示引用一个变量,只需在变量名称前面加上”$”
# ls -l $(cat /etc/shells) # 使用命令转换符引用命令输出
5,反斜线屏蔽符
\屏蔽特殊字符本身的含义。
# echo “please pay \$15.50 .” #使用反斜线屏蔽输出字符串中的$
三,文件名通配符
1,?表示匹配文件名中任意一个字符
# ls -l a?
# ls -l a??
2,*表示匹配文件名中的任意字符串,匹配长度可以是零到一个字符,也可是很长字符组成的字符串
# ls -l *c
# ls -l ee*c
# ls -l *c?
3,[ ]字符范围匹配,用于匹配一个字符范围,其表现形式可以是“-”表示的字母和数字的范围,也可以是几个字符的组合
# ls -l [klsyz]* #以klsyz中任意字母开头的所有文件
# ls -l a*[cde]?
4,[! ]排除范围匹配符,不匹配符号内出现的字符组合或字母数字范围
# ls -l [0-9][!0-9] #有两个字符,且第一个为数字,第二个为非数字
四,多命令中的逻辑运算符和括号
1,逻辑或”||”
Command1 || command2
先执行命令1,若成功,则跳过命令2,若失败,执行命令2
# mail -f /root/mbox || echo “permission denied”
2,逻辑与”&&”
Command1 && command2
先执行命令1,若成功,执行命令2,,若失败,则跳过命令2
# mv ~/rm.txt / && echo “successfully moving files”
3,括号()与 {}
(command1 ; command2; command3...)
{command1 ; command2; command3...}
按顺序执行括号里面的命令,直至括号里面的所有命令执行结束,然后返回执行其他命令。
五,命令中正则表达式
1,”.” 单字符匹配,放在”/ /”中
“/.i....../”
“/27210103../”
2,”*” 单字符或字符串重复匹配符,用来匹配单个字符或一个字符序列的一次或多次重复出现。
“/bo */” 可匹配、bo, boo, booooo...
3,”^” 行首匹配符,用于在匹配中指示行首位置字符串或模式
“/^l/”
“/^2721010325/”
正则表达式不具备匹配文件名功能。因此不能对ls -l命令直接使用以上模式,可以将上面的模式交由一些筛选命令处理,如交由grep命令时:ls -l | gerp /^l/
4,”$” 行尾匹配符,用于在文本的每一行的行尾匹配符串模式,使用时放在匹配字符串后面
“/^.....$l/”匹配所有只有5个字符的行
“/love$/”匹配行尾是love的行
5,”\” 反斜杠屏蔽符,如屏蔽#,; ,“ , ‘, : ,*, ^, $, ?, [], \等
# expr 256 \* 256
“/\^\^\.txt/”匹配^^.txt
6,”[]” 匹配符
“/[Ll]ove/”匹配Love, love
“/[^a-Z]/”表示不匹配所有字母
7,”\<” ,”\> 词首匹配符,词尾匹配符
“/\<love/”匹配所有以love为词首的文本
“/love\>/”匹配所有以love为词尾的文本
8,”x\{\}” 重复次数匹配符
“/m\{5\}/”匹配m出现次数为5次的文本
“/m\{5,\}/”匹配m出现次数至少为5次的文本
“/m\{5,10\}/”匹配m出现次数为5到10次的文本
9,组合使用正则表达式
“/^$/”匹配空行
“/^.*$/” 用来匹配这样的整行:使用一种字符填充整行。
“/^[tT]he/”匹配以the或者The开头的所有行
“/^[^Tt]he/”排除以the或者The开头的所有行
“/[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\/”匹配一个IP地址
“/\<love\>/”精确匹配love