~/.zshrc
作用:
- zsh shell的配置文件
- 每次打开新的zsh终端会话时执行
- 主要用于设置环境变量、别名、函数和shell选项
特点:
- 适用于zsh shell(macOS Catalina及以后版本的默认shell)
- 交互式shell启动时加载
- 适合设置命令别名、提示符样式、自动补全等
您的.zshrc内容:
# JoySpec shell completions配置
fpath=(...)
# 加载bash_profile
source ~/.bash_profile
# Node Version Manager配置
export NVM_DIR="$HOME/.nvm"
...
# Android环境变量
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
...
~/.bash_profile
作用:
- bash shell的配置文件
- 登录shell启动时执行(如通过SSH登录或新终端窗口)
- 主要用于设置环境变量和PATH
特点:
- 适用于bash shell
- 登录shell启动时加载一次
- 适合设置系统级环境变量
您的.bash_profile内容:
# Android SDK路径
export PATH=${PATH}:/Users/xxx/Library/Android/sdk/...
export PATH=${PATH}:/Users/xxx/flutter/bin
# Homebrew和其他工具
export PATH="/opt/homebrew/bin:$PATH"
...
# API密钥
export OPENAI_API_KEY="..."
主要区别
| 特性 | ~/.zshrc | ~/.bash_profile |
|------|----------|-----------------|
| Shell类型 | zsh专用 | bash专用 |
| 加载时机 | 每个新终端会话 | 登录shell时 |
| 使用场景 | 交互式命令行 | 环境初始化 |
| macOS版本 | Catalina+默认 | 旧版本默认 |
| 执行频率 | 更频繁 | 较少 |
为什么您的配置这样设计
您的配置采用了分层设计:
- ~/.bash_profile:设置基础环境变量(Android、Flutter、API密钥等)
- ~/.zshrc:加载bash_profile,并添加zsh特有配置(如NVM、自动补全)
这种设计的好处是保持了配置的一致性,无论使用bash还是zsh都能获得相同的环境变量设置。