Shell 配置文件的加载

Shell 加载配置文件

Shell 的启动方式有以下四种:

  • 交互式登录
  • 非交互式登录
  • 交互式非登录
  • 非交互式非登录

其中交互式是指需要使用者手动输入的方式,而非交互式指的是脚本方式运行,不需要使用者手动输入。登录指的是使用者需要输入用户名和密码的方式,需要特定用户才能执行,而非登录不需要输入用户名和密码,任何用户都能执行。

比如:GNOME Terminal 默认是交互式非登录 ShelliTerm2 Terminal 默认是交互式登录 Shellssh 连接也是交互式非登录 Shell,在终端上运行一般脚本是非交互式非登录 Shellssh 连接直接执行命令是非交互式登陆 Shell 等。

  1. 交互式区分方式
  • 根据 $- 变量区分,含有 i (interactive) 为交互式 Shell
1
2
echo "$-"
himBHs
  • 根据 $PS1 变量区分,不为空的是交互式 Shell
1
2
echo "$PS1"
[\u@\h \W]\$
  • 指定 -c 选项运行非交互式 Shell,指定 -i 选项运行交互式 Shell
  1. 登录式区分方式
  • 根据 $0 变量区分,带 - 为登录 Shell
1
2
echo "$0"
-bash
  • 根据 shopt login_shellBash 独有。
1
login_shell     on
  • 执行 logout 命令,只有登录 Shell 才能运行这条命令
1
2
logout
bash: logout: not login shell: use `exit'
  • 指定 -l 或者 --login 选项运行登陆 Shell

../posts/03_工作/21_开发工具/img/005-1-Bash加载配置文件.png


../posts/03_工作/21_开发工具/img/005-2-Zsh加载配置文件.png


../posts/03_工作/21_开发工具/img/005-3-Ash加载配置文件.png