Bash-shell的启动文件

Linux系统用环境变量来在程序和脚本中标识它自己。这为你的程序提供了获得系统信息的一个简单方法。

问题是如何设置这些变量。

在你登陆Linux系统启动一个bash shell时,默认情况下bash在几个文件中查找并执行其中的命令。这些文

件称作启动文件。bash检查的启动文件取决于你启动bash shell的方式。启动bash shell有3种方式:

  • 登陆时当做默认登陆shell
  • 作为非登陆shell的交互式shell
  • 作为运行脚本的非交互式shell

登陆shell

当你登陆Linux时,bash shell会作为登陆的shell启动。登陆shell会从4个不同的启动文件里读取命令下面是bash shell处理这些文件的次序:

  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bash_login
  • $HOME/.profile

其中/etc/profile文件时bash shell是系统上默认的bash shell的主启动文件。系统上的每个用户登陆时都会执行这个文件。另外3个是用户专有的,可以个性化定制。

交互式shell

如果你的bash shell不是登陆系统时启动的(比如你在命令行提示符下敲入bash启动),你启动的shell称为交互式shell。交互式shell不会像登陆shell一样运行,但它依然提供了命令行提示符来输入命令。交互式shell不会去访问/etc/profile文件,而会去用户的HOME目录下检查.bashrc是否存在,并执行它。

  • $HOME/.bashrc

非交互式shell

最后一种类型的shell是非交互式shell。系统执行shell脚本时用到的就是这种shell。它的启动文件由BASH_ENV环境变量来指定。默认情况该变量为空。

  • $BASH_ENV