如何給Ubuntu正確地設定永久環境變數並立即生效
本文內容如下:
-
什麼是環境變數?
-
哪些檔案下可以設定環境變數,它們有什麼區別?
-
正確設定永久環境變數並立即生效
1. 什麼是環境變數
環境變數(environment variables)一般是指在作業系統中用來指定作業系統執行環境的一些引數,這些引數會對系統行為產生影響。
比如常用的PATH
環境變數,當要求系統執行一個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還會到PATH
中指定的路徑去找。你可以在終端使用printenv PATH
檢視當前PATH
變數的值。
2. 使用者環境變數和系統環境變數
Ubuntu系統包含兩類環境變數:系統環境變數和使用者環境變數
使用者環境變數可儲存在以下檔案中:
- ~/.profile
- ~/.bashrc, ~/.bash_profile, ~/.bash_login
推薦將環境變數儲存在
~/.profile
中,因為無論是通過控制檯還是圖形介面啟動程式時,都會自動執行該檔案。
而~/.bashrc, ~/.bash_profile, ~/.bash_login
這些檔案,當通過shell啟動程式時,它們也會被載入;但當通過圖形介面環境啟動程式時,這些檔案中的環境變數設定便不可用了。
系統環境變數可儲存在以下檔案中:
-
/etc/profile
-
/etc/profile.d(它是資料夾)
-
/etc/bash.bashrc
/etc/profile
和/etc/profile.d
都是常用的設定環境的地方。其中/etc/profile.d
資料夾來源於/etc/profile
,在該目錄下的*.sh
,即以sh為字尾的檔案都會被載入。
類似地,不推薦使用/etc/bash.bashrc
,因為在圖形介面環境下啟動程式時,不會載入它裡邊的環境變數設定。
3. 設定永久環境變數例項(以/etc/profile為例)
gedit /etc/profile
#vim也行
在檔案末尾處新增如下,儲存並退出:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0 export PATH=$PATH:$JAVA_HOME/bin
其中,
export
命令:使得變數真正輸出成為環境變數。
等號=左邊為變數名,右邊為變數實際值。export後,可以通過$variable_name
的形式訪問變數,如$JAVA_HOME
,即可替換為JAVA_HOME=/usr/lib/jvm/jdk1.7.0
。
PATH變數中通常有多個指定路徑,中間用冒號隔開。拼接上$PATH
變數,則不影響原先的路徑設定。
環境變數更改後,在使用者下次登陸時生效。如果想立刻生效,則執行下面的語句
source /etc/profile
注意:請在使用時將路徑替換為你電腦下的實際路徑。
如果只是測試,直接複製上面的命令也行,只不過最後會提示“No such file or directory”。
4. 檢視環境變數是否已經生效
在控制檯下輸入
$JAVA_HOME
$PATH
可以看到,環境變數已經生效了!