bash特性

命令行編輯

光標(biāo)跳轉(zhuǎn):
ctrl+a: 調(diào)到命令行首
ctrl+e :跳到命令行尾
ctrl+u:刪除光標(biāo)至命令行首的內(nèi)容
ctrl+x:刪除光標(biāo)至命令行尾的內(nèi)容
ctrl+左右方向鍵:跳轉(zhuǎn)一個(gè)單詞
ctrl+l:清屏

命令歷史:

命令歷史保存在內(nèi)存緩沖區(qū)內(nèi),退出登錄后歷史會(huì)保存至家目錄的隱藏文件內(nèi)

查看命令歷史:$history
-c :清空整個(gè)命令歷史
-d offest 【n】 :清楚指定命令歷史
-w :保存命令歷史至文件
$ 上下鍵
$ !n      :執(zhí)行命令歷史第n條命令 
$ !!      :執(zhí)行上一條命令
$ !string : 執(zhí)行,命令歷史中以string開頭的命令
$ !$      :引用上一個(gè)命令的最后一個(gè)參數(shù)或者按一下esc再按一下 .

命令補(bǔ)全:

tab鍵
連敲兩次可以顯示所有該補(bǔ)全命令,也可補(bǔ)全當(dāng)前文件及目錄(路徑)

環(huán)境變量

PATH     :命令搜索路徑
HISTSIZE :命令歷史緩沖區(qū)大小
SHELLE   :保存當(dāng)前系統(tǒng)用戶的shell
$ echo $SHELL

別名

$ alias CMDALIAS = 'COMMAND [options] 【arguments】'
       在shell中定義的別名僅在當(dāng)前shell生命周期中有效,別名的有效范圍僅在當(dāng)前shell進(jìn)程
$ alias 顯示當(dāng)前系統(tǒng)的所有別名
$ unalias CMDALIAS 取消別名

如果定義的別名是命令本身的名字和參數(shù)的組合,即別名和原命令名字相同,此時(shí)如果想使用原命令而不是別名只需要在命令前面加上
但是,上述設(shè)置方法存在一個(gè)問題,也即設(shè)置的命令別名只針對(duì)當(dāng)前回話有效,一旦連接斷開并重連之前設(shè)置的別名別不在有效。
可以通過將設(shè)置別名的命令寫進(jìn)啟動(dòng)文件使別名持久生效。大多數(shù)Linux發(fā)行版使用下述三個(gè)啟動(dòng)文件中的一個(gè):

$ HOME/.bash_profile
$ HOME/.bash_login
$ HOME/.profile

可將設(shè)置別名的命令寫進(jìn)啟動(dòng)文件內(nèi),這樣,每次連入系統(tǒng)的時(shí)候別名都會(huì)生效。若想在命令寫入啟動(dòng)文件后立即生效記得執(zhí)行source命令,比如:

$ source $HOME/.bash_profile

通過上述方式設(shè)置命令別名解決了命令別名只針對(duì)回話生效的問題,但是,寫進(jìn)每個(gè)用戶特定的主目錄下的啟動(dòng)文件中的命令別名只針對(duì)該用戶有效。對(duì)其他 用戶沒有什么效果,這通常也是正常情況下期望看到的情況。但如果確實(shí)像使設(shè)置的別名對(duì)任意用戶有效則可將設(shè)置別名的命令寫進(jìn)全局啟動(dòng)文件中,如/etc /profile。

命令替換

esc按下后再按 . 可以補(bǔ)全上一個(gè)命令的最后一個(gè)參數(shù)
$ $(COMMAND) 或COMMAND(反引號(hào))
把命令中的某個(gè)子命令替換為其執(zhí)行結(jié)果的過程
例如

$ echo "The current directory is $(pwd) "

例如

$ touch ./file-$(date+%F-%H-%M-%S).txt

注 (bash支持的引號(hào)):

“ ”:弱引用,可以實(shí)現(xiàn)變量替換
' ' :強(qiáng)引用,不完成變量替換
`` : 命令替換

文件名通配(globbing)

符號(hào) 說明
* 任一長度的任意字符
任意發(fā)、單個(gè)字符
[] 匹配指定范圍內(nèi)的任意單個(gè)字符

例如:

 [abc] 是從abc三個(gè)字符中選一個(gè)

[a-z] a到z之間的所有小寫字母
[A-Z] A-Z 之間的所有大寫字母
[0-9] 0-9之間的數(shù)字
[a-zA-Z] 兩個(gè)范圍的并
[^] : 匹配指定范圍之外的任意單個(gè)字符(托字符后面要加字母集合)

以下為bash規(guī)定的部分特殊集合表示方式

符號(hào) 說明
[:space:] 空白字符
[:punct:] 標(biāo)點(diǎn)符號(hào)
[:lower:] 字母小寫
[:uper:] 字母大寫
[:alpha:] 大小寫字母
[:digit:]: 數(shù)字
[:alnum:] 數(shù)字和大小寫字母

例如:
顯示/etc目錄下,以非字母開頭,后面跟了一個(gè)字母及其它任意長度字符的文件或目錄;
# ls /etc/[^[:alpha:]][[:alpha:]]*
遺留問題匹配不包含空格且以數(shù)字結(jié)尾的文件名稱

*[^[:space:]]*[0-9]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 100,585評(píng)論 9 468
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 一、命令歷史特性:history shell進(jìn)程會(huì)其會(huì)話中保存此前用戶提交執(zhí)行過的命令 history是shell...
    約落小宮山閱讀 418評(píng)論 0 0
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,182評(píng)論 2 33
  • 心無處安放總是累的!昨天發(fā)現(xiàn)一根白頭發(fā),心情郁悶,調(diào)整心態(tài),善待自己!
    時(shí)光擱淺I閱讀 165評(píng)論 0 0

友情鏈接更多精彩內(nèi)容