對bash shell你真的了解嗎

bash shell功能:

1、命令記憶能能力

bash中有一個功能是記錄你曾經輸入過的命令,這個功能相當棒,默認是記錄1000條,幾乎是最近可能再次使用的所有命令了,這些命令存在於~/.bash_history中,但是此文件記錄的是上一次登錄以前的所有命令.而當前登錄的所有使用過的令存在內存中,成功登出系統後才會記錄到~/.bash_history中.

2、文件和命令補全功能(tab鍵)

此功能不用過多介紹,熟悉linux的小夥伴們,肯定明白此功能是多麼有用(懶人必備)

3、設置命令別名功能

舉個例子,假設你經常需要使用一個很長的命令eg:ps aux|grep xxx(此命令很短,假設很長),我們可以另命名,alias lp="ps aux|grep xxx",以後就可以執行lp來代替ps aux|grep xxx,很方便

4、程序化腳本

腳本,腳本,腳本啊,萬能的腳本,linux世界中腳本幾乎可以支配一切.

5、萬用字符

除了完整的字串之外, bash 還支持許多的萬用字符來幫助使用者查詢與指令下達。 舉例來說,想要知道 /usr/bin 下面有多少以 X 為開頭的文件嗎?使用:“ ls -l /usr/bin/X* ”就能夠知道囉~此外,還有其他很多地方可供利用的萬用字符

查詢指令是否為bash shell內置指令:type

如果想要了解bash的詳細使用說明文檔,可以使用man bash超級詳細的,幾天幾夜都看不完.言歸正傳,type使用簡介

type [-tpa] order_name選項與參數:

:不加任何選項與參數時,type 會顯示出 name 是外部指令還是 bash 內置指令

-t :當加入 -t 參數時,type 會將 name 以下面這些字眼顯示出他的意義:

file :表示為外部指令;

alias :表示該指令為命令別名所設置的名稱;

builtin :表示該指令為 bash 內置的指令功能;

-p :如果後面接的 name 為外部指令時,才會顯示完整文件名;

-a :會由 PATH 變量定義的路徑中,將所有含 name 的指令都列出來,包含 alias

alias示例:

對bash shell你真的瞭解嗎

ls 也是使用alias別名設置的指令

builtin示例:

對bash shell你真的瞭解嗎

Shell變量的功能

shell有很多變量,具體可以通過env、export命令去終端查看,這裡我們只介紹一個經常用到了語系變量locale

運行locale 命令看一下有哪些與語系有關的變量

對bash shell你真的瞭解嗎

zh_TW.big5 大五碼的中文編碼

zh_TW.utf8 萬國碼的中文編碼

en_US.utf8 英文編碼

如果你要更換語系的話,可以對每個變量逐一更改,但事實上,我們只需要更改LANG與LC_ALL兩個變量而已,其他變量都會被這兩個變量取代。另外還有一種奇怪的現象,為什麼在linux主機終端接口(tty1-tty6)的環境下,設置了LANG=zh_TW.utf8,使用man或者其他有中文信息輸出的命令時中文會有亂碼。因為在 Linux 主機的終端機接口環境下是無法顯示像中文這麼複雜的編碼文字, 所以就會產生亂碼了。也就是如此,我們才會必須要在 tty1 ~ tty6 的環境下, 加裝一些中文化接口的軟件,才能夠看到中文啊!不過,如果你是在 MS Windows 主機以遠端連線服務器的軟件連線到主機的話,那麼,嘿嘿!其實命令行確實是可以看到中文的。 此時反而你得要在 LC_ALL 設置中文編碼才好呢!

下一章接著本章介紹BASH的命令別名和歷史命令

對bash shell你真的瞭解嗎

謝謝各位小夥伴們


分享到:


相關文章: