介绍配置文件之前,先介绍两个概念:login shell、no-login shell
- login shell
取得 bash 时要完整的登录流程。 - no-login shell
取得 bash 接口时不需要重复的登录动作。如在 X Window 下登录后启动 bash 不需要输入密码。
login shell 在启动的时候,会读取两个配置文件:/etc/profile、~/.bash_profile(或 ~/.bash_login 或 ~/.profile)
一、/etc/profile
这个文件是系统的整体设定,利用 UID 决定许多重要的变量数据,也是每个使用者登录 bash 的时候一定会读取的配置文件。主要有一下几个变量:
PATH:环境变量。会依据 UID 决定是否要包含 sbin 的系统目录
MAIL:依据 UID 决定使用者的邮箱
USER:用户名
HOSTNAME:主机名
HISTSIZE:历史命令记录数
/etc/profile 文件还会包含仅外部设定的数据,包括一下文件:
- /etc/inputrc
自定义按键输入功能。 - /etc/profile.d/*.sh
bash 窗口的颜色、语系、命令别名等的一些设定。 - /etc/sysconfig/i18n
语系设定。
二、~/.bash_profile
bash 在读取完整体环境设定的 /etc/profile 并呼叫其他配置文件之后,接下来会读取使用者的个人配置文件。在 login shell 的环境下,读取的个人配置文件主要有以下三个:
1.~/.bash_profile
2.~/.bash_login
3.~/.profile
bash 只会读取上面文件中的一个,而且读取的优先级 1 > 2 > 3。
最后,login shell 的配置文件读取流程可以这样表示
/etc/profile-------------------->~/.bash_profile---------------->开始操作 bash
| |
| |
|- - ->/etc/inputrc |- - ->~/.bashrc
| |
|- - ->/etc/profile.d/*.sh <- - - - - - /etc/bashrc
|
/etc/sysconfig/i18n
实线方向是主流程,虚线方向是被呼叫的配置文件。