环境变量
环境变量,就是放在当前环境中的变量
无论Linux ,还是Windows,都有环境变量
比如,最常用的环境变量 PATH, JAVA_HOME
定义环境变量
export JAVA_HOME=/opt/jdk1.8
显示环境变量
echo $JAVA_HOME
查看所有环境变量
printenv
使用环境变量:
- 在当前命令行窗口里中使用
- 在SHELL脚本中使用
注:其实 SHELL 本身就是命令行的意思
用户环境变量
用户环境变量:定义在 ~/.bash_profile 中
在主目录下
ls -la
其中,a 表示 all ,显示所有文件
注:在Linux下,以 . 开头的文件为 隐藏文件
1 用文本编辑器打开 ~/.bash_profile
gedit ~/.bash_profile
2 添加
export JAVA_HOME=/opt/jdk1.8
保存并关闭
3 注销登录,再次登录时时生效
echo JAVA_HOME
原理:当用户打开终端时,会自动运行 .bash_profile ,将变量注入到当前环境中。
要点与细节:
1 以点号 . 开头的文件为隐藏文件
ls -a 查看所有文件
2 此配置只对当前用户有效
因为每个用户都有自己的配置文件 .bash_profile
系统环境变量
系统环境变量:定义在 /etc/profile 中
此中的环境变量对 所有用户 有效
以 root 登录 或 执行
gedit /etc/profile
在 CentOS 下,一般不直接修改 /etc/profile,而是在 /etc/profile.d/ 创建一个自定义的脚本
演示:
1 用 gedit 创建一个脚本
gedit /etc/profile.d/myprofile.sh
2 定义环境变量
export TOMCAT=/opt/tomcat
3 注销并重新登录
重新登录后,环境变量生效
PATH 环境变量
先来看一个问题:创建一个可执行脚本 hello.sh
直接执行:
明明就在当前目录下,为什么提示找不到?
PATH,最常见的一个环境变量
用于描述可执行程序的搜索路径
echo $PATH
多个路径之间以冒号分隔
/home/shaofa/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
默认地,系统从以下目录中搜索可执行程序
~/bin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
其中, sbin 为超级用户 root 才能执行的程序
/usr/ 下系统自带的程序, /usr/local/ 是用户安装的程序
修改PATH环境变量
例如:
export PATH=$PATH:/opt/jdk1.8/bin
如果要对所有用户生效,需要加到
/etc/profile.d/myprofile.sh