zsh
は Z shell
(ズィーシェル)の略で、Unixのコマンドシェルの1つ。
Shell(シェル)とは、入力されたコマンドを解釈して順次実行するソフトウェア
zsh は bashなどの他のシェルの優れた機能を取り込んでいて、柔軟性があり自由にカスタマイズできるのが特徴
zsh の良さ
メリット
- 見やすさ
- oh-my-zsh
- prezto
- 補完機能
- tab連打で補完してくれる
- 柔軟性がありカスタマイズできる
- コマンドに色付け
デメリット
- 起動が遅い
zsh のインストール for Mac
0. 現在のシェルを確認
$ echo $SHELL
1. Homebrewを使ってzshをインストール
$ brew install zsh
2. 使用できるシェルの確認と追加
$ cat /etc/shells
ここにHomebrewを使ってインストールしたzsh
がなければ追加する
$ sudo vi /etc/shells
最後にインストールしたzshのパスを追加
/usr/local/bin/zsh
3. ログインシェルの変更
OS X
ではターミナルを起動するとbash
が起動する
最初に起動するシェルのことをログインシェルという
毎回、zsh
を手動で起動するのは大変なので、ログインシェルをzsh
に設定する
chsh -s /usr/local/bin/zsh
zshを設定するためのフレームワーク
oh-my-zsh
- zshで一番メジャーな設定フレームワーク
- プラグイン
- テーマ
oh-my-zshのインストール
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
prezto
- zshを設定するためのフレームワーク
- プラグイン
- テーマ
- 軽い
- 起動が軽い
- 補完も軽い
- 外部repositoryに依存しているpluginはgit submoduleで管理されている
- 本家のrepositoryと重複が発生せず、追従しやすい
- 実装がzshの機能にそっており、綺麗であること
prezto をインストール
https://github.com/sorin-ionescu/prezto
に書いてある
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
zshrcを編集してカスタマイズ
bashの設定は.bashrc
に記述しますが、zsh
では.zshrc
に記載する
# .zshrcが存在しなければ新規作成
$ touch ~/.zshrc
# 設定ファイルの編集
$ vim ~/.zshrc
# 設定ファイルの反映
$ source ~/.zshrc