操作系统 CentOS 6.5
在配置服务器时,环境变量是我们经常打交道的东西,无论是jdk、还是maven仓库,都需要用到,笔者对Linux有多种配置环境变量的方式,起到的作用也不尽相同,特进行整理,方便查阅;
环境变量的配置分为两种,一种是全局的,作用于所有用户,如/etc/profile
,另一种是作用于个人的,如~/.bash_profile
,各个环境变量根据需要配置在不同的地方。
/etc/profile
此文件为系统的每个用户设置环境信息,用户第一次登录时执行,并从 /etc/profile.d
目录的配置文件中搜集shell设置,修改需要重启才会生效;
/etc/bashrc
为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取,修改后无需重启,重新打开一个bash即可;
~/.bash_profile
此文件为每个用户设置专属的shell信息,只对当前用户有效,用户登录时加载,修改后需要重启;
~/.bashrc
该文件包含专属于当前用户的bash shell的bash信息,当登录或打开新的shell时,文件被读取,修改后重新打开一个bash即可生效,但仅对当前用户有效;
~/.bash_logout
每次退出系统或退出bash shell时执行该文件
继承关系
-
/etc/profile
中设定的变量(全局)的可以作用于任何用户,而~/.bashrc
等中设定的变量(局部)只能继承/etc/profile
中的变量,他们是"父子"关系 -
~/.bash_profile
是交互式、login 方式进入bash 运行的,而~/.bashrc
是交互式 non-login 方式进入bash 运行的,通常二者设置大致相同,所以通常前者会调用后者。