日常问题解决:Linux配置文件生效,.bashrc与.bash_profile

从java 环境变量设置问题开始

背景:

linux 非root用户,在用户.bash_profile 文件(用户目录下,一般隐藏采用ll -a 命令可查看)中添加如下环境配置

JAVA_HOME=/JAVA/jdk1.8

CLASSPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH CLASSPATH

保存,source一下,执行java -version 显示正常

问题:规定用户需在.bashrc 文件(与.bash_profile 文件同目录)中修改,不得在.bash_profile中修改!那么到底是啥原因有此规定,或者规定有没有意义呢?

这两个配置文件的区别:

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.

~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.

 

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.

 

你可能感兴趣的:(日常问题解决:Linux配置文件生效,.bashrc与.bash_profile)