Linux
环境变量,environment variables,在操作系统及用户应用间都有极大的作用。
1、printenv
通过 **printenv** 可获得系统的所有环境变量。
$ printenvLANG=zh_CN.UTF-8HISTCONTROL=ignoredupsHISTTIMEFORMAT=%F %T fcantHOSTNAME=trainingwhich_declare=declare -fXDG_SESSION_ID=204USER=fcantPWD=/home/fcantHOME=/home/fcantSSH_TTY=/dev/pts/4MAIL=/var/spool/mail/fcantTERM=screen-256colorSHELL=/bin/bashSHLVL=1LOGNAME=fcantDBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busXDG_RUNTIME_DIR=/run/user/1000PATH=/home/fcant/.local/bin:/home/fcant/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbinHISTSIZE=10000_=/usr/bin/env
从以上命令输出,可以看出 「环境变量命名一般为全部大写」。
也可以通过 **printenv**,来获得某个环境变量的值。
$ printenv HOME
/home/fcant
除此之外,通过 **$var** 或者 **${var}** 可以取得环境变量,并通过 **echo** 进行打印。
$ echo $HOME
/home/fcant
$ echo ${HOME}
2、$HOME
**$HOME**,当前用户目录,也就是 ~ 目录。
$ echo $HOME
/home/fcant
# 以下两个命令是等价的
$ cd $HOME
$ cd ~
3、$USER
**$USER**,即当前用户名。
$ echo $USER
fcant
# 该命令也可获得当前用户名
$ id --user --name
fcant
4、$SHELL
在 Linux 中,有许多的 Shell 工具,比如:
- bash
- zsh
- sh
而 bash 是 linux 系统内置的 shell,可以通过环境变量 SHELL 获得当前是哪一个 SHELL。
$ echo $SHELL
/bin/bash
5、$PATH
6、export
通过 **export** 可配置环境变量
$ export A=3
$ echo $A
3
$
$ export NODE_ENV=production
$ echo $NODE_ENV
production
「如果需要使得配置的环境变量永久有效,需要写入 ~/.bashrc 或者 ~/.zshrc」
7、前置环境变量
在执行命令之前置入环境变量,可以用以指定仅在该命令中有效的环境变量。
# 该环境变量仅在当前命令中有效
$ NODE_ENV=production printenv NODE_ENV
production
# 没有输出
$ printenv NODE_ENV
在前端中大量使用,如
$ NODE_ENV=production npm run build
