环境变量
环境变量的设置
使用export命令
1 | export age=18 |
环境变量查询
使用set可以查看所有变量(包括环境变量、局部环境变量、用户定义变量),使用env只能查看环境变量
1 | set |
1 | 使用env或printenv |
环境变量删除
使用unset来删除环境变量
1 | 删除age环境变量 |
PATH变量
系统查找命令是查的PATH变量中所定义的路径
1 | echo $PATH |
每一个路径使用”:”来分隔
这个分隔不同的shell是不一样的,在Bash中使用冒号分隔,而在Tesh中使用空格分隔
可以使用 echo $SHELL 命令来查看当前shell
所以可以通过拼接PATH变量来使得命令变成系统命令
环境变量配置文件
linux系统生效的配置文件有五个
对所有用户生效
- /etc/profile 登录时自动执行
- /etc/profile.d/*.sh 这个是在/etc/profile 中调用的
- /etc/bashrc
对当前用户生效
- ~/.bash_profile 登录时自动执行
- ~/.bashrc 这个是由.bash_profile 中调用的
调用过程
graph LR; A["/etc/profile"] B["~/.bash_profile"] C["~/.bashrc"] D["/etc/bashrc"] E["/etc/profile.d/*.sh"] F["/etc/profile.d/lang.sh"] G["/etc/sysconfig/il18"] H[命令提示符] A-->B-->C-->D; D-->H; D-->E; A-->E; E-->F-->G;
下面以配置java环境变量为例
配置java环境变量
找到用户根目录
1 | -a是为了找到当前路径下的所有文件,包括隐藏文件 |
找到.bash_profile,linux下使用.bash_profile来配置环境变量的
1 | vim .bash_profile |
编辑该文件
1 | export PATH=$PATH:/java/jdk1.8/bin |
linux多个路径之间使用冒号(:)来分隔,$PATH是用于引用之前的PATH变量值
保存文件之后,执行该命令使PATH生效
1 | source .bash_profile |