在运行了系统范围的脚本之后,Shell 将运行用户特定的启动脚本。这些脚本文件非常适合保存您最喜欢的别名、环境设置和其他首选项。
为 Bash 做好准备
对于不同的 Shell,启动脚本的个数和名字也有所不同。让我们来看看 Bash Shell(/bin/bash)的启动顺序。Bash Shell 建立于 Unix 和 Linux® 之上,并且 Bash Shell 通常是新的系统和用户的缺省 Shell。它也是许多其他 Shell 的代表,因此在这里可以将它作为一个很好的示例。(如果您使用的是另一种 Shell,可以参考它的文档或者手册页面,以获取关于它的启动脚本名字和处理顺序的信息。)
Bash 将搜索六 个启动脚本,但是所有这些脚本都是可选的。即使这六个脚本都存在并且可读,但是在任何情况下,Bash 仅执行这六个脚本的一个子集。
如果 /etc/profile 存在并且可以由该用户进行读取,那么 Bash 将首先执行它,这是系统范围的启动文件。在读取了这个文件之后,Bash 按照顺序寻找 ~/.bash_profile、~/.bash_login、~/.profile 和 ~/.bashrc,其中 ~ 是表示该用户 home 目录的 Shell 缩写(也可以表示为 $HOME)。如果您退出 Bash,那么 Shell 将查找 ~/.bash_logout。
究竟执行这六个文件中的哪些,这取决于新的 Shell 的“模式。Shell 可以是登录 Shell,是或者不是交互的。(登录 Shell 也是一种交互的 Shell;然而,您可以强制非交互的 Shell 按照登录 Shell 的方式工作。稍后将详细介绍这一内容。)
在 UNIX 的早期(二十多年以前),用户通常通过一个哑终端来访问 UNIX 计算机。您需要在登录提示符处输入用户 ID 和密码,而系统将为您的会话产生一个新的登录 Shell。在这种环境中,登录 Shell 和其他的 Shell 实例(比如那些运行 Shell 脚本的 Shell)通过名字相互区别:每个登录 Shell 的进程名字都以一个连字符作为前缀,如 -bash。这个特殊的名字(历史悠久的 UNIX 产物)可以告诉 Shell 为登录工作运行任何特殊的配置。
标签: