1. 程式人生 > >如何給Ubuntu正確地設定永久環境變數並立即生效

如何給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

可以看到,環境變數已經生效了!