/etc/environment仅支持纯键值对(如path="/usr/bin:/bin"),不支持export、变量展开或拼接;修改后需重新登录生效,格式错误会导致path丢失甚至无法登录。

在 Linux 中通过 /etc/environment 设置环境变量,核心是遵守它的严格语法和加载机制。它不是脚本,不能执行命令,只做静态键值对赋值。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
/etc/environment 只支持 KEY="value" 格式
每行必须是形如 JAVA_HOME="/usr/lib/jvm/java-17" 或 PATH="/usr/bin:/bin:/opt/myapp/bin" 的纯赋值语句。
不支持以下任何内容:
-
export关键字 -
$PATH、$HOME等变量展开 -
:拼接、+追加、条件判断或 Shell 表达式 - 未加引号的含空格值(如
EDITOR=nano -w会失败)
PATH 必须完整重写,不能追加
因为该文件不解析原有值,你写的 PATH 会完全替代系统默认路径。漏掉 /usr/bin 或 /bin,会导致 ls、cp 等基础命令找不到。
正确示例:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64" PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/myapp/bin"
生效方式不是 source,而是重新登录/etc/environment 由 PAM 在用户登录时直接读取,执行 source /etc/environment 无效且可能报错。
要验证是否生效,必须:
- 图形界面:注销当前用户,再重新登录
- SSH:断开连接后重连
- TTY:按 Ctrl+Alt+F2 切到字符终端,用账户密码重新登录
出错会导致 PATH 丢失甚至无法登录
若某行格式错误(比如少了引号、用了 export、写了 $PATH),整个文件加载失败,PAM 会跳过后续所有变量,包括默认 PATH。常见现象是登录后黑屏、终端打不开、或提示 Command 'ls' not found。
恢复方法:
- 在登录界面按 Ctrl+Alt+F1 进入 TTY
- 用
sudo nano /etc/environment修正或清空内容 - 保存后按 Ctrl+Alt+F7(或 F2)切回图形界面并重试
不复杂但容易忽略。










