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

.zshenv, .zprofile, .zshrc, .zloginの4つのファイルがあり,それぞれglobal(/etc/以下)とlocal(~/以下)にある.基本的にglobalの設定が読み込まれてからlocalの設定が読み込まれる.自分のPCをいじっている限りはlocalの設定のみいじれば良い.サーバー管理者となったらglobalの設定をいじることになる.localの設定場所は$ZDOTDIRで指定することも可能.

これらのファイルはzshの起動方法によって読み込まれるか否かが異なる.

  • ログインシェルの場合(iterm2起動時,SSH,TMUX,SCREENなど含む) zshenv > zprofile > zshrc > zloginの順でそれぞれglobalを読み込んだ後でlocalを上書き読み込みする.
  • インタラクティブシェルの場合(iterm2上でbashやzshと打った場合) zshenv > zshrc
  • シェルスクリプト実行の場合 zshenv
  • ログアウト時(これだけはlocal→globalの順) zlogout

したがって,.zshenvには環境変数などシェルスクリプト実行時にも読み込む設定に絞って記述する..zprofileはログインシェルの場合のみ実行される.インタラクティブシェルを積極的に使う場合以外はあまり使い道がないと思うので自分は利用していない..zshrcは加えてインタラクティブシェルでも実行されるが,自分は設定は全てこちらに記述している.

結局のところ環境変数は.zshenvに,その他の設定は.zshrcに記述してその後のファイルは利用していない.

参考文献

https://qiita.com/muran001/items/7b104d33f5ea3f75353f