启动一个bash shell的时候,默认情况下bash会执行一些启动文件,执行哪些启动文件是由你启动bash shell的方式。一般来说启动bash shell有三种方式:
当你登录Linux系统的时候,一般来说都是作为登录shell来启动的。登录shell会从4个不同的启动文件里来读取命令。
每个distribution都会包含第1个启动文件,后面3个并不都是包含在每个distribution里面。后面3个启动文件都属于用户专属的启动文件,执行启动文件的顺序是从上往下开始执行。
非登录交互式shell顾名思义就是不是登录Linux系统时启动的(比如你在命令行提示符上输入bash启动)。它不会去执行/etc/profile文件,而会去用户的HOME目录检查.bashrc并执行。
系统执行shell脚本的时候就是属于这种非交互式shell。bash shell提供了BASH_ENV环境变量来记录要启动的文件,默认情况下这个环境变量并没有设置,如果有指定文件,那么shell会先去执行这个文件里面的内容,然后再开始执行shell脚本。
系统级别的环境变量设置
可以定义环境变量放置在/etc/environment文件里面,对整个环境都有效,或者可以在/etc/profile.d目录里面创建文件包含变量的定义,注意:在/etc/environment的变量不能进行变量展开(Variable expansion)