我的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"
为了测试我对环境变量和路径的假设,我注释了上面的所有行(导出行)。我尝试/etc/profile
通过采购它来加载新的. /etc/profile
并发出echo $JAVA_HOME
;它仍然返回上述路径。
因此,我重新启动了机器,因为源不起作用。重新启动后,echo $JAVA_HOME
不会返回任何内容,这是预期的。~/.bash_profile
Java中没有任何东西。
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)
Java在PATH中定义在哪里?路径如下~/.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
答案1
默认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
。