Linux的環(huán)境變量可在多個(gè)文件中配置,如/etc/profile,/etc/profile.d/*.sh,/.bashrc,/.bash_profile等,下面說(shuō)明上述幾個(gè)文件之間的關(guān)系和區(qū)別。
bash的運(yùn)行模式可分為login shell和non-login shell。
例如,我們通過(guò)終端,輸入用戶名、密碼,登錄系統(tǒng)之后,得到就是一個(gè)login shell。而當(dāng)我們執(zhí)行以下命令ssh hadoop103 command,在hadoop103執(zhí)行command的就是一個(gè)non-login shell。

image-20220805142542257.png
這兩種shell的主要區(qū)別在于,它們啟動(dòng)時(shí)會(huì)加載不同的配置文件,login shell啟動(dòng)時(shí)會(huì)加載/etc/profile,/.bash_profile,/.bashrc。non-login shell啟動(dòng)時(shí)會(huì)加載~/.bashrc。
而在加載/.bashrc(實(shí)際是/.bashrc中加載的/etc/bashrc)或/etc/profile時(shí),都會(huì)執(zhí)行如下代碼片段,

image-20220805142634868.png
因此不管是login shell還是non-login shell,啟動(dòng)時(shí)都會(huì)加載/etc/profile.d/*.sh中的環(huán)境變量。
所以:可以在/etc/profile.d/ 目錄下創(chuàng)建myenv.sh,將我們要添加的環(huán)境變量都添加到這個(gè)文件中。設(shè)置完成后 要執(zhí)行一下命令讓其生效
source /etc/profile