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