ubuntu设置环境变量后可能出现以下几个问题:

  1. 在当前终端有效,重启终端或新打开终端失效
  2. 在root用户下有效,普通用户无效
  3. 所有用户,任意终端都有效,但是电脑重启后无效
  4. 环境变量设置明明正确无误,但是显示的是以前的版本,而非当前设置的

针对以上存在的4个问题说明ubuntu环境变量的设置:

ubuntu系统支持3种环境变量的设置。

设置环境变量 多个路径用冒号隔开.

以下以gcc和java的环境变量举例.

JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7

1.临时环境变量

在当前终端中输入 ``

JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7
export PATH=$PATH:$JAVA_HOME/bin:$GCC8_HOME/bin

在当前终端有效。

2.用户环境变量:仅对使用用户有效

终端执行gedit ~/.bashrc

在文件中添加

JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7
export PATH=$PATH:$JAVA_HOME/bin:$GCC8_HOME/bin

终端执行source ~/.bashrc 生效,或注销重新登录生效。

3系统环境变量:对所有人有效

终端执行sudo gedit /etc/profilec

在文件中添加

JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7
export PATH=$PATH:$JAVA_HOME/bin:$GCC8_HOME/bin

终端执行source /etc/profilec 生效,或注销重新登录生效。

可使用echo $PATH命令查看设置的所有环境变量

<mark>若用$PATH查看环境变量时,先输出所有环境变量,后面会输出这个文件或目录不存在,这个并非错误,而是命令本身的缘故。</mark>

Ubuntu包含两种环境变量:系统,用户

1.用户环境变量:

~/.profile
~/.bash_profile 或者 ~./bash_login
~/.bashrc

2.系统环境变量:

/etc/environment
/etc/profile
/etc/bash.bashrc

ubuntu官网介绍环境变量配置介绍:

将 PATH=$PATH:xxx 中$PATH放到最后使自己安装的版本覆盖系统默认的版本

若系统中默认安装了gcc和java,且不易彻底删除时,你又安装了自己更高的版本,这时想让系统用自己安装的而非系统安装的。

若系统如下设置:$PATH在前,优先使用系统的。

JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7
export PATH=$PATH:$JAVA_HOME/bin:$GCC8_HOME/bin

若将$PATH放在后面:这样优先使用自己安装的。

export PATH=$JAVA_HOME/bin:$GCC8_HOME/bin:$PATH

因为系统在环境变量中查找目标文件时,找到第一个发现的位置就会停止搜索。