Linux环境变量的加载顺序

先上结论:

 /etc/profile -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

注: 后面的变量会覆盖前面顺序的变量

/etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umask等等。

/etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了,例如 [root@localhost ~]#,当bash shell被打开时,该文件被读取

二、用户环境变量

.bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。(在这个文件中有执行.bashrc的脚本)

.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。

.bash_history :记录命令历史用的。

.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中

关于变量的覆盖的实验:

   提前工作: 在/etc/profile文件新增 test_env变量   (注意 需要切换到root用户进行操作)

export test_env=/etc/profile

 然后再在 .bashrc 文件中也新增 test_env变量 

export test_env=~/.bashrc

最后使用如下命令使其生效

[admin@iZwz9eldxtlzr8azk280b7Z ~]$ source  /etc/profile
[admin@iZwz9eldxtlzr8azk280b7Z ~]$ source ~/.bashrc 

最后我们查看结果:test_env使用的是最后的 .bashrc里面的值

[admin@iZwz9eldxtlzr8azk280b7Z ~]$ echo $test_env
/home/admin/.bashrc

补充知识: login shell和non-login shell 

linux中的login shell和non-login shell重点解析_学无止境-CSDN博客_non-login shell

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值