# 环境变量文件的加载顺序

在登录 Linux 系统并启动一个 bash shell 时,默认情况下 bash 会在若干个文件中查找环境变量的设置。这些文件统称为系统环境文件。bash 检查的环境变量文件的顺序情况取决于系统运行的 shell 方式。系统运行 shell 方式一般为 4 种:

是否交互式是否登陆式哪些情况
通过系统用户登录默认运行的 shell
非登录交互式运行 shell
执行脚本运行非交互式 shell

shell-config

# bash 命令启动 shell

命令 bash 启动 shell 时,可以通过选项改变其行为

shell
bash [长选项] [选项] [脚本]
选项含义
-ishell 在交互模式下运行
-lshell 作为登陆 shell
-r启动受限 shell
--选项结束标志,后面的内容当做文件名或参数,即使他们以 - 开头
--login-l
--noprofile阻止读取初始化文件 /etc/profile~/.bash_profile , ~/.bash_login , ~/profile
--norc在交互式 shell,阻止读取初始化文件 ~/.bashrc 。如果 shell 以 sh 调用的话,该选项默认是打开的。
--recfile file在交互式 shell,指定初始化文件是 file 而不是 ~/.bashrc
--version版本信息

# 检查当前 shell 状态

# 查看当前是否登录式

shell
shopt login_shell
# 结果为 on 则是登陆式
login_shell    	on
# 结果为 off 不是登陆式
login_shell    	off

# 查看当前是否交互式

shell
echo $PS1
# 结果非空则是交互式
shell
echo $-
# 结果包含 i 则是交互式

References:

  • Reference1
  • Reference2
Edited on Views times