Linux

Zsh

zshZ 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

-Linux