环境变量
在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。
在Linux系统下,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了。 这涉及到环境变量path的设置问题,而path 的设置也是在Linux下定制环境变量的一个组成部分
那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径
Shell定义的环境变量
Shell在开始执行的时候就已经定义了一些与系统工作环境有关的变量,用户还可以重新定义这些变量。
常用的shell环境变量有以下几种。
- HOME:用于保存用户主目录的完全路径名。
- PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
- SHELL:当前用户使用的Shell
- UID:当前用户的UID
- LOGNAME:当前用户的登录名
- HOSTNAME:主机名称
查看环境变量
Linux中set 、env 和 export 都可以查看环境变量
- set命令显示当前shell的变量,包括当前用户的变量,set主要用来设置sh的参数与选项
- env命令显示当前用户的变量,env用来在构建的环境中运行命令
- export命令显示当前导出成用户变量的shell变量
每个shell都有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,
但shell自己的变量不同,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的
export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过 export “导出”变成一个用户变量。
Linux下环境变量的设置
如果想将一个路径加入到 $PATH 中,可以有几种方法
比如我想将 /tmp/xie 路径加入到 $PATH 变量中
1.直接在命令行中设置PATH(只对当前shell有效)
PATH=$PATH:/tmp/jw
2.在profile中设置PATH
vim /etc/profile
在最后加入
export PATH=$PATH:/usr/local/apache/bin 注:= 等号两边不能有任何空格
. /etc/profile 重启
export PATH=$PATH:/usr/local/apache/bin 解析
PATH:路径
$PATH:当前已设置的路径
PATH=$PATH:/usr/local/apache/bin #(path=path+/usr/local/apache/bin)
其中:是多个路径的分隔符
3.在当前用户的profile中设置PATH
vim ~/.bash_profile
在最后加入
export PATH=$PATH:/usr/local/apache/bin 注:= 等号两边不能有任何空格
source ~/.bash_profile 重启