Linux系统中的环境变量加载顺序
linux中的环境变量可以在许多文件中进行配置,这些文件主要包括以下五类:
/etc/profile
/etc/profile.d/*.sh
~/.bashrc
~/.bash_profile
/etc/bashrc
在对Linux系统输入命令进行操作的时候主要有两种运行模式:login shell和non-login shell
例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell。而当我们执行以下命令ssh other_os command,在other_os中执行command的就是一个non-login shell。
这两种shell的主要区别在于,它们启动时会加载不同的配置文件,login shell启动时会加载/etc/profile,/.bash_profile,/.bashrc。non-login shell启动时会加载~/.bashrc。
而在加载~/.bashrc时都会加载/etc/bashrc
而/etc/bashrc会进入到/etc/profile.d/目录下,并寻找*.sh中的环境变量。
因此不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。
但是只有login shell会加载/etc/profile 和~/.bash_profile