Bash 启动环境

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

Bash 启动环境

这篇文档里讲得很浅,具体的详细的 Bash 启动场景和启动过程,请看《Bash 启动时的配置文件加载》

Session

用户每次使用 Shell,都会开启一个 Shell 的 Session(对话)。

Session 有两种类型:登录式 Session 和非登录式 Session,也可以叫做 login shell 和 non-login shell。

登录式 Session

登录式 Session 是用户登录系统以后,系统为用户开启的原始 Session,通常需要用户输入用户名和密码进行登录。

登录式 Session 一般进行整个系统环境的初始化,启动的初始化脚本依次如下。

bash命令的--login参数,会强制执行登录 Session 会执行的脚本。

1
$ bash --login

bash命令的--noprofile参数,会跳过上面这些 Profile 脚本。

1
$ bash --noprofile

非登录 Session

非登录 Session 是用户进入系统以后,手动新建的 Session,这时不会进行环境初始化。比如,在命令行执行bash命令,就会新建一个非登录 Session。

bash命令的--norc参数,可以禁止在非登录 Session 执行~/.bashrc脚本。

1
$ bash --norc

bash命令的--rcfile参数,指定另一个脚本代替.bashrc

1
$ bash --rcfile testrc

.bash_logout

~/.bash_logout脚本在每次退出 Session 时执行,通常用来做一些清理工作和记录工作,比如删除临时文件,记录用户在本次 Session 花费的时间。

如果没有退出时要执行的命令,这个文件也可以不存在。

键盘绑定

Bash 允许用户定义自己的快捷键。全局的键盘绑定文件默认为/etc/inputrc,你可以在主目录创建自己的键盘绑定文件.inputrc文件。如果定义了这个文件,需要在其中加入下面这行,保证全局绑定不会被遗漏。

1
$include /etc/inputrc

.inputrc文件里面的快捷键,可以像这样定义,"\C-t":"pwd\n"表示将Ctrl + t绑定为运行pwd命令。

0%