2021-09-05
zshの設定ファイルの読み込み順序
~/.zshenv に設定したはずの環境変数が期待通り反映されていないことに偶然気が付き、原因を調べてみたところ後から読み込まれるファイルに環境変数が上書きされているためだった..。
同じ轍を踏まないように、zshの設定ファイルの読み込み順序をメモしておく。
※ 検証環境 : macOS, zsh5.8
読み込み順序
/etc/zshenv~/.zshenv/etc/zprofile~/.zprofile/etc/zshrc~/.zshrc/etc/zlogin~/.zlogin
注意点
自分が知っている範囲で注意点を書いておく
GLOBAL_RCS,RCSというzshのオプションは読み込まれるファイルに影響を与える- 環境変数
ZDOTDIRの設定次第では読み込み先のファイルパスが変わる - ログインシェルとして起動した場合とインタラクティブシェルとして起動した場合で読み込まれるファイルが変わる
- 上記のまとめはログインシェルとして起動した場合の結果
情報源
実際に手元の環境でプリントデバッグ的に確認した結果を載せているが、man zsh や man zshoptions のマニュアル中にもこれを示す記載があるので情報の信頼性が気になる方はそちらも参照してほしい。

h3pei
フリーランスのソフトウェアエンジニア。Ruby / Rails アプリケーションの開発が得意領域。設計・実装・運用まで含めてプロダクト開発が好きです。
Questalという目標達成コミュニティサービスを開発しました。仲間と一緒に目標達成に取り組みたい方はぜひご利用ください。