目录
系统环境变量
环境变量设置方法:
- 在
/etc/profile
文件中添加变量,此方法是对所有用户永久生效的:export HISTFILESIZE=10000
- 在用户目录下的
/root/.bash_profile
文件中增加变量,此方法是针对单一用户永久生效的 - 直接在终端运行export命令定义变量,此方法是是针对当前BASH临时生效的,退出之后就失效了
环境变量相关配置文件
/etc/profile,/etc/bashrc
是用于系统全局环境变量~/.profile,~/.bashrc
是用于设置指定用户的私有环境变量/etc/profile
这个文件对每个shell及所有用户都有效,当用户第一次登录时,该文件就被执行,当被修改时,必须重启才会生效/etc/profile.d/
可以理解为是/etc/profile的一部分,只不过按类别或功能拆分成若干个文件进行配置/etc/bashrc
这个文件当用户运行bash shell时被执行,当被修改后,不用重启只需要打开一个新的 bash 即可生效/etc/environment
是系统的环境变量,/etc/profile是所有用户的环境变量,前者与登录用户无关,后者与登录用户有关,当同一变量在两个文件里有冲突时,以用户环境为准~/.bash_profile
文件是当前用户的私有环境信息配置文件,用户登录时执行一次,默认情况是用于设置环境变量并执行当前用户的 .bashrc 文件(注意:Centos7系统命名为.bash_profile,其他系统可能是.bash_login或.profile)~/.bash_logout
文件在每次退出bash shell时执行,可以把一些清理工作的命令放进这个文件
系统环境变量读取优先级:
- 系统首先寻找
/etc/profile
脚本文件并执行,然后根据其内容读取额外的设定的文档,如/etc/profile.d
- 然后根据不同使用者帐号,去其根目录读取
~/.bash_profile
(在这个文件中有执行.bashrc的脚本,.bashrc脚本里会去调用/etc/bashrc文件),如果这读取不了就读取~/.bash_login
,这个也读取不了才会读取~/.profile
- 在退出shell时,还会执行
~/.bash_logout
文件
因此用户主目录下文件的执行的顺序为:~/.bash_profile
->~/.bash_login
->~/.profile
系统执行文件顺序为:
/etc/profile
->(~/.bash_profile
| ~/.bash_login
| ~/.profile
)->.bashrc
->/etc/bashrc
->~/.bash_logout