关于环境变量的问题

关于环境变量的问题

我的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_profileJava中没有任何东西。

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

相关内容