LINUX配置文件加载顺序
shell启动方式
启动类型
- 交互式登录
一个个地输入命令并及时查看它们的输出结果,整个过程都在跟 Shell 不停地互动。 - 交互式非登录
运行一个 Shell 脚本 文件,让所有命令批量化、一次性地执行。 - 非交互式登录
需要输入用户名和密码才能使用。 - 非交互式非登录
直接可以使用。
如何判断是否为交互式 Shell? 有两种方式
1、 查看特殊变量 - ,如果值包含 i,则是交互式,否则是非交互式
$ echo $-
2、 查看变量 PS1 是否为空,如果不为空,则是交互式,否则为非交互式
$ echo $PS1
判断是否为登录式 Shell ?
取得 bash 是需要完整的登入流程,就称为 login shell,取得 bash 接口的方法不需要重复登入的操作就称为non-login shell。
执行命令
shopt login_shell
如果值为 on 表示登录式(login shell),为 off 表示非登录式(non-login shell)。
同时判断交互式和登录式
$ echo $PS1; shopt login_shell
配置文件启动
配置文件加载说明
对于登录式和非登录式,配置文件的加载顺序是不一样的。
与 Bash Shell 有关的配置文件主要有以下几种,不同的启动方式会加载不同的配置文件。
1: /etc/profile #对所有用户的登录shell都有效(全局配置文件),最好不要修改这个文件
2: ~/.bash_profile #为当前用户设置环境信息,仅对当前用户的登录shell有效(局部配置文件)
3: ~/.bash_login
4: ~/.profile
5: ~/.bashrc #bash_profile只被登录shell读取并执行一次,
#如果在命令行上键入bash启动一个新的shell,这个新shell读取的是.bashrc而不是.bash_profile,
#将登录shell和运行一个子shell所需的配置文件分开