zsh の設定ファイル `.zprofile` と `.zshrc` は、読み込まれるタイミングが異なる。 | ファイル | 読み込みタイミング | 用途 | | --- | --- | --- | | `.zprofile` | ログインシェル起動時 | 環境変数 (`export` するもの) | | `.zshrc` | インタラクティブシェル起動時 | エイリアス、補完、プロンプト | ## 使い分けの基準 ``` .zprofile → export するもの(環境変数) .zshrc → export しないもの(エイリアス、関数、見た目) ``` ## なぜ分けるのか 環境変数は子プロセスに継承されるため、1 回設定すれば十分。`.zshrc` に `PATH` を書くと、サブシェルを起動するたびに重複する。 ```bash # .zshrc に PATH を書いた場合の問題 echo $PATH /home/user/bin:/usr/bin:/bin zsh # サブシェル起動 echo $PATH /home/user/bin:/home/user/bin:/usr/bin:/bin # 重複 ``` ## 具体例 ```bash # .zprofile(環境変数) export PATH="$HOME/.local/bin:$PATH" export EDITOR="vim" # .zshrc(インタラクティブ用) alias ll='ls -la' eval "$(starship init zsh)" # プロンプト ``` ## 関連ノート - **[派生]** [[Shell のシングルクオートとダブルクオートの違い]]: 本ノートの設定ファイル読み込みタイミングと並ぶ、Shell の基礎知識