Linux环境变量可以通过export实现,也可以通过修改几个文件来实现
1 通过文件设置LInux环境变量
首先是设置全局环境变量,对所有用户都会生效
/etc/profile
:该文件为系统的每个用户设置环境信息,当用户登录时,该文件被执行一次,并从/etc/profile.d
目录的配置文件中搜索shell的设置,一般用于设置所有用户使用的全局变量
/etc/bashrc
:当bash shell被打开时,该文件被读取,也就是说每次新打开一个终端shell,该文件就会被读取
接着是与上述两个文件对应,但是只对单个用户生效
~/.bash_profile
或~/.profile
:只对单个用户生效,当用户登录时该文件仅执行一次,用户可以使用该文件添加自己使用的shell变量信息,另外在不同的linux操作系统下,这个文件可能是不同的,可能是~/.bash_profile
,~/.bash_login
或者~/.profile
,比如Ubuntu系统一般是~/.profile
文件
~/.bashrc
:只对单个用户生效,当登录以及每次打开新的shell时,该文件被读取
此外,修改/etc/environment
这个文件也能实现环境变量的设置,/etc/environment
设置的也是全局变量,从文件本身的作用上来说,/etc/environment
设置的是整个系统的环境,而/etc/profile
是设置所有用户的环境
注意:
- 使用
source /etc/environment
可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新的终端窗口都生效 /etc/environment
中不能包含命令,即直接通过VAR="…"的方式设置,不使用export
2 通过Shell命令export方式修改Linux环境变量
另外一种修改Linux环境变量的方式就是通过Shell命令export,注意变量名不要有美元 符$,赋值语句中才需要有:
export PATH=$PATH:/usr/local/hadoop/bin
export方式只对当前终端Shell有效,使用export设置的变量,只对当前终端Shell有效,也就是说如果新打开一个终端,那这个export设置的变量在新终端中是无法读取到的,适合设置一些临时变量
3 修改Linux环境变量实例
以Ubuntu为例,修改~/.profile
在最后加上代码
PATH="$PATH:/usr/local/hadoop/bin"
由于这个文件是在用户登录时才读取一次的,所以需要重启才会生效(修改/etc/profile
,/etc/environment
也是如此),但也可以使用命令source ~/.profile
使其立即生效