Flutter命令未被识别是因为环境变量未正确加载到当前Shell,需根据echo $SHELL结果将Flutter路径写入对应配置文件(zsh用~/.zshrc,bash用~/.bash_profile),并执行source生效,最后用which flutter和flutter --version验证。

Mac终端输入flutter doctor报错“zsh: command not found: flutter”,说明Flutter命令未被系统识别,根本原因是环境变量未正确加载到当前Shell中——从macOS Catalina起默认使用zsh,但很多人仍只配置了.bash_profile。
确认当前Shell类型
在终端执行:echo $SHELL。若输出为/bin/zsh,则必须将Flutter路径写入~/.zshrc或~/.zprofile,写进.bash_profile无效。
若输出为/bin/bash,说明你尚未升级或手动改回bash,此时应检查.bash_profile是否已正确配置并执行过source ~/.bash_profile。
永久修复:把Flutter路径写入zsh配置文件
方法一(推荐,有编辑权限时):
- 终端输入:
open ~/.zshrc→ 若提示“文件不存在”,则先执行touch ~/.zshrc创建空文件 - 在打开的文本编辑器中粘贴以下三行(注意替换
/Users/你的用户名/flutter为真实路径):export PATH="/Users/你的用户名/flutter/bin:$PATH"export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn - 保存文件,关闭编辑器
- 终端执行:
source ~/.zshrc→ 立即生效
方法二(无写入权限或文件被锁时):
终端输入:vim ~/.zshrc → 按i进入插入模式 → 粘贴上述三行内容 → 按Esc退出编辑 → 输入:wq回车保存退出 → 再执行source ~/.zshrc。
【关键前提】确保/Users/你的用户名/flutter/bin下确实存在flutter可执行文件,否则路径再对也无效。可用ls /Users/你的用户名/flutter/bin验证。
验证是否修复成功
关闭当前终端窗口,重新打开一个全新终端。
输入:which flutter → 应返回类似/Users/你的用户名/flutter/bin/flutter的路径。
输入:flutter --version → 应正常打印Flutter SDK版本号,不报command not found。
输入:flutter doctor → 开始检查依赖项,不再卡在命令未找到阶段。

















