bash shell用一个叫作环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原因)。这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。

简单来说环境变量就是在交互环境中预先被设定的变量,能够让程序启动的时候更快的找到他们或者为某些程序预先设置运行条件的变量设置。如电脑中两个Java,指定环境变量能够让Java默认启动第一个或者第二个。

在shell编程中尽量使用大写字符作为变量名称。并且环境变量不能够以数字作为变量名的开头。

环境变量发赋值与输出

1
2
变量名称=变量值
echo $变量名称

全局变量与局部变量

全局变量生效与所有的shell环境中。 export a=1

1
2
3
4
5
6
7
[root@my server~]# echo $b
2
[root@myserver~]# b=2
[root@myserver~]# export b
[root@myserver~]# bash
[root@myserver~]# echo $b
2

局部:仅生效与当前的环境中

1
[root@myserver~]# b=2

如何查看系统中的环境变量

1
2
[root@myserver~]#env | grep HOME
HOME=/root

删除环境变量

1
2
3
4
[root@myserver~]# env | grep a=1
a=1
[root@myserver~]# unset a
[root@myserver~]# env | grep a=1

/etc/profile

1
2
3
4
5
6
7
8
# 查看环境变量
echo $PATH
# 新增环境变量
PATH=$PATH:/root
# 修改文件
vim /etc/profie
# 重新加载环境变量生效
source /etc/profile

环境变量涉及的文件

  • /etc/profile : The systemwide initialization file, executed for login shells。系统初始化文件,在login shells时执行
  • /etc/bash.bash_logout : The systemwide login shell cleanup file, executed when a login shell exits。系统的登录shell清理文件,当一个登录shell退出时执行。
  • ~/.bash_profile : The personal initialization file, executed for login shells。个人初始化文件,为登录shell执行。
  • ~/.bashrc : The individual per-interactive-shell startup file。每个交互式shell启动文件。
  • ~/.bash_logout : The individual login shell cleanup file, executed when a login shell exits。单个登录shell清理文件,当一个登录shell退出时执行。

这些文件涉及到bash与shell相关的知识,但是在个人配置环境变量的时候经常接触到,了解文件的作用机制可以更好的在不同文件当中设置环境变量

回顾

java 环境变量的配置:

1
vim /etc/profile

添加以下内容

1
2
3
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HIOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar