歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 設置Linux環境變量的方法和區別

設置Linux環境變量的方法和區別

日期:2017/2/28 14:22:39   编辑:Linux教程

設置 Linux 環境變量可以通過 export 實現,也可以通過修改幾個文件來實現,有必要弄清楚這兩種方法以及這幾個文件的區別。

通過文件設置 Linux 環境變量

首先是設置全局環境變量,對所有用戶都會生效:

  • etc/profile: 此文件為系統的每個用戶設置環境信息。當用戶登錄時,該文件被執行一次,並從 /etc/profile.d 目錄的配置文件中搜集shell 的設置。一般用於設置所有用戶使用的全局變量。
  • /etc/bashrc: 當 bash shell 被打開時,該文件被讀取。也就是說,每次新打開一個終端 shell,該文件就會被讀取。

接著是與上述兩個文件對應,但只對單個用戶生效:

  • ~/.bash_profile 或 ~/.profile: 只對單個用戶生效,當用戶登錄時該文件僅執行一次。用戶可使用該文件添加自己使用的 shell 變量信息。另外在不同的LINUX操作系統下,這個文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系統一般是 ~/.profile 文件。
  • ~/.bashrc: 只對單個用戶生效,當登錄以及每次打開新的 shell 時,該文件被讀取。

此外,修改 /etc/environment 這個文件也能實現環境變量的設置。/etc/environment 設置的也是全局變量,從文件本身的作用上來說, /etc/environment 設置的是整個系統的環境,而/etc/profile是設置所有用戶的環境。有幾點需注意:

  • 系統先讀取 etc/profile 再讀取 /etc/environment(還是反過來?)
  • /etc/environment 中不能包含命令,即直接通過 VAR="..." 的方式設置,不使用 export 。
  • 使用 source /etc/environment 可以使變量設置在當前窗口立即生效,需注銷/重啟之後,才能對每個新終端窗口都生效。

修改 Linux 環境變量實例

以 Ubuntu 為例,修改 ~/.profile 文件:

vim ~/.profile

如果該文件存在,則在文件的最後看到如下代碼,PATH 變量的值使用冒號(:)隔開的:

  1. # set PATH so it includes user's private bin if it exists
  2. if[-d "$HOME/bin"];then
  3. PATH="$HOME/bin:$PATH"
  4. fi

在最後加上代碼 PATH="$PATH:/usr/local/Hadoop/bin",注意等號(=)兩邊不要有空格,即:

  1. # set PATH so it includes user's private bin if it exists
  2. if[-d "$HOME/bin"];then
  3. PATH="$HOME/bin:$PATH"
  4. fi
  5. PATH="$PATH:/usr/local/hadoop/bin"

因為這個文件是在用戶登陸是才讀取一次的,所以需要重啟才會生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令 source ./.profile 使其立即生效。通過 echo $PATH 可以看到修改後的變量值:

  1. source ./.profile
  2. echo $PATH

通過 Shell 命令 export 修改 Linux 環境變量

另一種修改 Linux 環境變量的方式就是通過 Shell 命令 export,注意變量名不要有美元號 $,賦值語句中才需要有:

  1. export PATH=$PATH:/usr/local/hadoop/bin

export 方式只對當前終端 Shell 有效: 使用 export 設置的變量,只對當前終端 Shell 有效,也就是說如果新打開一個終端,那這個 export 設置的變量在新終端中使無法讀取到的。適合設置一些臨時變量。

根據變量所需,選擇設置方式,例如 JAVA_HOME 這類變量,就適合將其設為為全局變量,可在 /etc/environment 中設置。

Copyright © Linux教程網 All Rights Reserved