环境变量名严格区分大小写,path和path是两个不同变量;系统级变量须全大写加下划线(如path、java_home),小写或大小写混用将导致配置失效。
环境变量名严格区分大小写,path 和 path 是两个完全不同的变量。很多配置失效问题,其实就卡在大小写上——比如误写成 path、path 或 java_home,系统根本不会识别。
一眼看出大小写是否写错
用 printenv | grep -i "关键字" 先粗筛,再用精确匹配确认:
- printenv PATH —— 正确写法,只显示 PATH 的值;如果返回空或报错,说明变量名可能拼错了
- printenv path —— 小写 path,通常无输出(除非你手动定义过)
- env | grep -E "^(PATH|JAVA_HOME|LD_LIBRARY_PATH)" —— 列出常见大写变量,检查是否全大写、下划线位置是否正确
检查配置文件里的赋值语句
打开你修改过的配置文件(如 ~/.bashrc、/etc/profile),重点看 export 行:
- 错误示例:export path=/usr/local/bin:$PATH(小写 path,无效)
- 错误示例:export JAVA_home=/opt/jdk(中间小写,应为 JAVA_HOME)
- 正确写法:export PATH="/usr/local/bin:$PATH"、export JAVA_HOME="/opt/jdk"
验证当前 Shell 真实加载的变量名
别信编辑器里写的,要看运行时实际生效的:
- 执行 set | grep -E "^[A-Z_]+=" | head -10,只显示以大写字母或下划线开头的变量名(符合命名惯例)
- 对比 env 和 set 输出:env 显示导出的全局变量,set 还包含未导出的局部变量;若某变量只在 set 中出现、不在 env 里,说明漏了 export
- 新开一个终端,再运行 echo $PATH,避免旧 Shell 缓存干扰
预防下次再错的小习惯
Linux 环境变量有明确命名规范,遵守它能避开 90% 的大小写坑:
- 所有系统级和通用环境变量一律全大写 + 下划线(如 PATH、HOME、USER、LD_LIBRARY_PATH)
- 你自己定义的临时变量或脚本内变量,用小写字母(如 my_app_dir),避免和系统变量冲突
- 复制粘贴时注意中英文符号,尤其等号前后不能有空格,也不能混入中文冒号或全角字符











