[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-npm-codex-command-not-found-fixes-en":3,"article-related-npm-codex-command-not-found-fixes-en":32,"series-industry-4ad06758-cfef-4333-867c-358b581925b2":78},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":24,"views":28,"created_at":29,"published_at":30,"topic_cluster_id":31},"4ad06758-cfef-4333-867c-358b581925b2","npm-codex-command-not-found-fixes-en","npm装完codex却找不到命令的7个修复","\u003Cp data-speakable=\"summary\">这篇文章整理了7种修复 \u003Ca href=\"\u002Ftag\u002Fnpm\">npm\u003C\u002Fa> 全局安装后找不到 \u003Ca href=\"\u002Ftag\u002Fcodex\">codex\u003C\u002Fa> 命令的方法。\u003C\u002Fp>\n\u003Cp>如果你已经装过 \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002F\">npm\u003C\u002Fa> 版 Codex，却还是报 “codex: command not found”，通常不是安装失败，而是 PATH、shell 配置或全局目录没对上。下面这 7 种办法能帮你快速定位问题，文中还会用到一个真实例子：把全局目录加入 PATH 后，再用 \u003Ccode>which codex\u003C\u002Fcode> 和 \u003Ccode>codex --version\u003C\u002Fcode> 验证。\u003C\u002Fp>\n\n\u003Ch2>1. 把 npm 全局 bin 目录加进 PATH\u003C\u002Fh2>\n\u003Cp>这是最常见的修复。npm 把全局可执行文件放在一个 bin 目录里，如果这个目录没进 PATH，系统就算装好了也找不到 \u003Ccode>codex\u003C\u002Fcode>。你需要把实际的全局路径写进 shell 配置文件，而不是照抄别人的路径。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781967769925-tlw4.png\" alt=\"npm装完codex却找不到命令的7个修复\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\n\u003Cp>在 macOS 和 zsh 里，常见做法是把命令追加到 \u003Ccode>~\u002F.zshrc\u003C\u002Fcode>，然后重新加载配置。关键点是先查出你的真实 npm 全局目录，再把它拼到 PATH 前面。\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Ccode>npm root -g\u003C\u002Fcode> 查看全局包目录\u003C\u002Fli>\n  \u003Cli>\u003Ccode>npm bin -g\u003C\u002Fcode> 查看全局可执行文件目录\u003C\u002Fli>\n  \u003Cli>\u003Ccode>echo 'export PATH=\"\u002Fyour\u002Fpath\u002Fbin:$PATH\"' &gt;&gt; ~\u002F.zshrc\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Ccode>source ~\u002F.zshrc\u003C\u002Fcode> 立即生效\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>2. 确认你改的是当前 shell 的配置文件\u003C\u002Fh2>\n\u003Cp>很多人把 PATH 写进了 \u003Ccode>.bashrc\u003C\u002Fcode>，但实际打开的是 zsh；或者在登录 shell 里改了 \u003Ccode>.zprofile\u003C\u002Fcode>，却在交互 shell 里测试。结果就是配置看起来没错，命令还是找不到。先确认你当前用的是哪种 shell，再改对应文件。\u003C\u002Fp>\n\u003Cp>macOS 默认常见是 zsh，Linux 上可能是 bash 或 zsh。只要配置文件没对上，\u003Ccode>which codex\u003C\u002Fcode> 就不会返回预期路径。这个问题在新装系统、切换终端应用、远程登录时尤其常见。\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>zsh 常改 \u003Ccode>~\u002F.zshrc\u003C\u002Fcode> 或 \u003Ccode>~\u002F.zprofile\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>bash 常改 \u003Ccode>~\u002F.bashrc\u003C\u002Fcode> 或 \u003Ccode>~\u002F.bash_profile\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Ccode>echo $SHELL\u003C\u002Fcode> 查看默认 shell\u003C\u002Fli>\n  \u003Cli>\u003Ccode>ps -p $$\u003C\u002Fcode> 查看当前 shell 进程\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>3. 用真实路径替换示例路径\u003C\u002Fh2>\n\u003Cp>文章里最容易踩坑的一点，是把示例里的 \u003Ccode>\u002FUsers\u002Fyou\u002F.npm-global\u003C\u002Fcode> 原样复制了。这个路径只是占位符，不能直接用。你的机器上可能是 \u003Ccode>\u002Fopt\u002Fhomebrew\u003C\u002Fcode>、\u003Ccode>\u002Fusr\u002Flocal\u003C\u002Fcode>，也可能是某个自定义目录。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781967767737-w3p4.png\" alt=\"npm装完codex却找不到命令的7个修复\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\n\u003Cp>正确做法是先打印真实值，再写入配置。只要路径错一个字符，终端就不会找到 \u003Ccode>codex\u003C\u002Fcode>。这也是为什么很多人“明明按教程做了”，结果还是报错。\u003C\u002Fp>\n\u003Ccode>npm config get prefix\nnpm bin -g\nwhich node\nwhich npm\u003C\u002Fcode>\n\n\u003Ch2>4. 检查 npm 全局 prefix 是否指向你想要的位置\u003C\u002Fh2>\n\u003Cp>npm 的全局安装位置由 \u003Ccode>prefix\u003C\u002Fcode> 决定。若 prefix 指向一个你没有加进 PATH 的目录，或者目录本身权限不对，安装后就会出现“装上了但找不到”的情况。把 prefix 查出来，能快速判断问题是在安装阶段还是环境变量阶段。\u003C\u002Fp>\n\u003Cp>如果你曾经改过 npm 配置，或者用过 nvm、fnm、Volta 之类的 Node 管理工具，prefix 可能会和你预期不一样。此时不要急着重装，先把 prefix 和 bin 目录核对清楚。\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Ccode>npm config get prefix\u003C\u002Fcode> 查看全局前缀\u003C\u002Fli>\n  \u003Cli>\u003Ccode>npm config list -l | grep prefix\u003C\u002Fcode> 进一步确认\u003C\u002Fli>\n  \u003Cli>确保 \u003Ccode>prefix\u002Fbin\u003C\u002Fcode> 在 PATH 中\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>5. 重新打开终端，别只停留在 source 之后\u003C\u002Fh2>\n\u003Cp>有些终端应用在当前窗口里读不到最新环境变量，尤其是在图形界面启动的终端、iTerm2、Terminal.app、\u003Ca href=\"\u002Ftag\u002Fvs-code\">VS Code\u003C\u002Fa> 集成终端之间切换时。你执行了 \u003Ccode>source ~\u002F.zshrc\u003C\u002Fcode>，但当前会话仍然没刷新完整环境，这时重开一个新窗口最直接。\u003C\u002Fp>\n\u003Cp>如果重开终端后 \u003Ccode>which codex\u003C\u002Fcode> 仍然为空，再去看配置文件是否被其他脚本覆盖。很多时候问题并不在 npm，而在终端启动链路。\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>关闭当前终端窗口后重新打开\u003C\u002Fli>\n  \u003Cli>在新窗口里运行 \u003Ccode>echo $PATH\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>再运行 \u003Ccode>which codex\u003C\u002Fcode> 和 \u003Ccode>codex --version\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>6. 检查 codex 是否真的安装到了全局\u003C\u002Fh2>\n\u003Cp>有时你以为自己做了全局安装，实际装成了本地依赖，或者安装过程被代理、权限、网络错误打断。先确认包本身存在，再去看命令是否暴露出来。这样能避免把时间浪费在 PATH 上，而真正的问题其实是安装没成功。\u003C\u002Fp>\n\u003Cp>如果包没装好，先重装；如果包装好了但命令还是不见，再回到前面的 PATH 和 prefix 排查。把“安装成功”和“命令可用”分开验证，效率会高很多。\u003C\u002Fp>\n\u003Ccode>npm list -g --depth=0\nnpm install -g codex\nnpm uninstall -g codex\nnpm install -g codex\u003C\u002Fcode>\n\n\u003Ch2>7. 用 which 和 version 做最终验收\u003C\u002Fh2>\n\u003Cp>修复之后不要只看“没报错”，要让终端明确告诉你命令已经可用。\u003Ccode>which codex\u003C\u002Fcode> 能返回可执行文件路径，\u003Ccode>codex --version\u003C\u002Fcode> 能确认程序真的能跑。两步一起做，能把“环境变量生效了”和“程序可执行了”同时验证掉。\u003C\u002Fp>\n\u003Cp>如果 \u003Ccode>which codex\u003C\u002Fcode> 仍然没有输出，就说明 PATH 还没对上；如果能找到路径但版本命令失败，说明可能是安装文件损坏或权限有问题。这个收尾检查能帮你把问题锁定到最后一层。\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Ccode>which codex\u003C\u002Fcode> 验证路径\u003C\u002Fli>\n  \u003Cli>\u003Ccode>codex --version\u003C\u002Fcode> 验证可执行性\u003C\u002Fli>\n  \u003Cli>\u003Ccode>echo $PATH\u003C\u002Fcode> 验证环境变量内容\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>How to decide\u003C\u002Fh2>\n\u003Cp>如果你刚装完就报错，先做第 1 条和第 3 条，通常最快见效。如果你是在 macOS 上用 zsh，第 2 条和第 5 条也很值得优先排查，因为 shell 配置和终端会话经常是根因。\u003C\u002Fp>\n\u003Cp>如果你已经确认 PATH 没问题，再看第 4 条和第 6 条，重点查 npm prefix 和全局安装状态。最后用第 7 条收尾，确保 \u003Ccode>which codex\u003C\u002Fcode> 和 \u003Ccode>codex --version\u003C\u002Fcode> 都能正常返回。\u003C\u002Fp>","7种修复npm全局安装后提示“codex: command not found”的方法，重点解决PATH、shell配置和安装目录问题。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2048778246280442761",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781967769925-tlw4.png","industry","en","47c72ef9-bc7b-4179-a354-f28f20eaf7e0",[17,18,19,20,21,22,23],"npm","codex","command not found","PATH","zsh","全局安装","终端配置",[25,26,27],"先查真实的 npm 全局 bin 路径，再把它写进当前 shell 的 PATH。","别直接复制示例路径，\u002FUsers\u002Fyou 这类内容必须替换成你的实际目录。","用 which codex 和 codex --version 做最终验证，能快速判断修复是否生效。",0,"2026-06-20T15:02:25.701028+00:00","2026-06-20T15:02:25.687+00:00","79436b29-7c29-465b-b70f-ede5e87bba2b",{"tags":33,"relatedLang":37,"relatedPosts":41},[34,35],{"name":17,"slug":17},{"name":36,"slug":18},"Codex",{"id":15,"slug":38,"title":39,"language":40},"npm-codex-command-not-found-fixes-zh","npm 装完 Codex 找不到命令的 7 个修复","zh",[42,48,54,60,66,72],{"id":43,"slug":44,"title":45,"cover_image":46,"image_url":46,"created_at":47,"category":13},"a4ac464c-c78f-42cd-847f-fb7fde1e43a1","netsuite-agentic-workflow-definition-unpacked-en","NetSuite’s agentic workflow definition, unpacked","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781974098135-qku3.png","2026-06-20T16:47:51.687427+00:00",{"id":49,"slug":50,"title":51,"cover_image":52,"image_url":52,"created_at":53,"category":13},"0dfddf06-38d6-4ffa-9ee8-78cc4586f243","2027qs-aodao-bada-zhongjie-zenme-xuan-en","2027QS澳洲八大中介怎么选","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781969569076-yc7s.png","2026-06-20T15:32:20.714843+00:00",{"id":55,"slug":56,"title":57,"cover_image":58,"image_url":58,"created_at":59,"category":13},"16e494c2-7b92-47ce-9673-a6b8b812c772","amd-intel-nvidia-reheat-engineering-cost-guide-en","AMD、Intel、Nvidia炒冷饭的工程代价","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781966869103-gkgd.png","2026-06-20T14:47:24.335606+00:00",{"id":61,"slug":62,"title":63,"cover_image":64,"image_url":64,"created_at":65,"category":13},"32cd436b-59d5-458c-8a61-09429a76f7c9","openai-internal-secondary-sales-talent-war-en","OpenAI的内部售股不是慷慨，是留人战争","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781965064088-hwuc.png","2026-06-20T14:17:20.219525+00:00",{"id":67,"slug":68,"title":69,"cover_image":70,"image_url":70,"created_at":71,"category":13},"34fbfa14-37e3-4a6d-929d-a33068ac14fa","anthropic-fable-5-ban-ai-investors-en","Anthropic’s Fable 5 ban hits AI investors","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781964172715-l9xl.png","2026-06-20T14:02:27.003723+00:00",{"id":73,"slug":74,"title":75,"cover_image":76,"image_url":76,"created_at":77,"category":13},"08680bc1-fdaf-427e-a361-fdc5c5851656","army-contract-opportunities-ai-air-defense-en","Army contract opportunities for AI and air defense","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781962369594-lzb2.png","2026-06-20T13:32:21.734584+00:00",[79,84,89,94,99,104,109,114,119,124],{"id":80,"slug":81,"title":82,"created_at":83},"d35a1bd9-e709-412e-a2df-392df1dc572a","ai-impact-2026-developments-market-en","AI's Impact in 2026: Key Developments and Market Shifts","2026-03-25T16:20:33.205823+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"5ed27921-5fd6-492e-8c59-78393bf37710","trumps-ai-legislative-framework-en","Trump's AI Legislative Framework: What's Inside?","2026-03-25T16:22:20.005325+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"e454a642-f03c-4794-b185-5f651aebbaca","nvidia-gtc-2026-key-highlights-innovations-en","NVIDIA GTC 2026: Key Highlights and Innovations","2026-03-25T16:22:47.882615+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"0ebb5b16-774a-4922-945d-5f2ce1df5a6d","claude-usage-diversifies-learning-curves-en","Claude Usage Diversifies, Learning Curves Emerge","2026-03-25T16:25:50.770376+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"69934e86-2fc5-4280-8223-7b917a48ace8","openclaw-ai-commoditization-concerns-en","OpenClaw's Rise Raises Concerns of AI Model Commoditization","2026-03-25T16:26:30.582047+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"b4b2575b-2ac8-46b2-b90e-ab1d7c060797","google-gemini-ai-rollout-2026-en","Google's Gemini AI Rollout Extended to 2026","2026-03-25T16:28:14.808842+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"6e18bc65-42ae-4ad0-b564-67d7f66b979e","meta-llama4-fabricated-results-scandal-en","Meta's Llama 4 Scandal: Fabricated AI Test Results Unveiled","2026-03-25T16:29:15.482836+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"bf888e9d-08be-4f47-996c-7b24b5ab3500","accenture-mistral-ai-deployment-en","Accenture and Mistral AI Team Up for AI Deployment","2026-03-25T16:31:01.894655+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"5382b536-fad2-49c6-ac85-9eb2bae49f35","mistral-ai-high-stakes-2026-en","Mistral AI: Facing High Stakes in 2026","2026-03-25T16:31:39.941974+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"9da3d2d6-b669-4971-ba1d-17fdb3548ed5","cursors-meteoric-rise-pressures-en","Cursor's Meteoric Rise Faces Industry Pressures","2026-03-25T16:32:21.899217+00:00"]