由於這部分的內容有點多,擠在一篇文章裏不容易理清思路,長篇幅也容易使人倦怠,那麼panda就把它切分成小的知識塊,咱們就從這些細碎的小文章中,一點點成長吧~
1.環境變量的功能
1.1 常見的環境變量
在命令行內輸入 “env”,就可以查看目前shell環境下的所有環境變量與其內容。panda充分利用了MAC筆記本的Terminal,利用它來練手BASH了:
- HOME
代表用戶的家目錄,還記得 Linux 系統基本操作 中,我們可以通過cd
或者cd ~
直接回到自己的home目錄,就是取用了HOME變量。 - SHELL
其內容代表目前環境使用的SHELL是哪支程序,Panda的MAC使用的是 /bin/bash - PATH
與文件搜索有關,它就是執行 文件搜索 的路徑!
不同目錄以:
分隔,文件的搜尋順序是依序由PATH的變量內的目錄來查詢,所以,目錄的順序在高效搜索文件時就顯得非常重要了 - LANG
代表語系數據,一般來說,我們中文編碼通常是zh_TW.Big5 或者 zh_TW.UTF-8
1.2 環境變量與自定義變量
👆我們通過env
可以獲取當前的環境變量信息,除了環境變量,bash還有一些與bash操作接口有關的變量,以及用戶自己定義的變量(還記得上一節提到的“變量設定”嗎?設定變量就是在自定義變量啊~)
如果我們想查看當前shell的所有變量信息,僅僅通過“env”獲取環境變量就不能滿足我們的“好奇心”了,那就要通過“set”來觀察了。
命令行中輸入set
後,屏幕裏密密麻麻就出現了一大堆符號,還是拿鳥哥里面的圖片來做解釋吧:
一般來說,不論是環境變量還是與shell操作接口 相關的變量,通常都設定爲大寫字符。基本上,在Linux預設的情況下,使用{大寫的字母}來設定的變量爲系統內定需要的變量。這也是爲什麼我們上一節在學習“變量設定”時,鼓勵大家使用小寫字母來設定自定義變量的原因,講幾個其中比較重要的變量吧。
- PSI 提示字符的設定
-- \d : 可顯示出日期格式
-- \H : 完整的主機名
-- \h : 僅取主機名在第一個小數點之前的名字
-- \t :顯示時間,爲24小時格式的「HH:MM:SS」
-- \T : 顯示時間,爲12小時格式的「HH:MM:SS」
-- \A : 顯示時間,爲12小時格式的「HH:MM」
-- \u : 顯示使用者的賬號名稱
-- \w :完整的工作目錄名稱
-- \W : 利用 basename 函數取得工作目錄名稱,所以僅會列出最後一個目錄名
-- # : 下達的第幾個指令
-- \ 了
怎麼更改自己登陸服務器後的提示符?以圖爲例吧:
- $
“$” 本身也是個變量,它代表的是“目前這個shell的線程代號”,也就是所謂的PID(Process ID),如果想知道我們的shell的PID,直接輸入命令$$
就可以了。 - ?
? 也是一個特殊的變數,這個變數是:上一個執行的指令 回傳的值
當我們執行某些指令時,這些指令都會回傳一個執行後的代碼。一般來說,如果成功得執行該指令,會回傳一個0值(說明沒有出現問題),如果執行發生錯誤,就會回傳“錯誤代碼”,一般都是非0數值。通過圖中的示例你會理解得更方便:
1.3 自定義變量轉成環境變量 (export)
當你登入Linux並取得一個bash之後,你的bash就是一個獨立的程序,這個程序的識別使用的是一個稱爲程序標識符的東西,也就是PID。接下來你在這個bash底下所下達的任何指令都是由這個bash所衍生出來的,那些被下達的指令就被稱爲子程序了。
子程序僅會繼承父程序的環境變量,子程序不會繼承父程序的自定義變量,所以需要 export 變量名稱
,將自定義變量轉成環境變量。