Linux Shell中的變數-環境變數
參考:《Linux命令 / 編輯器與Shell程式設計》
################################################
note that :與其他程式語言不同,Bash中的變數沒有資料型別的區別,變數中的值都是以字串的形式儲存的,如果要進行數值計算,需要進行特殊轉換
Linux Shell下的變數按其使用目的可分為3種類型:
環境變數:用於儲存作業系統執行時使用的環境引數
位置變數:Bash將傳遞給指令碼的引數儲存在位置變數中,以便於在指令碼中引用這些引數
預定義變數:由系統保留和維護的一組特殊的變數,這些變數通常用於儲存程式執行狀態等
自定義變數:由使用者自行定義的變數,可用於使用者編寫的指令碼,多個命令間的值傳遞等
#########################################################
儲存系統執行情況的環境變數
系統環境變數是使用者登陸系統時,由系統自動生成並設定的一組變數。所有的程序 / 指令碼都可以引用這些變數,因此環境變數的值通常與系統息息相關。
可使用set命令檢視環境變數
# set
1.系統中常見的環境變數
(1)家目錄位置變數HOME
HOME變數用於儲存當前登陸使用者的家目錄位置,這個變數的值是由系統使用者檔案/etc/passwd中的使用者家目錄欄位定義的。檢視當前使用者的家目錄如下:
#使用echo命令檢視變數HOME的值 # echo $HOME
(2)系統語言變數LANG
LANG變數用於儲存系統當前使用的語言,如果要臨時修改當前系統使用的語言,通常可以通過修改該變數的值來實現。檢視當前系統使用的語言如下:
#檢視變數LANG中儲存的系統語言
# en_US.UTF-8表示英語 zh_CN.UTF-8表示簡體中文
# echo $LANG
臨時修改系統語言可以重新指定此變數的值:
#修改環境變數LANG的值為zh_CN.UTF-8
# LANG=zh_CN.UTF-8
(3)互動程式變數SHELL
SHELL變數用於儲存使用者當前使用的Shell。可以通過檢視該變數值的方法,快速檢視當前使用的Shell
#快速檢視當前使用者使用的Shell # echo $SHELL
(4)命令搜尋路徑變數PATH
PATH變數用於儲存當前使用者使用的命令搜尋路徑。當用戶輸入命令時,系統會嘗試在該變數儲存的目錄中查詢命令檔案
#通過檢視變數PATH值的方法檢視當前使用者的命令搜尋路徑
# echo $PATH
note that:PATH使用冒號":"將不同的目錄分隔開
2.只讀環境變數
只讀環境變數的值是無法更改的
#使用readonly命令檢視只讀環境變數
# readonly
3.如何修改環境變數
可以在命令提示符中修改環境變數,但在命令提示符中修改的環境變數將在使用者重新登入 / 系統重啟後消失,這是可以在配置檔案中修改環境變數:
/etc/profile:全域性使用者配置檔案。如果修改了此檔案的設定,修改的設定將會影響系統中的所有使用者
~/.bash_profile:使用者個人配置檔案。如果修改了此檔案中的變數,修改的設定只會影響單個使用者
/etc/bashrc:全域性環境變數配置檔案。此檔案中定義了所有使用者的環境變數
~/.bashrc:個人環境變數配置檔案。此檔案中定義了使用者的環境變數
note that:~表示家目錄 .bash_profile和.bashrc是隱藏檔案(.開頭的為隱藏檔案) 以上四個檔案單獨修改一個即可,且有時可能某個檔案不存在
如果想讓修改後的環境變數立即生效,可以執行命令:
# source xxx #xxx表示你修改的檔案
例如 source /etc/profile