Ubuntu Bash环境变量加载详情
配置文件
1、/etc/environment
面对系统的环境,尽量减少对该文件的修改
系统配置加载的顺序(相同变量去取后加载的)
/etc/profile -> /etc/environment -> ...
2、/etc/profile
面对系统用户的环境变量,每一次登录时载入
/etc/profile.d等配置文件
会在/etc/profile 中使用一个for循环语句来调用这些脚本
3、~/.bash_profile
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件,建议使用~/.profile去代替~/.bash_profile
4、~/.bash_login
登入shell会被加载,建议不使用bash_login
5、~/.profile
在Debian中使用.profile文件代 替.bash_profile文件。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代 替.bash_profile文件,提倡删除本地~/.bash_profile和~/.bash_login,去使用~/.profile 。
6、~/.bashrc
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
7、/etc/bashrc 或者 /etc/bash.bashrc
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
8、~/.bash_logout
当每次退出系统(退出bash shell)时,执行该文件.
bash配置文件加载顺序
交互登录shell
- 直接通过终端输入账号密码登录
- 使用“su - UserName”切换的用户
- 使用
bash --login
登录
配置加载顺序(并不代表文件执行顺序,相同变量取后者 ):
/etc/bash.bashrc--> /etc/profile--> ~/.bashrc--> ~/.profile--> ~/.bash_logout
非交互登录shell
- 使用
bash --login -c "echo 123"
等命令执行shell
配置加载顺序:
/etc/profile--> ~/.profile
交付非登录shell
- 使用
Ctrl + Alt + T
呼出的终端 - 使用
bash
打开的交互式终端
配置载入顺序:
/etc/bash.bashrc--> ~/.bashrc
非交互非登录shell
只使用原有系统配置