我们在Linux或者MacOS系统安装软件并配置环境变量,或者进行一些设置的时候,总会碰到这样的问题——为什么有些设置是在bash_profile中进行,而有些却是bashrc?本文从实用性和易理解性出发,试着解释一下
角度一——设置分为全局的和当前用户的:
设置后会对所有用户造成影响的文件:
- /etc/bashrc
- /etc/bash_profile
设置后只对当前用户管用的文件:
- ~/.bashrc
- ~/.bash_profile
角度二——rc系列和profile系列的不同生效方式,决定了它们不同的用途
- rc系列,即~/.bashrc,修改之后如果你想让它生效,只要重新打开一个终端窗口就可以。所以bashrc中的内容可以被多次加载
- profile系列,如~/.bash_profile,修改之后想使之生效,仅仅重新打开一个终端窗口是不行的,你需要重新开启新的会话,bash_profile才能生效。所以bash_profile的内容仅仅在登录的时候被加载一次
- 用途:
- bashrc多存储类似“alias”、“shopt”这类内容,可以多次加载
- bash_profile多存储环境变量,如%JAVA_HOME%,在一次会话开启时就加载,而且只加载一次,无需多次加载