Linux Shell特殊字符和控制字符
?Shell特殊字符
#?注釋
-
表示注釋???#注釋
-
在引號中間和\#等表示#本身
-
echo?${PATH#*:}?#?參數替換,不是一個注釋
-
echo?$((?2#101011?))?#?數制轉換,不是一個注釋
-
命令分隔,在一行中寫多個命令??echo?"aa"?;?echo?"bb"
-
在條件中的if和then如果放在同一行,也用;分隔
-
命令:source
-
文件名的前綴,隱藏文件
-
目錄:.當前目錄,..父目錄
-
正則表達式:匹配任意單個字符
-
空操作
-
死循環:????while?:
-
在if/then中表示什么都不做,引出分支
-
設置默認參數:???:?${username=`whoami`}
-
變量替換:????:?${HOSTNAME?}?${USER?}?${MAIL?}
- 在和?>?(重定向操作符)結合使用時,把一個文件截斷到0?長度,沒有修改它的權限;如果文件在之前并不存在,那么就創建它.如:????? :?>?data.xxx?#文件"data.xxx"現在被清空了.?與?cat?/dev/null?>data.xxx?的作用相同?然而,這不會產生一個新的進程,因為":"是一個內建命令. 在和>>重定向操作符結合使用時,將不會對想要附加的文件產生任何影響. 如果文件不存在,將創建.
-
取變量的值?echo?$PATH
-
正則表達式中表示行的結尾
-
${}?參數替換?${PAHT}
-
$*?所有參數
-
$#?參數個數
-
$$?進程的ID
-
$??進程的返回狀態
-
命令組,在一個子Shell中運行???(a=3;echo?$a)?其中定義的變量在后面不可用
-
數組初始化:?array=(a,b,c)
-
測試?[-z?$1]
-
數組元素?a[1]='test'
-
[[]]表示測試?使用[[?...?]]條件判斷結構,?而不是[?...?],?能夠防止腳本中的許多邏輯錯誤.?比如,?&&,?||,?<,?和>?操作符能夠正常存在于[[?]]條件判斷結構中,?但是如果出現在[?]結構中的話,?會報錯.
-
((?))數學運算
-
在正則表達式中表示范圍?[a-z]
?
\<,\>?正則表達式中的單詞邊界.如:bash$grep?'\<the\>'?textfile |?管道 >|?強制重定向(即使設置了noclobber?選項--就是-C?選項).這將強制的覆蓋一個現存文件. ||?邏輯或操作?;用在兩個命令之間的時候,表示在前一個命令結束時,若返回值為?false,繼續執行下一個命令 &&?邏輯與;用在兩個命令之間的時候,表示在前一個命令結束時,若返回值為?true,繼續執行下一個命令 &?后臺運行 --
參數選項
-
減號
-
重定向stdin和stdout:cd?/source/directory?&&?tar?cf?-?.?)?|?(cd?/dest/directory?&&?tar?xpvf?-)
-
先前的工作目錄?cd?-
-
注:使用-開頭的文件名和變量名可能會出現一些問題
控制字符
修改終端或文本顯示的行為.?.?控制字符以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?回車.
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將會刪除當前光標到左邊第一個非字母或數字之間的全部字符.
轉載于:https://blog.51cto.com/wzktravel/1100275
總結
以上是生活随笔為你收集整理的Linux Shell特殊字符和控制字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数分解问题:把一个数分解成很多数
- 下一篇: 云南丽江必买特产