Z Shell を使ってみる
Z Shellって何?
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
むむ、.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
コマンド履歴機能
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