2021-09-05

zshの設定ファイルの読み込み順序

~/.zshenv に設定したはずの環境変数が期待通り反映されていないことに偶然気が付き、原因を調べてみたところ後から読み込まれるファイルに環境変数が上書きされているためだった..。

同じ轍を踏まないように、zshの設定ファイルの読み込み順序をメモしておく。
※ 検証環境 : macOS, zsh5.8

読み込み順序

  1. /etc/zshenv
  2. ~/.zshenv
  3. /etc/zprofile
  4. ~/.zprofile
  5. /etc/zshrc
  6. ~/.zshrc
  7. /etc/zlogin
  8. ~/.zlogin

注意点

自分が知っている範囲で注意点を書いておく

  • GLOBAL_RCS, RCS というzshのオプションは読み込まれるファイルに影響を与える
  • 環境変数 ZDOTDIR の設定次第では読み込み先のファイルパスが変わる
  • ログインシェルとして起動した場合とインタラクティブシェルとして起動した場合で読み込まれるファイルが変わる
    • 上記のまとめはログインシェルとして起動した場合の結果

情報源

実際に手元の環境でプリントデバッグ的に確認した結果を載せているが、man zshman zshoptions のマニュアル中にもこれを示す記載があるので情報の信頼性が気になる方はそちらも参照してほしい。