.zprofile 和 .zshrc 的区别主要在于它们的加载时机和作用范围。.zprofile 是在登录时被读取,用于为登录式 shell 设置环境,它只对当前窗口有效,而且需要 source ~/.zprofile 才能使用。
.zshrc 是在交互时被读取,用于为交互式 shell 设置环境,它相当于 windows 的开机启动的环境变量,它会覆盖在 .zprofile 中设置的任何东西。
一般来说,.zprofile 用来设置一些只需要在登录时执行一次的命令,例如 HOMEBREW_BOTTLE_DOMAIN,而 .zshrc 用来设置一些需要在每次交互时执行的命令,例如别名和函数。