Closed mysterin closed 5 years ago
linux 的交互式模式分为login shell和non-login shell两种.
login shell
non-login shell
需要输入用户名密码登录的 shell.
su -
不需要输入用户名和密码登录的 shell.
bash
/etc/profile
/etc/bash.bashrc
/etc/profile.d/*.sh
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
注意: 对于Zsh, 它对应的login shell的个人配置文件应该是~/.zprofile, 而它的non-login shell配置文件是~/.zshrc.
Zsh
~/.zprofile
~/.zshrc
前提
linux 的交互式模式分为
login shell
和non-login shell
两种.login shell
需要输入用户名密码登录的 shell.
login shell
的 bash.su -
命令切换用户登录的, 这也是进入login shell
.non-login shell
不需要输入用户名和密码登录的 shell.
non-login shell
.bash
后也不需要用户密码, 也是non-login shell
.login shell 配置文件顺序
/etc/profile
这个是全局配置文件, 只要登录进入 shell 就会执行这个配置文件. 在这个配置文件里还设置执行/etc/bash.bashrc
和/etc/profile.d/*.sh
.~/.bash_profile
或者~/.bash_login
或者~/.profile
这个属于用户个人配置文件, 在用户目录下面的. 在这个配置文件里也设置执行~/.bashrc
.non-login shell 配置文件顺序
~/.bashrc
只执行这个配置文件.