大家好,欢迎来到IT知识分享网。
文章目录
ubuntu设置环境变量后可能出现以下几个问题:
- 在当前终端有效,重启终端或新打开终端失效
- 在root用户下有效,普通用户无效
- 所有用户,任意终端都有效,但是电脑重启后无效
- 环境变量设置明明正确无误,但是显示的是以前的版本,而非当前设置的
针对以上存在的4个问题说明 linux 环境变量的设置:
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/profile
在文件中添加
JAVA_HOME=/usr/local/java8
GCC8_HOME=/usr/local/gcc7
export PATH=$PATH:$JAVA_HOME/bin:$GCC8_HOME/bin
终端执行source /etc/profilec
生效,或注销重新登录生效。
4.shell命令查看设置的所有环境变量
可用以下任意一个命令查看环境变量:
$PATH
echo $PATH
printenv PATH
若用$PATH
查看环境变量时,先输出所有环境变量,后面会输出这个文件或目录不存在,这个并非错误,而是命令本身的缘故。
Ubuntu包含两种环境变量:系统,用户
1.用户环境变量可存储在以下文件中:
~/.profile
~/.bash_profile 或者 ~./bash_login
~/.bashrc
推荐将环境变量保存在
~/.profile
中,因为无论是通过控制台还是图形界面启动程序时,都会自动执行该文件。
而~/.bashrc, ~/.bash_profile, ~/.bash_login
这些文件,当通过shell启动程序时,它们也会被加载;但当通过图形界面环境启动程序时,这些文件中的环境变量设置便不可用了。
2.系统环境变量可存储在以下文件中:
/etc/environment
/etc/profile
/etc/bash.bashrc
/etc/profile.d
/etc/profile
和/etc/profile.d
都是常用的设置环境的地方。其中/etc/profile.d
文件夹来源于/etc/profile
,在该目录下的*.sh
,即以sh为后缀的文件都会被加载。
类似地,不推荐使用/etc/bash.bashrc
,因为在图形界面环境下启动程序时,不会加载它里边的环境变量设置。
5.环境变量中覆盖系统默认的版本
若系统中默认安装了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
因为系统在环境变量中查找目标文件时,找到第一个发现的位置就会停止搜索。
参考
(本文完)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24711.html