[toc]
分类
生效范围
- 系统环境变量,对所有用户所有程序开放
- 用户环境变量,只对某用户生效
生存周期
- 永久生效
- 临时生效,当退出shell的时候就失效了
查看
- env:查看当前用户的所有环境变量
- echo:根据环境变量key获取value,如 echo $JAVA_HOME
设置
临时性
仅在当前shell会话有效,退出shell后失效。如:
export key='value'
系统环境变量
系统环境变量对所有用户开放,并且永久生效。
- profile:在/etc/profile文件中新增。在系统启动或者执行
source /etc/profile
的时候将按照文件内容更新系统环境变量
export JAVA_HOME=/usr/local/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64
export PATH=${JAVA_HOME}/bin:$PATH
- profile.d:在/etc/profile.d目录下编写脚本。脚本名字随便取,在脚本内部编写环境变量配置。在系统启动或者执行
source /etc/profile
的时候会挨个执行此目录中的脚本,从而更新系统环境变量
test-profile.sh
export age='666'
用户环境变量
在用户目录下,有几个隐藏的文件,使用 ls .bash_*
才可以看到。
- .bash_profile:当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。
- .bashrc:当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
执行顺序
/etc/profile->/etc/profile.d->用户的.bash_profile->用户的.bashrc
同名的环境变量,如果在多个脚本中有配置,以最后执行的脚本中的配置为准