Environment-Variables

關於環境變數的問題

  • March 29, 2015

我在我的 centos6 上安裝了 Oracle jdk7。我注意到 /etc/profile 有以下幾行:

#below lines are added for Java
export JAVA_HOME="/usr/java/latest"
## export JAVA_HOME JDK ##
export JAVA_HOME="/usr/java/jdk1.7.0_75"

為了測試我對環境變數和 PATH 的假設,我註釋了上面的所有行(導出行)。我試圖/etc/profile通過採購來載入新的. /etc/profile並發布echo $JAVA_HOME;它仍然返回上述路徑。

所以,我重新啟動了機器,因為源不起作用。重新啟動後,echo $JAVA_HOME沒有返回任何內容,這是預期的。Java沒有什麼~/.bash_profile

但是如果我發出命令: java -version在shell上,它仍然返回

[root@localhost ~]# java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

PATH中定義的Java在哪裡?中的路徑~/.bash_profile如下,它沒有任何Java。

使用者特定環境和啟動程序

PATH=$PATH:$HOME/bin
export PATH
~
~
~

set- 在 shell 上為 PATH 變數返回以下行:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

預設PATH設置在/etc/profile. 使用者可以通過編輯來修改它們,PATH或者~/.profile~/.bash_profile如果~/.bashrc他們正在執行bash),但如果他們不這樣做,他們仍然會有. 這就是為什麼這條線PATH``/etc/profile

PATH=$PATH:$HOME/bin

而不僅僅是

PATH=$HOME/bin

這樣,PATH保留原始值並簡單地附加新目錄。在我的系統上,PATH設置/etc/profile

PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"

你可能有一條非常相似的線,這就是它的/usr/bin來源。

引用自:https://unix.stackexchange.com/questions/193263