LoginSignup
1
0

More than 1 year has passed since last update.

zsh 設定ファイルと読み込み順 まとめ

Posted at

概要

  • ~/.zshrc にこれまであまり考えずに設定やプラグインを追加してきた
  • zsh関連のファイルが他にもあることを知った
  • どのファイルにどの情報を記載するのか気になったので調べたことをまとめる

参考資料:.zshenvと.zshrcの場所・違い・設定方法を解説します!

参考資料2:https://qiita.com/muran001/items/7b104d33f5ea3f75353f

シェルの呼称について

  • シェルは使い分けによって以下のように分類される

1. ログインシェル

  • ログイン時に起動するシェル

2. インタラクティブシェル

  • ログインシェルから起動されるシェルでユーザと対話が可能なシェル

3. シェルスクリプト

  • OSを操作するためのシェル上で実行できるプログラミング言語によって書かれた簡易的なプログラム
  • 参考

設定ファイルの種類

1. .zshenv

  • ログインシェル、インタラクティブシェル、シェルスクリプト、どれでも常に必要な設定を定義する
  • どの場合でも必要な環境変数などはここに記述する
  • 影響範囲が広いので設定する内容は最小限にすべき

2. .zprofile

  • ログインシェルの場合に1度だけ読み込まれる
  • ログインシェルに必要な情報のみを記載する

3. .zshrc

  • ログインシェル、インタラクティブシェルの場合に読み込まれる
  • zprofileの内容でインタラクティブシェルに必要だがシェルスクリプトには不要な情報を記載する

4. .zlogin

  • ログインシェルの場合に1度だけ読み込まれる
  • .zprofileとは読み込み順が異なる
  • .zprofileとの併用を避けたほうが無難

5. .zlogout

  • exitコマンドでzshを抜けたときに読み込まれる

設定ファイルの格納場所

  • 設定ファイルの格納場所によって読み込み順序が異なる

1. ~/ (local)

  • 自分が個別に設定したい内容をここに置く
  • localはglobalを上書きするので全体より自分の設定が優先される
  • ~については$ZDOTDIRが設定されていればそのディレクトリ、なければホームディレクトリをさす

2. etc/ (global)

  • すべてのユーザーで有効にしたい設定についてはここにあるファイルに設定する
  • globalはlocalに上書きされる

使用するシェルによる読み込みファイルと順序

  • それぞれ global > local の順に読まれていく

1. ログインシェル

  • zshenv > zprofile > zshrc > zloginの順

2. インタラクティブシェル

  • zshenv > zshrcの順

3. シェルスクリプト

  • zshenvのみ

4. ログアウトするとき

  • ログアウト時のみlocal > globalになる
  • ~/.zlogout > etc/.zlogout

応用

zsh関連ファイルの量が多く、読み込み時に時間がかかるとき

  • 設定ファイルをコンパイルできる
  • コンパイルしてできる.zshrc.zwcはzshで自動で読み込まれるようになっている
zcompile ~/.zshrc

まとめ

  • 参考資料がすごく整理されていたのでわかりやすかった
  • 設定ファイルは複数あり、シェルの使用用途によって読まれるファイルが異なることが分かった
  • 今まで何となく.zshrcに設定していたのはログインシェルとインタラクティブシェルの両方に設定でき、且つ.zshenvより影響範囲の少ないということで.zshrcに設定していたことが分かった
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0