微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐