查看所有环境变量
printenv
env
cat /proc/self/environ
这个命令会显示所有环境变量,但变量之间用 \0(空字符)分隔,适合程序读取而不是直接查看。
P A T H 特殊的环境变量, PATH特殊的环境变量, PATH特殊的环境变量,PATH 变量的值是多个目录的 冒号(:)分隔的列表,Shell 会按照顺序搜索这些目录。
echo $PATH
printenv | grep PATH
export -p
export命令:设置环境变量的值,当前SHELL下有效
export VAR_NAME=“value”
unset命令:移除设置的环境变量
unset VAR_NAME
使环境变量永久生效,使用.bashrc或.zshrc或…
echo ‘export MY_VAR=“hello”’ >> ~/.bashrc
source ~/.bashrc
/etc/environment 和 ~/.bashrc 的核心区别
/etc/environment不需要使用export,即可设置环境变量。
并且环境变量对所有用户生效,而.bashrc则对当前用户生效
/etc/environment不支持SHELL语法,如$VAR
位置 | 作用范围 | 加载时机 | 是否支持 export | 是否支持 Shell 语法 |
---|---|---|---|---|
/etc/environment | 所有用户、所有 Shell 和 GUI 程序 | 登录时加载(PAM) | ❌ 不支持 | ❌ 不支持 |
/etc/profile | 所有用户,仅适用于 bash/sh | 交互式 Shell 启动时 | ✅ 支持 | ✅ 支持 |
/etc/profile.d/*.sh | 所有用户,仅适用于 bash/sh | 交互式 Shell 启动时 | ✅ 支持 | ✅ 支持 |
~/.bashrc | 当前用户,适用于 bash | 非登录 Shell 加载 | ✅ 支持 | ✅ 支持 |
~/.profile | 当前用户,适用于 bash/sh | 登录时加载 | ✅ 支持 | ✅ 支持 |
在其子进程中运行命令
bash -c