linux的環境配置文件分兩大類,一類是針對所有用戶,一類是針對當前用戶。(以下均以ubuntu為例,其他發行版大同小異)
針對所有用戶的:
/etc/profile——用戶登錄時會被執行,需要重新加載才能生效。
/etc/bash.bashrc——用戶打開bash shell時執行,重新開一個shell即可生效。
同理,針對單個用戶的:
~/.profile——用戶登錄時執行,需要重新加載才能生效。
~/.bashrc——用戶打開bash shell時執行,重新開一個shell即可生效。
在配置文件中最常寫的就是加入新的環境變量及自啟動程序。
和環境變量相關的幾個命令包括:
export ——設置某個環境變量(僅在當前shell窗口生效)
echo ——顯示某個變量
env ——顯示當前用戶所有有效的環境變量
unset ——刪除某個變量
source xxxx ——應用某個配置文件,以使變量生效(僅對當前shell)
一個常見的疏忽是,在配置文件中忘寫 export 命令,而僅僅寫成 XXX=abc,這樣只是一個本地變量而不是環境變量(即只在當前腳本裡使用的變量)。此時如果是寫在.profile中,那麼登錄完就失效了,所以在shell中是echo不到這個變量的。當然如果在這個shell中 source .profile一下,又有了。如果是寫在.bashrc中的,那麼在shell中還是可以echo到的(因為開shell的時候就會被執行),但仍然不會顯示在env命令中。所以要確保加到環境變量裡,別忘了export 。其實從export的字面意思理解更准確——輸出這個變量到環境中。