歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux Shell特殊字符和控制字符

Linux Shell特殊字符和控制字符   Shell特殊字符 # 注釋 表示注釋   #注釋 在引號中間和\#等表示#本身 echo ${PATH#*:} # 參數替換,不是一個注釋 echo $(( 2#101011 )) # 數制轉換,不是一個注釋    www.2cto.com   ; 分隔 命令分隔,在一行中寫多個命令  echo "aa" ; echo "bb" 在條件中的if和then如果放在同一行,也用;分隔 ;; case條件的結束   . 命令相當於source命令 命令:source 文件名的前綴,隱藏文件 目錄:.當前目錄,..父目錄 正則表達式:匹配任意單個字符 "" 部分引用 支持通配符擴展   '  ‘ 全引用,不進行通配符擴展   \ 轉義   / 目錄分隔符   ,  多個命令都被執行,但返回最後一個   ` 後置引用   : 操作符 空操作 死循環:    while : 在if/then中表示什麼都不做,引出分支 設置默認參數:   : ${username=`whoami`} 變量替換:    : ${HOSTNAME?} ${USER?} ${MAIL?} 在和 > (重定向操作符)結合使用時,把一個文件截斷到0 長度,沒有修改它的權限;如果文件在之前並不存在,那麼就創建它.如:        : > data.xxx #文件"data.xxx"現在被清空了. 與 cat /dev/null >data.xxx 的作用相同 然而,這不會產生一個新的進程,因為":"是一個內建命令. 在和>>重定向操作符結合使用時,將不會對想要附加的文件產生任何影響. 如果文件不存在,將創建. * 匹配0個或多個字符;數學乘法;**冪運算   ? 匹配任意一個字符;但在((a>b?a:b))表示c語言中的三目運算   $  取變量的值 echo $PATH 正則表達式中表示行的結尾 ${} 參數替換 ${PAHT} $* 所有參數 $# 參數個數 $$ 進程的ID $? 進程的返回狀態 ( ) 命令組,在一個子Shell中運行   (a=3;echo $a) 其中定義的變量在後面不可用 數組初始化: array=(a,b,c) { } 代碼塊,即一個匿名函數,但其中定義的變量在後面依然可用   { } \; 用在find的-exec中 $find -name *.txt -exec cat {} \;   [ ] 測試 [-z $1] 數組元素 a[1]='test' [[]]表示測試 使用[[ ... ]]條件判斷結構, 而不是[ ... ], 能夠防止腳本中的許多邏輯錯誤. 比如, &&, ||, <, 和> 操作符能夠正常存在於[[ ]]條件判斷結構中, 但是如果出現在[ ]結構中的話, 會報錯. (( ))數學運算 在正則表達式中表示范圍 [a-z] < <<  >  重定向和進程替換  ls -al > a.txt   >  <  還用在ASCII比較 if [[ "$veg1" < "$veg2" ]]   \<,\> 正則表達式中的單詞邊界.如:bash$grep '\<the\>' textfile   | 管道   >| 強制重定向(即使設置了noclobber 選項--就是-C 選項).這將強制的覆蓋一個現存文件.   || 邏輯或操作 ;用在兩個命令之間的時候,表示在前一個命令結束時,若返回值為 false,繼續執行下一個命令   && 邏輯與;用在兩個命令之間的時候,表示在前一個命令結束時,若返回值為 true,繼續執行下一個命令   & 後台運行   - 參數選項 減號 重定向stdin和stdout:cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -) 先前的工作目錄 cd - 注:使用-開頭的文件名和變量名可能會出現一些問題 +   一個命令或者過濾器的選項標記.   ~ home目錄 ~+ 當前工作目錄 ~- 先前工作目錄   ^ 正則表達式中表示行首   $IFS 用來做一些輸入命令的分隔符, 默認情況下是空白.   控制字符   修改終端或文本顯示的行為. . 控制字符以CONTROL + key這種方式進行組合(同時按下). 控制字符也可以使用8進制或16進制表示法來進行表示, 但是前邊必須要加上轉義符.   控制字符在腳本中不能正常使用.   Ctl-B退格(非破壞性的), 就是退格但是不刪掉前面的字符.   Ctl-C終結一個前台作業.   Ctl-D   從一個shell中登出(與exit很相像).             "EOF"(文件結束). 這也能從stdin中終止輸入.             在console或者在xterm窗口中輸入的時候, Ctl-D將刪除光標下字符. 當沒有字符時, Ctl-D將退出當前會話, 在一個xterm窗口中, 則會產生關閉此窗口的效果.   Ctl-G "哔" (beep). 在一些老式的打字機終端上, 它會響一下鈴.   Ctl-H "退格"(破壞性的), 就是在退格之後, 還要刪掉前邊的字符.   Ctl-I 水平制表符.   Ctl-J 重起一行(換一行並到行首). 在腳本中, 也可以使用8進制表示法 -- '\012' 或者16進制表示法 -- '\x0a' 來表示.   Ctl-K垂直制表符.   Ctl-L 清屏(清除終端的屏幕顯示). 在終端中, 與clear命令的效果相同. 當發送到打印機上時, Ctl-L會讓打印機將打印紙卷到最後.   Ctl-M 回車.  www.2cto.com     Ctl-Q 恢復(XON).在一個終端中恢復stdin.   Ctl-S 掛起(XOFF).          在一個終端中凍結stdin. (使用Ctl-Q可以恢復輸入.)   Ctl-U 刪除光標到行首的所有字符. 在某些設置下, 不管光標的所在位置Ctl-U都將刪除整行輸入.   Ctl-V當輸入字符時, Ctl-V允許插入控制字符.    Ctl-V主要用於文本編輯.   Ctl-W  當在控制台或一個xterm窗口敲入文本時, Ctl-W將會刪除當前光標到左邊最近一個空格間的全部字符. 在某些設置下, Ctl-W將會刪除當前光標到左邊第一個非字母或數字之間的全部字符.
 
Copyright © Linux教程網 All Rights Reserved