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

  1. 直接通过终端输入账号密码登录
  2. 使用“su - UserName”切换的用户
  3. 使用bash --login 登录

配置加载顺序(并不代表文件执行顺序,相同变量取后者 ):

/etc/bash.bashrc--> /etc/profile--> ~/.bashrc--> ~/.profile--> ~/.bash_logout

非交互登录shell

  1. 使用bash --login -c "echo 123"等命令执行shell

配置加载顺序:

/etc/profile--> ~/.profile

交付非登录shell

  1. 使用Ctrl + Alt + T 呼出的终端
  2. 使用bash打开的交互式终端

配置载入顺序:

/etc/bash.bashrc--> ~/.bashrc

非交互非登录shell

只使用原有系统配置

Last modification:September 24th, 2021 at 06:07 pm