zzxworld

Linux 环境变量查看和配置指南

Linux 环境变量查看和配置指南

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

如果是要永久删除配置文件中的环境变量,需要去相应的配置文件中移除相关的配置项。