环境变量解释以及在Linux下的环境变量设置
一、环境变量解释
环境变量是什么?
引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还可以到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
为什么需要环境变量?
windows系统下,假如我们安装了某一款软件,安装结束后,在安装目录会生成一个该软件的.exe文件,双击该文件,我们就能启动软件。但是难道我们每次要运行该软件的时候都要先找到该.exe文件所在的路径,然后双击吗,显然是不可能的,因为我们根本不可能记住所有已安装软件的路径。 这时候就需要环境变量了。下来我们通过例子了解一下。
QQ举例
首先安装好QQ,我们不用桌面快捷方式打开它,用Windows的dos窗口打开,进入dos界面后,直接输入QQ回车发现:
你想要让系统运行一个程序,你首先得告诉它这个程序在哪。所以我们要将QQ的可执行文件位置告诉系统,也就是说将该文件路径给系统。
将此路径给系统后:
然后你的QQ就打开了;接着你关掉dos后重新进入,输入QQ发现,又是上面的问题,这就意味着你要从dos打开QQ的话,必须每次进入QQ.exe文件所在路径,每次都得给系统QQ.exe文件的绝对路径;
所以,就很麻烦,那怎么解决呢?一个一劳永逸的方法就是将QQ.exe的文件路径放在Path环境变量里面,以后要打开QQ就不用每次进入该路径了。如下图所示:
接下来打开dos输入QQ回车:
二、Linux下的环境变量解释及设置
同理,在Linux系统上的环境变量与Windows上的作用类似。在Linux系统,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了, 这就需要设置path环境变量了。
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变量
这里我们只用 export 命令举例来查看PATH值:
xxx@xxx:~$ export
declare -x CLUTTER_IM_MODULE="xim"
declare -x COMPIZ_CONFIG_PROFILE="ubuntu"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-RvyK9kjBBX"
declare -x DEFAULTS_PATH="/usr/share/gconf/ubuntu.default.path"
declare -x DESKTOP_SESSION="ubuntu"
declare -x DISPLAY=":0"
declare -x GDMSESSION="ubuntu"
declare -x GDM_LANG="en_US"
declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
declare -x GNOME_KEYRING_CONTROL=""
declare -x GNOME_KEYRING_PID=""
export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过 export “导出”变成一个用户变量。
Linux下环境变量的设置
如果想将一个路径加入到 $PATH 中,可以有几种方法。比如我想将 /tmp/test 路径加入到 $PATH 变量中:
1、控制台中设置 (只对当前shell有效)
执行 export PATH=$PATH:/tmp/test
命令:
2、修改当前家目录下的 .bashrc 文件 (只对当前用户有效)
先执行 vim ~/.bashrc
命令,在最末尾加入下面内容,然后 source ~/.bashrc
,使配置文件生效。
export PATH=$PATH:/tmp/test
3、修改/etc/bashrc 文件 (针对所有用户有效)
先执行 sudo vim /etc/profile
命令,在最末尾加入下面内容,然后 source /etc/profile
,使配置文件生效。
export PATH=$PATH:/tmp/test
注:source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
参考: