Z Shell を使ってみる

what

zsh(Z Shell) 便利ですよ!」ということで、zsh を知る。


Z Shellって何?

Z Shell - Wikipedia

Z shell(Z シェル、zsh)はUnixのコマンドシェルの一つである。 対話的なログインシェルとしても、強力なシェルスクリプトコマンドのインタープリタとしても使うことができる。

なるほど、ログインシェルの1つなんですね。



Z Shellの特徴

Z Shell - Wikipedia
↑こちらに書いてあります。

特に気になるのが、

・ プログラム可能な補完機能によって、多くのユーザコマンドのオプションや引数を打つのを支援する(インストールの時点で数百のコマンドをサポートしている)。
・ ほとんど全部カスタマイズが可能。

カスタマイズできるというのは、楽しそうですね。


install

$ cd /usr/local/src/
$ sudo wget http://downloads.sourceforge.net/zsh/zsh-4.2.7.tar.gz?modtime=1197988728&big_mirror=0
$ sudo tar xvfz zsh-4.2.7.tar.gz
$ cd zsh-4.2.7
$ sudo ./configure --prefix=/usr/local
$ sudo make
$ sudo make install

完了

Z Shell の設定

http://mitsukuni.org/blog/2008/03/01/installing-zsh-427/
↑こちらを参考にやってみます。

やったことは、 /etc/shells に /usr/local/bin/zsh という行を追加したのと、 chsh でシェルの切り替えをして、 パスワード入力→zshのパスを入力と書いてあるままやりました。



Z Shellの恩恵に与ってみる

compinit

http://journal.mycom.co.jp/column/zsh/001/index.html
↑こんどは、こちらを参考に。設定ファイルのことなど書いてあってよいです。

さて、zshもインストールしただけではただのシェル。「最強」にするには、設定が肝だ。そんな設定の中でも最も基本かつ強力なのが次の2行だ。早速設定しておこう。


autoload -U compinit
compinit


この2行をホームディレクトリの.zshrcファイルに追加することで、zshの強力な補完機能への扉が開かれる。

むむ、.zshrc がホームディレクトリにないので作成して追加しよう。

$ cd
$ touch .zshrc
$ vi .zshrc
$ source ~/.zshrc
-sh: autoload: command not found
-sh: compinit: command not found

コマンドがないとな・・・orz

でも、 つかってみたらちゃんと使えた。

$ zsh
debian%
ssh -- OpenSSH SSH client (remote login program)
ssh-add -- adds RSA or DSA identities to the authentication agent
ssh-agent -- authentication agent
ssh-argv0 -- replaces the old ssh command-name as hostname handling
ssh-copy-id -- install your identity.pub in a remote machine's authorized_keys
ssh-keygen -- authentication key generation, management and conversion
ssh-keyscan -- gather ssh public keys
ssh-vulnkey -- check blacklist of compromised keys

zsh で起動。ssh を打って Tab を うつとズララっとでたー。


コマンド履歴機能

http://journal.mycom.co.jp/column/zsh/003/index.html

~/.zshrc に

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt hist_ignore_dups     # ignore duplication command history list
setopt share_history        # share command history data

を加え増した。


最終的な .zshrc

debian% cat ~/.zshrc
export LANG=ja_JP.UTF-8
autoload -U compinit
compinit
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt hist_ignore_dups     # ignore duplication command history list
setopt share_history        # share command history data

とりあえず、これくらいにしました。
それにしても、zshの補完機能は強力ですねー。恩恵に与りまくるぞー。



環境

debian% uname -a
Linux debian 2.6.22.18-co-0.7.3 #1 PREEMPT Sat May 24 22:27:30 UTC 2008 i686 GNU/Linux