bash 的环境配置文件

243 阅读1分钟

login shell 和 non-login shell 概念

login shell 是指通过输入用户名和密码后,取得的shell,而 non-login shell 是指没有通过输入用户名和密码得到的shell,比如你在一个已经打开的shell里面输入bash,这种情况得到的shell就是non-login shell。对于这两种 shell的判断我们可以通过执行命令 echo $0来判断: image.png

login shell 和 non-login shell 加载的配置文件的区别

下图是 login shell 启动时加载的配置文件: image.png ~./bash_profile 文件中会将 $HOME/bin下的文件加入到PATH环境变量中,这样的话,执行这个路径下的命令就不需要加上全路径限定了。 image.png

image.png

image.png

下图是 non-login shell 启动时加载的配置文件:

image.png

bash 配置文件生效

如果修改了bash的配置文件,想要让生效的话,需要通过执行 source命令。

bash 配置文件被删除导致的异常

有的时候我们登录 shell 的时候出现如下的情况,这种情况一般是因为 ~/.bash_profile 文件被删除了导致的。 image.png

image.png

其它的 bash 配置文件

  • ~/.bash_history: 这个文件保存了历史执行过的命令,bash 启动时会把这个文件中的命令读入到内存中。
  • ~/.bash_logout: 这个文件中可以配置 bash 登出后需要执行的一些操作。

参考

[1] : 鸟哥的Linux私房菜
[2] : Difference between Login Shell and Non-Login Shell? - Unix & Linux Stack Exchange