設(shè)置 Linux 環(huán)境變量可以通過 export 實(shí)現(xiàn)知押,也可以通過修改幾個(gè)文件來實(shí)現(xiàn)叹螟,有必要弄清楚這兩種方法以及這幾個(gè)文件的區(qū)別。
通過文件設(shè)置 Linux 環(huán)境變量
首先是設(shè)置全局環(huán)境變量台盯,對(duì)所有用戶都會(huì)生效:
etc/profile
此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息罢绽。當(dāng)用戶登錄時(shí),該文件被執(zhí)行一次静盅,并從/etc/profile.d 目錄的配置文件中搜集shell 的設(shè)置良价。一般用于設(shè)置所有用戶使用的全局變量。
/etc/bashrc
當(dāng) bash shell 被打開時(shí)温亲,該文件被讀取棚壁。也就是說,每次新打開一個(gè)終端 shell栈虚,該文件就會(huì)被讀取袖外。
接著是與上述兩個(gè)文件對(duì)應(yīng),但只對(duì)單個(gè)用戶生效:
~/.bash_profile
或 ~/.profile
只對(duì)單個(gè)用戶生效魂务,當(dāng)用戶登錄時(shí)該文件僅執(zhí)行一次曼验。用戶可使用該文件添加自己使用的 shell 變量信息泌射。另外在不同的LINUX操作系統(tǒng)下,這個(gè)文件可能是不同的鬓照,可能是 ~/.bash_profile
熔酷, ~/.bash_login
或 ~/.profile
其中的一種或幾種,如果存在幾種的話豺裆,那么執(zhí)行的順序便是:~/.bash_profile
拒秘、 ~/.bash_login
、 ~/.profile
臭猜。比如Ubuntu系統(tǒng)一般是 ~/.profile
文件躺酒。
~/.bashrc
: 只對(duì)單個(gè)用戶生效,當(dāng)?shù)卿浺约懊看未蜷_新的 shell 時(shí)蔑歌,該文件被讀取羹应。
此外,修改 /etc/environment
這個(gè)文件也能實(shí)現(xiàn)環(huán)境變量的設(shè)置次屠。/etc/environment
設(shè)置的也是全局變量园匹,從文件本身的作用上來說, /etc/environment
設(shè)置的是整個(gè)系統(tǒng)的環(huán)境劫灶,而/etc/profile
是設(shè)置所有用戶的環(huán)境裸违。有幾點(diǎn)需注意:
- 系統(tǒng)先讀取
etc/profile
再讀取/etc/environment
(還是反過來?) -
/etc/environment
中不能包含命令浑此,即直接通過VAR="..."的方式設(shè)置累颂,不使用 export 。 - 使用
source /etc/environment
可以使變量設(shè)置在當(dāng)前窗口立即生效凛俱,需注銷/重啟之后紊馏,才能對(duì)每個(gè)新終端窗口都生效。
修改 Linux 環(huán)境變量實(shí)例
以 Ubuntu 為例蒲犬,修改 ~/.profile 文件:
vim ~/.profile
如果該文件存在朱监,則在文件的最后看到如下代碼,PATH 變量的值使用冒號(hào)(:)隔開的:
# 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"原叮,注意等號(hào)(=)兩邊不要有空格赫编,即:
# 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"
因?yàn)檫@個(gè)文件是在用戶登陸是才讀取一次的,所以需要重啟才會(huì)生效(修改 /etc/profile
奋隶、/etc/environment
也是如此)擂送。但可以使用命令source ./.profile
使其立即生效。通過echo $PATH
可以看到修改后的變量值:
source ./.profile
echo $PATH
通過 Shell 命令 export 修改 Linux 環(huán)境變量
另一種修改 Linux 環(huán)境變量的方式就是通過 Shell 命令 export唯欣,注意變量名不要有美元號(hào) $嘹吨,賦值語句中才需要有:
export PATH=$PATH:/usr/local/hadoop/bin
export 方式只對(duì)當(dāng)前終端 Shell 有效: 使用 export 設(shè)置的變量,只對(duì)當(dāng)前終端 Shell 有效境氢,也就是說如果新打開一個(gè)終端蟀拷,那這個(gè) export 設(shè)置的變量在新終端中使無法讀取到的碰纬。適合設(shè)置一些臨時(shí)變量。
根據(jù)變量所需,選擇設(shè)置方式,例如 JAVA_HOME 這類變量培廓,就適合將其設(shè)為為全局變量,可在 /etc/environment 中設(shè)置强戴。
文章轉(zhuǎn)自:http://www.linuxidc.com/Linux/2015-02/113488.htm