何となく .zshrc にまとめていたけど、どのファイルがどういう順番で読み込まれるのかわかってなかったので調べたメモ。
ドキュメントもある。
man zsh
でも見れる
設定ファイル一覧
すると、設定ファイルには以下があることが書かれている。
$ZDOTDIR/.zshenv $ZDOTDIR/.zprofile $ZDOTDIR/.zshrc $ZDOTDIR/.zlogin $ZDOTDIR/.zlogout ${TMPPREFIX}* (default is /tmp/zsh*) /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout (installation-specific - /etc is the default)
$ZDOTDIR
はデフォルトだと $HOME
っぽい。
読み込み順
/etc/zshenv
が最初に読み込まれ上書き不可らしい。(自分のmacOS Catalina ではファイルは存在せず Ubuntu 20.04 では /etc/zsh/zshenv
があった)
続いて、 $ZDOTDIR/.zshenv
が読み込まれる。
続いて、ログインシェルの場合は /etc/zprofile
-> $ZDOTDIR/.zprofile
が読み込まれる。
続いて、インタラクティブシェルの場合は /etc/zshrc
-> $ZDOTDIR/.zshrc
と読み込まれる。
最後に、ログインシェルの場合、/etc/zlogin
と $ZDOTDIR/.zlogin
が読み込まれる。
ログインシェルが終了すると、 $ZDOTDIR/.zlogout
-> /etc/zlogout
が読み取られる。
設定場所
普通にログインユーザーとして読み込ませたい場合は ~/.zshrc
に書いておけば良さそうに思われる。
細かく分けたい場合は、 /etc/zprofile
, $ZDOTDIR/.zprofile
に環境変数設定とかを書けば、スクリプト実行時に使われるようになる。
全ユーザーに適用させたい場合は /etc/z*
に書く感じになりそう。
/etc/.zshenv
, $ZDOTDIR/.zshenv
は常に呼び出されるみたいなので、最小限の設定に留めておくのが良さそう。