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

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

注解  —和 ↓是实线,------是虚线

登陆shell读取环境变量文件的流程

profile —> ~/.bash_profile —> 操作bash

   |                      |

   |                      |

   |                      --------------->~/.bashrc

   |                                        ↓                                                         

   --------> /etc/profile.d/*.sh <----------- /etc/bashrc

        /etc/sysconfig/i18n

                       

 

注意两个bashrc文件  : ~/.bashrc   /etc/bashrc

       两个profile文件  :  ~/.bash_profile    /etc/profile

四个目录  :  /etc/   ~/ (当前用户家目录)    /etc/profile.d/     /etc/sysconfig/

   bashrc和profile    .bashrc和.bash_profile

 

用户登陆系统后会先加载/etc/profile全局变量文件,加载完后执行/etc/profile.d/目录下的脚本文件(如:系统的字符集设置/etc/sysconfig/i18n),然后在运行$HOME/.bash_profile(用户环境变量文件),在这文件里找到$HOME/.bashrc(用户环境变量文件) ,就有执行,没有不执行,在$HOME/.bashrc 找 /etc/bashrc(全局变量文件)有就执行,没有就不执行。

 

如果希望用户的shell不是登陆时启动的(如手动敲下bash时启动或者远程ssh连接情况),

非登陆shell只会加载$HOME/.bashrc(用户环境变量文件),并会去找/etc/bashrc(全局变量文件)   

 

#总结:非登陆shell想要读到自定义的环境变量,需要将变量设定写入$HOME/.bashrc(用户环境变量文件)或/etc/bashrc(全局变量文件)  #因为他只能去看这两个文件(两个bashrc文件)(他看不了两个profile文件)

发布了150 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43309149/article/details/104361526