环境变量设置方法:
- 在
/etc/profile
文件中添加变量,此方法是对所有用户永久生效的:export HISTFILESIZE=10000 - 在用户目录下的
/root/.bash_profile
文件中增加变量,此方法是针对单一用户永久生效的 - 直接在终端运行
export
命令定义变量,此方法是是针对当前 BASH 临时生效的,退出之后就失效了环境变量相关配置文件
/etc/profile
:::tips 这个文件对每个 shell 及所有用户都有效,当用户第一次登录时,该文件就被执行
当被修改时,必须重启才会生效 :::/etc/bashrc
:::tips /etc/bashrc 这个文件当用户运行bash shell时被执行,当被修改后,不用重启只需要打开一个新的 bash 即可生效 :::/etc/profile.d/
:::tips /etc/profile.d/ 可以理解为是/etc/profile
的一部分,只不过按类别或功能拆分成若干个文件进行配置 :::/etc/environment
:::tips /etc/environment 是系统的环境变量,/etc/profile是所有用户的环境变量,前者与登录用户无关,后者与登录用户有关,当同一变量在两个文件里有冲突时,以用户环境为准 :::~/.profile,~/.bashrc
:::tips ~/.profile,~/.bashrc 是用于设置指定用户的私有环境变量 :::~/.bash_profile
:::tips ~/.bash_profile 文件是当前用户的私有环境信息配置文件,用户登录时执行一次,默认情况是用于设置环境变量并执行当前用户的 .bashrc 文件(注意:Centos7系统命名为.bash_profile,其他系统可能是.bash_login或.profile) :::~/.bash_logout
:::tips ~/.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