一,本章內容
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