mac的两个环境变量文件,太坑了!

18 阅读1分钟

先说发现这个坑的起因

最近刚考研结束,之前是干前后端开发的,现在想去接触大模型人工智能相关的东西,此处省略一万字学习过程中的心酸历程。今天突然想尝试一下claude code。

然后就按照文档npm install -g @anthropic-ai/claude-code,然后claude --version,但!command not found: claude,我心思没有是npm 全局安装的路径没有在系统的 PATH 环境变量中。我就去找了.bash_profile,发现文件里配置了npm的环境变量。

原因解读

macOS Catalina (10.15) 及以后版本默认使用Zsh作为终端shell,~/.zshrc是默认配置文件。

旧版macOS和Linux默认使用Bash作为终端,,~/.bash_profile是默认配置文件。且macOS不会同时加载两个配置文件。

也就是说,现在mac只认~/.zshrc的配置,而我环境变量都写在了~/.bash_profile,不会生效

解决办法

  1. ~/.bash_profile中的配置粘贴复制到~/.zshrc

  2. ~/.zshrc中添加如下配置,这样系统会同时加载 .zshrc.bash_profile

    # 在 zsh 中加载 bash 配置
    if [ -f ~/.bash_profile ]; then
        source ~/.bash_profile
    fi
    

总结此过程学习到的

  1. npm config get prefix: npm(Node Package Manager)命令,用于查看当前npm配置中设置的全局安装路径(prefix) ,是当使用 npm install -g 包名 全局安装包时,包被安装到的位置

  2. 命令配置环境变量

    echo 'export PATH="/usr/local/lib/npm/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc