linux 中的环境变量

2022-11-02 16:28:52 浏览数 (1)

环境变量,environment variables,在操作系统及用户应用间都有极大的作用。

1. printenv

通过 printenv 可获得系统的所有环境变量。

代码语言:javascript复制
$ printenv
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
HISTTIMEFORMAT=%F %T shanyue
HOSTNAME=training
which_declare=declare -f
XDG_SESSION_ID=204
USER=shanyue
PWD=/home/shanyue
HOME=/home/shanyue
SSH_TTY=/dev/pts/4
MAIL=/var/spool/mail/shanyue
TERM=screen-256color
SHELL=/bin/bash
SHLVL=1
LOGNAME=shanyue
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
PATH=/home/shanyue/.local/bin:/home/shanyue/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
HISTSIZE=10000
_=/usr/bin/env

从以上命令输出,可以看出 「环境变量命名一般为全部大写」

我们也可以通过 printenv,来获得某个环境变量的值。

代码语言:javascript复制
$ printenv HOME
/home/shanyue

除此之外,通过 var 或者 {var} 可以取得环境变量,并通过 echo 进行打印。

代码语言:javascript复制
$ echo $HOME
/home/shanyue

$ echo ${HOME}

2. $HOME

$HOME,当前用户目录,也就是 ~ 目录。

代码语言:javascript复制
$ echo $HOME
/home/shanyue

# 以下两个命令是等价的
$ cd $HOME
$ cd ~

3. $USER

$USER,即当前用户名。

代码语言:javascript复制
$ echo $USER
shanyue

# 该命令也可获得当前用户名
$ id --user --name
shanyue

4. $SHELL

在 linux 中,有许多的 shell 工具,比如:

  • bash1
  • zsh2
  • sh

bash 是 linux 系统内置的 shell,我们可以通过环境变量 SHELL 获得当前是哪一个 SHELL。

代码语言:javascript复制
$ echo $SHELL
/bin/bash

5. $PATH

见 PATH

6. export

通过 export 可配置环境变量

代码语言:javascript复制
$ export A=3
$ echo $A
3
$
$ export NODE_ENV=production
$ echo $NODE_ENV
production

「如果需要使得配置的环境变量永久有效,需要写入 ~/.bashrc 或者 ~/.zshrc

7. 前置环境变量

在执行命令之前置入环境变量,可以用以指定仅在该命令中有效的环境变量。

代码语言:javascript复制
# 该环境变量仅在当前命令中有效
$ NODE_ENV=production printenv NODE_ENV
production

# 没有输出
$ printenv NODE_ENV

在前端中大量使用,如

代码语言:javascript复制
$ NODE_ENV=production npm run build

参考资料

[1]

bash:https://www.gnu.org/software/bash/

[2]

zsh:https://www.zsh.org/

0 人点赞