简介:介绍终端下如何配置、恢复环境变量。
1.PATH
众多环境变量中的一个,也是我们经常需要配置的变量之一,指的是可执行程序的路径,例如javac(编译)、java(执行)等。在终端下键入echo $PATH
(echo用来查看具体变量),将显示该路径:
2.需求
我们已经安装了TOMCAT,
每次启动时,我们都要先从终端进入bin目录,再在当前目录下启动tomcat,
现在,我们希望在任意目录下,我们都可以直接启动tomcat,像javac -version
指令一样。
3.分类
环境变量其实代指的是文件存放路径,配置环境变量是为了让操作系统快速找到该路径下的文件。它分为用户级环境变量和系统级环境变量:
- 用户级:每个用户不同,不同用户为自己的应用设置变量路径
- 系统级:所有用户共享,一般覆盖着操作系统提供的使用路径
当操作系统需要使用到环境变量时,它会首先在用户所定义的环境变量中寻找,当它发现用户没有定义该变量时才会去求助系统级环境变量。在终端键入env
可以查看所有的环境变量,包括用户级和系统级(由于还没有设置用户级环境变量,下图只是操作系统自带的系统级环境变量)。
我们在终端下启动可执行文件(即一个应用)用到的环境变量就是PATH
,由于我们没有定义自己的用户变量,而系统级环境变量又不会包含TOMCAT的执行路径。所以当我们直接键入启动tomcat的指令时,就会返回command not found
的提示语。
4.配置(用户级)
echo $SHELL
查看自己终端所使用的shell类型
csh的用户级环境变量保存在
.bash_profile
文件中,ksh的用户级环境变量保存在.profile
文件中。首先确认shell的用户级环境变量存放的文件位置,然后再把相关的命令存放进去。下面的操作是以csh为例:
操作系统默认对用户隐藏,我们可以在终端键入指令来打开它 : open ~/.bash_profile
还没有定义过任何变量,现在我们要把TOMCAT的可执行文件路径加入进去
定义变量:
CATALINA_HOME=/Users/apple/Library/Abao/tomcat
。我们只需要将tomcat根目录路径放在变量中去即可,当然这个路径与你存放文件的位置有关,(CATALINA_HOME代指tomcat的文件路径,也是它的一个别称)。
加入PATH:
PATH=$PATH:$CATALINA_HOME/bin
。“$+变量名” 表示引用,“ :”表示路径分隔符,“ /bin ”指当前引用下子目录。startup.sh和shudown.sh文件正是放在此目录下。
- 导入,利用export放入环境变量池中。
4.关闭,键入
source ~/.bash_profile
进行刷新,查看PATH。5.查看变量池。
6.测试TOMCAT启动程序。
5.配置(系统级)
前面讲过,用户级环境变量的优先级高于系统级环境变量。所以,如果我们已经配置了用户级环境变量,那么再去更改系统级环境变量可能不会起作用(考虑到配置用户变量时引用了系统变量,所以这里用了“可能”)。并不建议去修改系统变量,即使这台电脑只有你一人会使用,特别是在只需简单配置用户变量就可以满足使用需求的情况下。只有满足下面两点情况时,你才应该考虑系统级环境变量的配置:
- 这是一条频繁、长期使用的路径
- 还有其它路径需要在用户变量经常修改,造成了混乱
例如我会经常使用tomcat去调试servlet页面,同时我还用到了很多辅助程序,但这些程序只是偶尔使用而且会定期变化,所以我就应该将tomcat的路径变量放入系统级变量中,辅助程序的路径放入用户级变量中(使用次数过少的程序甚至都不应该设置环境变量,你只需要进入它的目录下然后启动它)。同时,为了避免用户级变量覆盖掉系统级变量,我规定定义用户变量时只允许引用系统级变量而不允许覆盖它。
删除先前配置的用户变量
系统级环境变量存放在
/etc/profile
文件中,普通用户没有访问权限,在终端键入:sudo vim /etc/profile
, 进入管理员模式,并输入密码(直接输入即可,UNIX操作系统不会显示密码的输入)
会提示你正在修改系统级变量,请谨慎。
按着ENTER键阅读提示内容,阅读完就可以返回上面的文本部分。
5.当左下角出现--INSERT--
时,你就可以开始添加系统级环境变量了(对照一下下图,确保你没有不小心删掉原先的内容)。
6.和之前一样,我们需要新添加变量然后把它放入PATH中,然后再导入系统。
7.按下esc键退出编辑,看到左下角--INSERT--
消失。
8.键入:wq!
, 回车保存。
9.查看PATH。