Ubuntu20.04配置环境变量
本文最后更新于:8 个月前
Ubuntu系统下有多种不同级别的环境变量文件,加载的过程也不相同。本文介绍如何在Ubuntu下设置环境变量
Ubuntu20.04配置环境变量
一、引言
1.1、一个奇怪的现象
发现一个很奇怪的现象:
Ubuntu20.04,用普通用户timegogo登陆,su root
切换到root用户,设置/root/.bashrc
,末尾添加以下两行
1 |
|
使用source ~/.bashrc
生效。
用root用户可以输出$JAVA_HOME
和PATH
两个环境变量
然后切换回timegogo用户,没有对/home/timegogo/.bashrc
做任何修改,发现可以输出$JAVA_HOME
,但是却不能正常输出$PATH
(没有包含JAVA_HOME)
接着在/home/timegogo/.bashrc
末尾,添加以下一行:
1 |
|
使用source ~/.bashrc
生效。之后输出的$PATH
就携带上JAVA_HOME
了。
1.2、实际原因
仔细观察上述操作,在同一个终端内,先用root用户登陆输出JAVA_HOME变量,之后再切换到timegogo用户,输出JAVA_HOME变量。实际上,这个JAVA_HOME变量并不是timegogo用户下的环境变量。而是仅仅是root的环境变量,但是在终端输出之后(或者说是切换到root用户之后),终端就保留下来了这个变量。而之所以timegogo用户能获得JAVA_HOME,是timegogo用户从终端中获取的。一旦终端关闭,相应的,终端中的JAVA_HOME也就消失了。
可以通过一个实验来验证:
打开一个新的终端,然后按下图操作(结果也见图)
二、环境变量文件
2.1、概述
Ubuntu下有多种环境变量文件,/etc/profile
(作用于所有用户),~/.bashrc
(作用于当前用户)
修改文件后,需要重新加载才能生效。方式有两种:
- 第一种,注销、重新登陆
source 文件
2.2、/etc/profile文件
它在用户登陆的时候生效。仅分配给当前登陆的用户。因此有一个有趣的现象:
在/etc/profile
中声明了IDEA_HOME
1 |
|
当我们使用timegogo登陆后,终端使用timegogo用户输出$PATH
,包含了IDEA_HOME
。
然后在终端中切换到root用户,再输出$PATH
,就不包含IDEA_HOME
了。