1. 系统定义好的变量
- PATH:决定了 shell 将到哪些目录中寻找命令或程序
- HOME:用户的家目录
- USER:用户登录的用户名。
- PWD:当前系统路径(当前用户所在目录)
- HISTSIZE:shell 的历史记录, 能记录最多历史命令的条数
- LOGNAME:用户的登录名(等同于 USER)
- HOSTNAME:主机的名称
- HOST:指主机的名称(macos)
- SHELL:当前用户正在使用的shell, 默认使用的是
/bin/bash
LANGUGE:语言相关的环境变量,多语言可以修改此环境变量(不重要)MAIL:用户邮件的存放目录(不重要)
2. 变量周期分类
- 零时变量: 用
export
命令在终端环境下声明变量,重启 Shell 就会失效 - 永久变量: 用户将变量添加到相关的配置文件,如:
/etc/profile
~/.bash_profile
~/.zshrc
,添加后则永久生效, 重启 shell 也不会失效,
3. 变量作用域分类
- 用户级: 仅对设置这个变量的用户生效,对其他用户则无效
- 将环境变量写进用户目录下的
~/.bash_profile
或~/.zshrc
文件里面 .bash_profile
是针对 bash 用户的,.zshrc
是针对 zsh 用户的.
- 将环境变量写进用户目录下的
- 系统级: 对该系统中所有用户都有效
- 将环境变量写进系统目录下的
/etc/profile
文件里面
- 将环境变量写进系统目录下的
书写格式
这里我们约定俗成一下名词: 变量值=路径
# 单变量值
export 变量名=路径1
# 多变量值
export 变量名=路径1:路径2:路径3:路径4
# 引用变量作为变量值
export 变量名=$变量1:$变量2:路径1:路径2
- 如果直接写成
export PATH=/.../.../...
, 这样新添加的变量会覆盖PATH
之前的所有的变量值,若想不覆盖就要书写成export PATH=$PATH:/.../...
$PATH
的作用是新加的路径也包含自己, 相当于引用了PATH
自己现有的变量值- 这里的
$
符号可以理解为引用符号, 引用已经定义的变量的值
- 追加多条路径由
:
进行分隔, 如:export PATH=$PATH:$HOME/nvim/:/tmp/
,:
后面加上自己要追加的路径, 新加的路径会追加到PATH
里面
4. 变量相关命令
- env: 查看当前用户全部的环境变量
- export: 显示当前系统定义的所有环境变量, 设置环境变量
- printenv: 查看指定环境变量的值
- unset: 清除指定环境变量