目录标题
1. 什么是环境变量?
环境变量也称为全局变量,可以分为自定义环境变量和bash内置的环境变量,环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可写在文件中。
全局文件为/etc/profile,对所有用户有效;用户文件为~/.bash_profile仅对指定用户有效。
用户环境变量配置:.bashrc .bash_profile
全局环境变量配置:/etc/profile /etc/bashrc(推荐) /etc/profile.d/ (更改完运行source /etc/profile),如果想要在登录后初始化或者显示加载的内容,只需要把脚本文件放在/etc/profile.d文件下即可(不需要加执行权限)
如果要列出系统中所有的环境变量,可使用env命令
自定义环境变量:
如果想设置环境变量,就要给变量赋值后或设置变量时使用export命令,export命令和declare命令的格式:
export 变量名=value
变量名=value;export 变量名
declare -x 变量名=value
在java环境中,自定义环境变量,通常放在/etc/profile全局环境变量里。
配置java的jdk环境:
1.export JAVA_HOME=/application/jdk
2.export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
3.export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
4.export RESIN_HOME=/application/resin
2. 常用的环境变量
[root@localhost 2-12]# echo $HOME
/root
[root@localhost 2-12]# echo $USER
root
[root@localhost 2-12]# echo $UID
0
[root@localhost 2-12]# echo $PWD
/root/shell/2-12
[root@localhost 2-12]# echo $SHELL
/bin/bash
环境变量知识小结:
- 变量名通常要大写
- 变量名可以在自身shell以及子shell中使用
- 常用export来定义环境变量
- 执行env默认可以显示所有的环境变量名称以及对应的值
- 输出时用“$变量名”,取消时用“unset变量名”
- 如果希望环境变量永久生效,则可以将其放在用户环境变量文件或者全局环境变量文件里。
登录shell读取环境变量文件的流程:
用户登录系统后首先会加载/etc/profile全局环境变量文件,加在完成后,执行/etc/profile.d
目录下的脚本文件(如:系统字符集设置/etc/sysconfigil8n
),然后在运行$HOME/.bash_profile
(用户环境变量文件),在这文件里会找$HOME/.bashrc
找/etc/bashrc
(全局环境变量文件)有就执行,没有就不执行。如果希望用户的shell不是登陆时启动的(如:手动敲下bash时启动或者远程ssh链接情况),非登陆shell只会加载$HOME/.bashrc
(用户环境变量文件),并会取找/etc/bashrc(全局环境变量文件)。即非登陆shell想读到设置的环境变量,需要将变量设定等写入$HOME/.bashrc
或/etc/bashrc
而不是$HOME/.bash_profile
或/etc/profile
。