Linux 环境变量就跟其名称所定义的那样,用来定义系统运行时所需的一些环境参数。比如用户主目录,Shell 程序的位置,所用的语言编码,命令执行的搜索路径等。是深入使用 Linux 时离不开的一个核心概念。
查看环境变量
Linux 的环境变量通常以大写字母的形式定义,比如用户主目录的环境变量名称就为 HOME
。打开终端程序,通过 echo
命令就能查看其变量值:
echo $HOME
注意前面的 $
符号,在使用 Shell 中使用环境变量时,需要在名称前加上此符号。在我的电脑上,此命令的输出格式如下:
zzxworld@debian:~$ echo $HOME
/home/zzxworld
/home/zzxworld 即为 HOME
变量的值。
那么除了 HOME
,怎么知道系统中还有那些可用的环境变量呢?答案是 env
命令:
zzxworld@debian:~$ env
SHELL=/bin/bash
LANGUAGE=zh_CN:zh
PWD=/home/zzxworld
LOGNAME=zzxworld
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/home/zzxworld
LANG=zh_CN.UTF-8
...
env
命令会列出当前所有已定义的环境变量和值。格式为 NAME=VALUE
这种键值形式。
配置环境变量
如果是临时性的环境变量,可以直接在命令窗口中以 =
符号定义:
DEV_USER=zzxworld
上面就定义了一个以 DEV_USER
命名的环境变量,值为 zzxworld
。注意环境变量命名,要保持大写,如果有多个单词可以用下划线区分。通过 echo
命令可以查看:
zzxworld@debian:~$ echo $DEV_USER
zzxworld
这种方式定义的环境变量,当退出命名窗口后就自动销毁了。如果需要永久保留,可以定义到用户主目录。编辑 ~/.bashrc 文件,在末尾添加以下内容:
DEV_USER=zzxworld
然后退出终端后重新进入,或者使用 source ~/.bashrc
引入一下配置立即生效即可。无论之后退出登录还是重启系统,此环境变量都会一直存在。
除了在 ~/.bashrc 文件,也可以在 ~/.profile 文件中定义,效果一样。如果使用的是 ZSH,也可以定义到 ~/.zshrc 文件。
以上定义的环境变量有作用范围,局限于当前用户使用。如果要定义跨用户的系统级别环境变量,可以定义到 /etc 目录下的几个同名文件,它们的名称分别如下:
- /etc/environment
- /etc/profile
- /etc/bashrc
- /etc/bash.bashrc
定义的方法和上面类似。
删除环境变量
如果是临时环境变量,或者是要临时删除一下环境变量,可以使用 unset
命令:
unset $DEV_USER
如果是要永久删除配置文件中的环境变量,需要去相应的配置文件中移除相关的配置项。