2012-09-24

zsh導入 - kshとbash、zshの比較

職場ではksh、家ではbashを使っていたわたしですが、ついにbashに代えてzshを導入することにしました。

導入の決め手

  1. 端末間の履歴共有
  2. コマンドオプションの補完機能

1. 端末間の履歴共有

bashとzsh

  • bashで端末を複数枚開くと、historyコマンドで参照できる履歴が端末ごとに別々になってしまう
    • 普段、screen(byobu)で複数の端末をいっぺんに使っているので、履歴が共有されないと不便
    • zshなら、設定で複数端末間の履歴を共有できる

bashとksh

  • ちなみに、kshはデフォルトで複数端末間の履歴が共有される
    • サーバー作業だと、別の人の履歴が割り込んできて不便なことも
    • サーバーのシェルなら、むしろ履歴共有しないbashが適当かも

2. コマンドオプションの補完機能

ksh

  • タブを押すとタブが挿入される。
  • タブを押すとタブが挿入される。
  • 大事なことなので2回言いました

bash

  • タブを押すとディレクトリ補完が可能
  • タブを押すとコマンド名の補完が可能
  • コマンドのオプションまでは補完してくれない

zsh

  • タブを押すとディレクトリ補完が可能
  • タブを押すとコマンド名の補完が可能
  • コマンドを入力してからタブを押すと、オプションまで補完してくれる

Ubuntuへの導入

インストール

sudo aptitude install zsh

または

sudo apt-get install zsh

デフォルトのシェルに設定

chshコマンドを実行したユーザーのデフォルトのシェルに設定されます。

chsh -s /bin/zsh
(パスワードを聞かれたら、ユーザーのパスワードを入力)

初回起動時、初期設定の画面が出ますが、後で編集可能なのでqで終了して大丈夫です。

zshの設定

zshの設定は、主にホームディレクトリの.zshrcファイルに記述します。このあたりはbashと同様です。zshでググると設定例がたくさん見つかります。ありがたく使わせてもらいましょう。

my設定

参考

2006-05-17 - はてな技術発表会日記 http://hatena.g.hatena.ne.jp/hatenatech/20060517