env命令用于查看或临时修改环境变量并在指定环境下运行程序:不带参数时列出当前所有已导出的环境变量(key=value格式);支持通过name=value设置临时变量、-i清空环境、-u删除指定变量等,仅对后续命令生效。

直接运行 env 就能列出当前 shell 中所有已生效的环境变量,每行一个 KEY=VALUE 格式。
用 env 查看全部环境变量
env 是最常用、最标准的方式,它只显示真正导出(export)过的、可被子进程继承的变量。输出简洁,不含函数或本地 shell 变量。
- 查看全部:
env - 过滤特定变量:
env | grep PATH或env | grep -i home - 保存快照供比对:
env > env_before.txt
用 export -p 查看带声明语法的列表
export -p 输出格式更明确,每行以 declare -x 开头,后面跟变量定义,比如 declare -x PATH="/usr/bin:/bin"。它和 env 内容基本一致,但更适合脚本解析或确认某个变量是否已被 export。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 查看全部:
export -p - 查某变量是否已导出:
export -p | grep JAVA_HOME - 注意:
export -p不显示未 export 的普通 shell 变量(如MY_VAR=123),这点和set不同
别混淆:env 和 set 的关键区别
env 和 export -p 都只关注“环境变量”;而 set 会列出更多内容——包括未导出的 shell 变量、函数、内部选项等,信息量大但干扰多。
- 如果只想确认变量是否对子进程可见,用
env或export -p - 如果调试 shell 行为(比如发现变量值没生效),再用
set | grep 变量名看它是否存在、是否漏了 export - 例如:
TEST=abc定义后,env | grep TEST无输出,set | grep TEST能看到 —— 说明它只是 shell 变量,还没成为环境变量
快速验证某个变量是否生效
与其翻长列表,不如直接查目标变量:
- 看值:
echo $PATH(注意$符号不能漏) - 看是否在环境里:
printenv PATH(比 echo 更可靠,不依赖 shell 展开) - 查是否存在:
env | grep ^PATH=(加^和=避免匹配到含 PATH 的其他变量名)










