設置 Linux 環境變量可以通過 export 實現,也可以通過修改幾個文件來實現,有必要弄清楚這兩種方法以及這幾個文件的區別。
首先是設置全局環境變量,對所有用戶都會生效:
接著是與上述兩個文件對應,但只對單個用戶生效:
此外,修改 /etc/environment 這個文件也能實現環境變量的設置。/etc/environment 設置的也是全局變量,從文件本身的作用上來說, /etc/environment 設置的是整個系統的環境,而/etc/profile是設置所有用戶的環境。有幾點需注意:
VAR="..."
的方式設置,不使用 export 。source /etc/environment
可以使變量設置在當前窗口立即生效,需注銷/重啟之後,才能對每個新終端窗口都生效。以 Ubuntu 為例,修改 ~/.profile 文件:
vim ~/.profile
如果該文件存在,則在文件的最後看到如下代碼,PATH 變量的值使用冒號(:)隔開的:
# set PATH so it includes user's private bin if it exists
if[-d "$HOME/bin"];then
PATH="$HOME/bin:$PATH"
fi
在最後加上代碼 PATH="$PATH:/usr/local/Hadoop/bin"
,注意等號(=)兩邊不要有空格,即:
# set PATH so it includes user's private bin if it exists
if[-d "$HOME/bin"];then
PATH="$HOME/bin:$PATH"
fi
PATH="$PATH:/usr/local/hadoop/bin"
因為這個文件是在用戶登陸是才讀取一次的,所以需要重啟才會生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令 source ./.profile
使其立即生效。通過 echo $PATH
可以看到修改後的變量值:
source ./.profile
echo $PATH
另一種修改 Linux 環境變量的方式就是通過 Shell 命令 export,注意變量名不要有美元號 $,賦值語句中才需要有:
export PATH=$PATH:/usr/local/hadoop/bin
export 方式只對當前終端 Shell 有效: 使用 export 設置的變量,只對當前終端 Shell 有效,也就是說如果新打開一個終端,那這個 export 設置的變量在新終端中使無法讀取到的。適合設置一些臨時變量。
根據變量所需,選擇設置方式,例如 JAVA_HOME 這類變量,就適合將其設為為全局變量,可在 /etc/environment 中設置。