Linux环境变量初始化与对应文件的生效顺序

  • 内容
  • 相关

在登录Linux系统并启动一个bash shell时,默认情况下bash会在若干个文件中查找环境变量的设置,这些文件可统称为系统环境变量。bash检查的环境变量文件的情况取决于系统运行shell的方式,方式一般有以下三种,我们这儿仅讨论前两种。

1.jpg

Ø  通过系统用户登录后默认运行的shell(Login Shell)

Ø  非登录交互式运行shell(Non-login Shell)

Ø  执行脚本运行非交互式shell

当用户登录Linux系统时,shell会作为登录shell(Login Shell)启动,此时的登录shell加载环境变量的顺序是 /etc/profile → ~/.bash_profile → [ ~/.bashrc → [ /etc/bashrc ] ]

用户登录系统后首先会加载/etc/profile全局变量文件,这是Linux系统上默认的shell主环境变量文件,系统上每个用户登录都会加载这个文件。

之后开始运行$HOME/.bash_profile(用户环境变量文件),在这个文件中,又会通过if语句去判断$HOME/.bashrc是否存在(用户环境变量文件),如果有则执行,如果没有则不执行。在$HOME/.bashrc文件中又会通过if语句去判断/etc/bashrc是否存在(全局环境变量文件),如果有则执行,如果没有则不执行。

如果用户的shell不是登录时启动的,非登录shell(Non-login Shell)只会加载$HOME/.bashrc(用户环境变量文件),并会通过if语句去判断/etc/bashrc是否存在(全局环境变量文件),如果有则执行,如果没有则不执行。


 您阅读这篇文章共花了:

上一篇:子网掩码、反掩码、通配符掩码以及ospf network命令误区

下一篇:touch、find和atime、ctime、mtime的用法

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:Linux环境变量初始化与对应文件的生效顺序 - http://www.fishyoung.com/post-45.html