设置 Linux 环境变量可以通过两种方法实现
1.shell命令export
2.修改文件
1.shell命令export
方法:export PATH=$PATH:/usr/local/hadoop/bin
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。
2.修改文件
2.1 修改系统环境变量
系统环境变量一般保存在下面的文件中:
- /etc/environment
- /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行并从/etc/profile.d目录的配置文件中搜集shell的设置.
- /etc/bash.bashrc(对应其他系统的/ect/bashrc):为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
2.2 修改用户环境变量
- ~/.bash_profile(Unbutu默认没有此文件,可新建):每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
- ~/.bash_login:若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。
- ~/.profile:若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile和~/.bash_login。
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
- ~/.bash_logout :在文本模式注销时,此文件会被读取,图形模式注销时,此文件不会被读取。
读取顺序:
- 图形模式登录时,顺序读取:/etc/profile和~/.profile
- 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc
- 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile
- 从其它用户su到该用户,则分两种情况:
(1)如果带-l参数(或-参数,–login参数),如:su -l username,则bash是login的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~/.bash_profile。
(2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc - 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout
某网友总结如下:
/etc/profile,/etc/bashrc 是系统全局环境变量设定
~/.profile,~/.bashrc用户家目录下的私有环境变量设定
当登入系统时候获得一个shell进程时,其读取环境设定档有三步
1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如
/etc/profile.d和/etc/inputrc
2然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系
3然后在根据用户帐号读取~/.bashrc