🐈

mac zsh(シェル)について

2021/04/29に公開

シェル使い方について

・ログインシェル
コマンドラインを起動したとき、サーバにログインしたときに立ち上がるシェルのこと
・インタラクティブシェル
コマンドラインでbashとかzshと入力すると起動するシェルのこと
対話形式で入力する
・シェルスクリプト
シェルによるプログラミンファイルを作成して実行すること。

zsh設定ファイルの種類
基本的に2種類使用できればOK
~/.zshenv と ~/.zshrc
※ホームディレクトリに置かれた .zshenvと.zshrcということ。

理解しておくべきこと。
.zshenv
ログインシェル、インタラクティブシェル、シェルスクリプト、どれでも常に必要な設定を定義する。
zshが起動して必ず最初に読み込まれる設定ファイル
対話形式のシェル設定をここですると、シェルスクリプト誤作動の原因になるため注意する。
影響範囲が大きいので記述は最低限にするべき

・zprofile
ログインシェルに必要な設定だけを記述する。
zshenvの次に読み込まれる設定ファイル
zshログイン時の一回だけ読み込まれる。

・zshrc
ログインシェル、インタラクティブシェルの場合に読み込まれる

・.zlogin
ログインシェルに必要な設定だけを記述する
最後に読み込まれる。
役割は .zprofileとほぼ一緒。混乱を避けるため併用しないこと。

・zlogout
exitコマンドで、zshを抜けた時に読み込まれる。

設定ファイルを置く場所で優先度が変わる。
おける場所は二つ。「ホームディレクトリ配下」もしくは「/etc直下」。

個人的な設定をしたファイルの配置場所は?
zshの個人設定向けファイルは【ホームディレクトリ】に配置する。

あなたのmホームディレクトリはどこなのか?
は環境変数$HOMEの中身を見ればわかる。

ホームディレクトリによく置かれるzsh設定ファイル

ホームディレクトリ配下には、以下のzsh設定ファイルが置かれることが多い。
・ ~/zshenv
・ ~/.zshrc
基本的にはこの二つのファイルを使用するだけでいい。

環境変数 $ZSOTDIRについて

個人設定ファイルの場所を【ホームディレクトリか変更することができる】

~/.zshenv の中に環境変数 $ZDOTDIR を定義する
$ZDOTDIRに任意パスを設定する
設定したディレクトリ内の個人設定ファイルが適用されるようになる

汎用的な設定をしたファイルの配置場所は?
/etc ディレクトリ直下には、システム全体に影響を及ぼす汎用的な設定ファイルを置きます。

基本的に汎用設定が先に読み込まれます
つまり後から読み込まれる「個人設定が優先」されます
ただし .zlogout については、先に個人設定が読み込まれます
つまり後から読み込まれる「汎用設定が優先」されます
/etc 配下によく置かれる zsh 設定ファイル
/etc 配下には、以下の zsh 設定ファイルが置かれることが多いです。

/etc/zshenv
/etc/zprofile
/etc/zlogin
/etc/zlogout

~ /.zshenv 設定例

大事なのは、「常に必要な設定を定義する」「影響が大きいので記述は最低限にする」こと。
個人的にはクリティカルな環境変数だけ ~/.zshenvに定義している。

※$PATH以外の環境変数はマストじゃないと思うので好みで設定しておく。

#個人的に追加したパッケージを優先的に扱うため /usr/local/bin にパスを通す
export PATH=/usr/local/bin:$PATH
#デフォルトのエディターを emacs に設定
export EDITOR=emacs
#デフォルトの pager を less から lv に設定
export PAGER='lv -c'
#文字コードの指定
export LANG=ja_JP.UTF-8

Discussion