先上结论:
/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] 举报,一经查实,本站将立刻删除。