linux环境变量和对应文件的生效顺序

在登录Linux系统并启动一个bash shell时,默认情况下bash会在若干个文件中查找环境变量的设置。这些文件可统称为系统环境变量。bash检查的环境变量文件的情况取决于系统运行shell的方式。

系统运行shell的方式一般有三种:

一、通过系统用户登录后默认运行的shell

二、非登录交互式运行shell

三、执行脚本运行非交互式shell


当用户登录Linux系统时,shell会作为登录shell启动。此时的登录shell加载环境变量的顺序如下

 

 

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

当加载完/etc/profile文件后,才会执行/etc/profile.d目录下的脚本文件。

之后开始运行$HOME/.bash_profile(用户环境变量文件),在这个文件中,又会去找$HOME/.bashrc(用户环境变量文件),如果有则执行,如果没有则不执行。在$HOME/.bashrc文件中又会去找/etc/bashrc(全局环境变量文件),如果有则执行,如果没有则不执行。

如果用户的shell不是登录时启动的,非登录shell只会加载$HOME/.bashrc(用户环境变量文件),并会去找/etc/bashrc(全局环境变量文件)。如果希望在登录shell下也可以读到设置的环境变量等内容,就需要将变量设定等写入$HOME/.bashrc或者/etc/bashrc,而不是$HOME/.bash_profile或/etc/profile。

 

posted on 2021-01-25 14:25  踏入IT的小贾  阅读(309)  评论(0编辑  收藏  举报

导航