bash的主要優(yōu)點(diǎn)如下:
- 可以通過
history
查看命令的歷史記錄 - 命令和文件路徑補(bǔ)全的好幫手-->TAB
- 命令別名
alias
- 工作控制回梧、前景背景控制: (job control, foreground, background)
- 自動(dòng)化腳本shell scripts
- 通配符
* 匹配 0 或多個(gè)字符
? 匹配任意一個(gè)字符
[list] 匹配 list 中的任意單一字符
[!list] 匹配 除list 中的任意單一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串
{c2..c2} 匹配 c1-c2 中全部字符 如{1..10}
注:使用type COMMAND
可以判斷命令是不是Bash shell 內(nèi)置命令
Bash shell 命令快速編輯
按鍵 作用
Ctrl+d 鍵盤輸入結(jié)束或退出終端
Ctrl+s 暫定當(dāng)前程序废岂,暫停后按下任意鍵恢復(fù)運(yùn)行
Ctrl+z 將當(dāng)前程序放到后臺(tái)運(yùn)行,恢復(fù)到前臺(tái)為命令fg
Ctrl+a 將光標(biāo)移至輸入行頭狱意,相當(dāng)于Home鍵
Ctrl+e 將光標(biāo)移至輸入行末湖苞,相當(dāng)于End鍵
Ctrl+k 刪除從光標(biāo)所在位置到行末
Alt+Backspace 向前刪除一個(gè)單詞
Shift+PgUp 將終端顯示向上滾動(dòng)
Shift+PgDn 將終端顯示向下滾動(dòng)
Bash shell中的變量
- 獲取變量:
echo $variable
如
echo $HOME
echo $PATH 或echo ${PATH}
- 設(shè)置變量
Var=value
- 刪除變量
unset Var
- 如果需要該變量在其他子程序中執(zhí)行,則需要以
export
時(shí)該變量變?yōu)榄h(huán)境變量export PATH
注:
- 雙引號(hào)仍然可以保有變量的內(nèi)容详囤,但單引號(hào)內(nèi)僅能是一般字元 财骨,而不會(huì)有特殊符號(hào)
- 在一串指令中,在 ` 之內(nèi)的指令將會(huì)被先執(zhí)行,而其執(zhí)行出來的結(jié)果將??做為外部的輸入信息隆箩!
環(huán)境變量
用 env 觀察環(huán)境變數(shù)與常見環(huán)境變量說明:
HOME
代表使用者的家目錄滑肉。還記得我們可以使用 cd ~ 去到自己的家目錄嗎?或者利用 cd 就可以直接回到使用者家目錄了摘仅。那就是取用這個(gè)變數(shù)啦~ 有很多程式都可能會(huì)取用到這個(gè)變數(shù)的值!SHELL
告知我們问畅,目前這個(gè)環(huán)境使用的 SHELL 是哪支程式娃属? Linux 預(yù)設(shè)使用 /bin/bash 的啦!HISTSIZE
這個(gè)與『歷史命令』有關(guān)护姆,亦即是矾端, 我們?cè)?jīng)下達(dá)過的指令可以被系統(tǒng)記錄下來,而記錄的『筆數(shù)』則是由這個(gè)值來設(shè)定的卵皂。MAIL
當(dāng)我們使用 mail 這個(gè)指令在收信時(shí)秩铆,系統(tǒng)會(huì)去讀取的郵件信箱檔案 (mailbox)。PATH
就是執(zhí)行檔搜尋的路徑啦~目錄與目錄中間以冒號(hào)(:)分隔灯变, 由于檔案的搜尋是依序由 PATH 的變數(shù)內(nèi)的目錄來查詢殴玛,所以,目錄的順序也是重要的喔添祸。LANG
這個(gè)重要滚粟!就是語(yǔ)系資料啰~很多訊息都會(huì)用到他, 舉例來說刃泌,當(dāng)我們?cè)趩?dòng)某些perl 的程式語(yǔ)言檔案時(shí)凡壤,他會(huì)主動(dòng)的去分析語(yǔ)系資料檔案, 如果發(fā)現(xiàn)有他無法解析的編碼語(yǔ)系耙替,可能會(huì)產(chǎn)生錯(cuò)誤喔亚侠!一般來說,我們中文編碼通常是 zh_TW.Big5 或者是 zh_TW.UTF-8俗扇,這兩個(gè)編碼偏偏不容易被解譯出來硝烂,所以,有的時(shí)候狐援,可能需要修訂一下語(yǔ)系資料钢坦。這部分我們會(huì)在下個(gè)小節(jié)做介紹的!RANDOM
這個(gè)玩意兒就是『隨機(jī)亂數(shù)』的變數(shù)啦啥酱!目前大多數(shù)的 distributions 都會(huì)有亂數(shù)產(chǎn)生器爹凹,那就是 /dev/random 這個(gè)檔案。我們可以透過這個(gè)亂數(shù)檔案相關(guān)的變數(shù) ($RANDOM) 來隨機(jī)取得亂數(shù)值喔镶殷。在 BASH 的環(huán)境下禾酱,這個(gè) RANDOM 變數(shù)的內(nèi)容,介于 0~32767 之間,所以颤陶,你只要 echo $RANDOM 時(shí)颗管,系統(tǒng)就會(huì)主動(dòng)的隨機(jī)取出一個(gè)介于 0~32767 的數(shù)值。萬一我想要使用 0~9 之間的數(shù)值呢滓走?呵呵~利用 declare 宣告數(shù)值類型垦江, 然后這樣做就可以
set
可以查看所有的變量
自定義變量和環(huán)境變量最大的區(qū)別在于是否會(huì)被子程序所繼續(xù)引用,因?yàn)樽映绦騼H會(huì)繼承父程序的環(huán)境變量搅方, 而不會(huì)繼承父程序的自定義變量
自定義變量-->環(huán)境變量 export Var
環(huán)境變量 --> 自定義變量 declare