根本原因是Go的bin目录未加入PATH环境变量;需将/usr/local/go/bin(macOS/Linux)或C:\Go\bin(Windows)永久添加到对应shell的初始化文件中,并重载配置后验证。

Go安装后命令行找不到 go
这是最常见现象:下载安装包双击安装(macOS/Linux)或运行安装程序(Windows)后,终端输入 go version 提示 command not found。根本原因不是 Go 没装好,而是系统没把 Go 的可执行目录加进 PATH 环境变量。
Go 安装后,二进制文件默认放在:
- macOS:
/usr/local/go/bin - Linux:
/usr/local/go/bin(官方二进制包)或$HOME/go/bin(源码编译) - Windows:
C:\Go\bin(默认路径,若自定义则以实际为准)
必须确保这个 bin 目录出现在 PATH 中,否则 shell 找不到 go 命令。
不同 shell 下如何永久添加 /usr/local/go/bin 到 PATH
临时加 PATH(仅当前终端有效)可以直接运行:export PATH=$PATH:/usr/local/go/bin,但关掉终端就失效。永久生效需写入 shell 初始化文件:
立即学习“go语言免费学习笔记(深入)”;
- bash(macOS Catalina 之前 / 大多数 Linux 发行版):编辑
~/.bash_profile或~/.bashrc,追加一行:export PATH=$PATH:/usr/local/go/bin - zsh(macOS Catalina 及以后默认):编辑
~/.zshrc,加同样那行 - fish:编辑
~/.config/fish/config.fish,用set -gx PATH $PATH /usr/local/go/bin - Windows PowerShell:运行
$env:PATH += ";C:\Go\bin"(仅当前会话),永久需用[Environment]::SetEnvironmentVariable修改用户级变量
改完别忘了重载配置:source ~/.zshrc(zsh)或 source ~/.bashrc(bash)。验证是否生效:echo $PATH 看输出里有没有对应路径,再执行 go version。
GOROOT 和 GOBIN 什么时候必须手动设?
绝大多数情况不用设 GOROOT —— Go 安装程序已内置默认值(如 /usr/local/go),且 go 命令能自动识别。只有当你解压多个 Go 版本并手动切换时,才需要显式设置 GOROOT 指向目标版本根目录。
android内核编译手册(图文并茂) chm,Google Android操作系统内核编译图文教程。 搭建交叉编译环境(安装Android SDK: 将android-sdk_m5-rc14_linux-x86.zip解压缩到适当路径下即可使用。本文将其释放至/usr/local/android_sdk_linux路径下,并将其tools路径添加到PATH中),获取内核编译配置文件(从android sdk 中的模拟器中得到。启动android模拟器,再通过adb得到模拟器中提供的内核配置文件),在
GOBIN 更少需要手动设。它控制 go install 编译出的可执行文件放哪,默认是 $GOPATH/bin(Go 1.18+ 默认 $HOME/go/bin)。除非你希望所有 go install 的工具统一放到某个非默认位置(比如 /usr/local/bin),才设 GOBIN 并确保该路径也在 PATH 中。
注意:GOBIN 和 GOROOT/bin 是两回事 —— 前者放你 install 的第三方工具,后者放 Go 自带命令(go、gofmt 等)。
Windows 上 PATH 配置最容易漏掉的点
Windows 用户常犯两个错误:
- 只在「系统环境变量」里加了
C:\Go\bin,但没重启终端(CMD/PowerShell/WSL)—— Windows 不会自动广播环境变量变更给已启动的进程 - 用 Git Bash 运行
go却忘了它用的是自己的 mintty + bash 环境,不读 Windows 系统 PATH,得单独在~/.bash_profile里加export PATH="/c/Go/bin:$PATH" - 安装时勾选了「Add Go to PATH」但实际没生效(某些旧版安装器 bug),仍需手动确认
验证方式很直接:打开新 CMD,运行 where go(Windows)或 which go(macOS/Linux),看输出路径是否匹配你预期的安装位置。
PATH 配置本身不难,难的是它藏在 shell 初始化链、GUI 终端继承逻辑、多环境共存(如 WSL + CMD + IDE 内置终端)这些地方。每次换终端或升级系统,都值得快速跑一遍 go version 和 which go。









