0%

环境变量

环境变量

环境变量的设置

使用export命令

1
2
3
4
export age=18

# 查看当前环境
export -p

环境变量查询

使用set可以查看所有变量(包括环境变量、局部环境变量、用户定义变量),使用env只能查看环境变量

1
set
1
2
3
4
5
6
7
8
# 使用env或printenv
env

# printenv还可以查看单个环境变量
printenv JAVA_HOME

# 也可以使用echo来查看,不过环境变量前要加$
echo $JAVA_HOME

环境变量删除

使用unset来删除环境变量

1
2
#删除age环境变量
unset age

PATH变量

系统查找命令是查的PATH变量中所定义的路径

1
2
echo $PATH
/Users/zhanghe/.nvm/versions/node/v14.7.0/bin:/usr/local/Cellar/flume/1.9.0_1/libexec/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/zhanghe/Desktop/user/apache-maven-3.6.3/bin:/Users/zhanghe/Desktop/user/scala-2.13.3/bin

每一个路径使用”:”来分隔

这个分隔不同的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
2
# -a是为了找到当前路径下的所有文件,包括隐藏文件
ls -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

欢迎关注我的其它发布渠道