Linux 环境变量教程：PATH 配置一次搞懂 "命令明明装好了，为什么提示 command not found？"——十有八九是 PATH 没配对。环境变量是 Linux/macOS Shell 的基础知识，也是配置开发环境（Java、Go、Node、Python 虚拟环境）的必修课。本教程依据 GNU Bash 官方手册整理。一、什么是环境变量环境变量是 Shell 和程序都能读到的一组键值对。查看它们： env # 打印所有环境变量 echo $HOME # 家目录 echo $SHELL # 当前 Shell echo $PATH # 命令搜索路径 PATH 是重中之重：当你输入 python 时，Shell 会按 PATH 里的目录从前往后依次找名为 python 的可执行文件，找到第一个就执行。所以"命令找不到"或"执行的版本不对"，根源都在 PATH 的顺序上。二、临时设置与导出 MY_VAR="hello" # 仅当前 Shell 的普通变量，子进程读不到 export MY_VAR="hello" # 导出为环境变量，子进程也能读到往 PATH 追加一个目录（注意冒号分隔）： export PATH="$PATH:/opt/mytools/bin" # 追加到末尾 export PATH="/opt/mytools/bin:$PATH" # 放到最前面（优先级最高）这些设置只在当前终端会话有效，关掉窗口就没了。要永久生效，需要写进配置文件。三、配置文件：写进哪里 Bash 启动时按类型读取不同文件：文件生效范围说明 ~/.bashrc 当前用户的交互式 Shell 个人环境变量首选 ~/.profile / ~/.bash_profile 登录 Shell 常用于 PATH 初始化 /etc/profile、/etc/environment 所有用户系统级设置，需 root 日常给某个工具加 PATH，写 ~/.bashrc 就够了： echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc source ~/.bashrc # 立即生效（或重开终端） macOS 用 zsh 的用户对应文件是 ~/.zshrc。四、实战：配置一个开发工具以把 Go 安装在自定义目录为例： # 写入 ~/.bashrc export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin source ~/.bashrc 后执行 go version 验证。判断一个命令到底执行的是哪个文件，用： which python # 显示 PATH 中找到的可执行文件路径 type -a python # 列出所有匹配（能看到多个版本冲突）五、单次生效与持久化的区别 VAR=值 命令：只对这一条命令生效，如 NODE_ENV=production node app.js export + 终端：当前会话有效写入 ~/.bashrc：该用户所有新终端有效写入 /etc/environment：所有用户、系统服务有效六、总结需求做法查看所有变量 env 让子进程读到变量 export VAR=值追加 PATH export PATH="$PATH:/新目录" 永久生效写 ~/.bashrc 后 source 查命令实际路径 which 命令 / type -a 命令理解了 PATH 的搜索机制，"command not found" 和"版本不对"这类问题就都能自己排查了。