在Mac终端中用env命令可快速列出当前Shell会话所有已生效环境变量,严格按字母序排列;可用printenv精准查询单个或多个变量值,或通过env | grep配合正则(如^JAVA=)实现精确过滤,还可保存为env_now.txt文件供后续离线分析。

在Mac终端中快速列出所有已生效的环境变量并按需筛选,是排查命令找不到、路径异常或开发工具配置失败的第一步。直接运行env获取原始快照,比翻查配置文件更准确,因为变量可能来自多层文件叠加或临时设置。
一次性列出全部环境变量
打开“访达”→“应用程序”→“实用工具”→双击“终端”,启动后直接输入:
env
回车后立即滚动显示所有变量,格式为变量名=变量值,严格按字母顺序排列。PATH、HOME、USER、SHELL这些核心变量一定在其中。【注意】这个输出反映的是当前Shell会话实际生效的全部导出变量——只要它此刻在内存里,就一定会出现,不受配置文件是否被source过的影响。
精准过滤单个或多个变量
方法一:只看PATH内容
printenv PATH
方法二:同时查HOME和USER
printenv HOME USER
方法三:模糊搜索含“JAVA”的变量(大小写不敏感)
printenv | grep -i java
【注意】printenv不加参数时行为与env完全一致;但加了变量名后只输出值本身,不带“变量名=”前缀——这个特性让它特别适合写进脚本做自动判断。
用grep对env全量输出做关键词过滤
第一步:用管道把env输出传给grep
env | grep PATH
第二步:忽略大小写搜索含“android”的变量
env | grep -i android
第三步:排除干扰项,只显示以“JAVA”开头的行(更精确)
env | grep "^JAVA="
这一步的关键在于:env本身不支持内置过滤,必须依赖grep。用^JAVA=能避免匹配到值里含JAVA的其他变量(比如MY_JAVA_TOOL),而单纯grep JAVA可能误命中。
保存当前环境快照并后续过滤
执行以下命令将完整列表写入当前目录下的env_now.txt:
env > env_now.txt
检查是否生成成功:
ls -l env_now.txt
查看文件内容:
cat env_now.txt
这个文件是你当前会话的环境变量“快照”,可用于对比不同终端窗口的差异。下次想查某个变量,直接用grep查这个文件即可,不用重复跑env:
grep "^PATH=" env_now.txt

















