bash 的环境配置文件
你是否会觉得奇怪,怎么我们什么动作都没有进行,但是一进入 bash 就取得一堆有用的变量了? 这是因为系统有一些环境配置文件案的存在,让 bash 在启动时直接读取这些配置文件,以规划好 bash 的操作环境啦! 而这些配置文件又可以分为全体系统的配置文件以及用户个人偏好配置文件。要注意的是, 我们前几个小节谈到的命令别名啦、自定义的变量啦,在你注销 bash 后就会失效,所以你想要保留你的配置, 就得要将这些配置写入配置文件才行。底下就让我们来聊聊吧!
login 与 non-login shell
在开始介绍 bash 的配置文件前,我们一定要先知道的就是 login shell 与 non-login shell! 重点在于有没有登陆 (login) 啦!
login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。
(1)你要由 tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰;
(2)使用su - username,登陆后,此时取得的 bash 就称为『 login shell 』
non-login shell:取得 bash 接口的方法不需要重复登陆的举动
(1)你以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。
(2)你在原本的 bash 环境下再次下达 bash 这个命令,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell 。
(3)使用su username,登陆后,此时取得的 bash 就称为『 non-login shell 』
为什么要介绍 login, non-login shell 呢?这是因为这两个取得 bash 的情况中,读取的配置文件数据并不一样所致。 由于我们需要登陆系统,所以先谈谈 login shell 会读取哪些配置文件?一般来说,login shell 其实只会读取这两个配置文件:
- /etc/profile:这是系统整体的配置,你最好不要修改这个文件;
- ~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!
那么,就让我们来聊一聊这两个文件吧!这两个文件的内容可是非常繁复的喔!
login shell的配置初始化
环境配置初始化步骤:
/etc/profile
~/.profile
其中/etc/profile会调用/etc/bashrc,~/.profile会调用~/.bashrc,所以真正的初始化步骤是
/etc/profile /etc/bashrc ~/.profile ~/.bashrc
non-login shell的配置初始化
环境配置初始化步骤:
/etc/bashrc
~/.bashrc