1. 程式人生 > >bash環境配置檔案

bash環境配置檔案

定義變數:
普通變數:variable-name=string
系統變數:export variable-name=string
注意:父程序中的環境變數在子程序中依然有效,但是父程序中的普通變數在子程序中是無效的;但是在子程序中定義的任何變數(普通以及系統)在父程序中是無效的;
若是在bash中設定變數(普通或環境),當關閉bash時,變數就銷燬。只有寫到配置檔案,才會長期有效。


顯示變數:echo $variable-name
取消變數:unset variable-name


env:檢視環境變數
set:檢視所有變數(環境變數與自定義變數)



系統級:
/etc/profile  
/etc/bashrc
1.每個使用者登入取得bash時一定會讀取這兩配置檔案,可用於設定全域性環境變數;
2.修改這兩個檔案後,修改結果不會立即產生,需要重新登入Shell或者使用source(或者.)顯式執行配置檔案;
3.unset variable-name指令可以在此Shell下遮蔽變數,若需要重新使用該變數,方法為使用source(或者.)顯式執行配置檔案;
4./etc/profile被執行時會呼叫外部設定的資料:/etc/profile.d/*.sh,/etc/inputrc,/etc/sysconfig/i18n;
5.變數是被載入到記憶體的,即使恢復了配置檔案的修改,但是沒有斷開Shell,則上次載入的變數韓式有效的。



使用者級:
~/.bash_profile,~/.bash_login,~/.profile
~/.bashrc
1.對於~/.bash_profile,~/.bash_login,~/.profile三個檔案,有的系統可能只有上述檔案中的一個,有的系統可能含有多個,但是所有系統只讀取三者
中的一個,~/.bash_profile優先順序最高,若~/.bash_profile不存在,則會讀取次優先順序檔案~/.bash_login;
2.~/.bashrc:被~/.bash_profile檔案包含;
3.對於普通使用者的自定義變數,root使用者預設時不能使用的,除非root使用者使用source(或者.)執行普通使用者的配置檔案,但是這些普通使用者的自定義變數只對
root的此Shell有效,root離開中斷後就變為無效了;
4.unset variable-name指令可以在此Shell下遮蔽變數,若需要重新使用該變數,方法為使用source(或者.)顯式執行配置檔案;
5.變數是被載入到記憶體的,即使恢復了配置檔案的修改,但是沒有斷開Shell,則上次載入的變數韓式有效的。