zshって最強らしい
TRANSCRIPT
zshって最強らしい
2009/11/12 kazuya kanai
zsh なんなの “z” のとは「究極の」という意味があるようだ。
Bash や tcsh や ksh の良いとこ取りをしたシェルらしい。
何が最強なのか? 補完機能 ヒストリ機能 コマンドラインスタック 拡張エイリアス グロビング
etc ・・・
とりあえず zsh を使う etc/passwd を編集でログインシェルに設定
もしかしたら nis の場合環境によっては zsh がないとかいわれるかもしれない。
.bashrc に以下のように書いてもいいかもしれない。
if [ -x `which zsh` ]; then exec zshfi
補完機能 まず .zshrc に以下の一文を加える。
autoload -U compinit compinit
これでいろいろな補完機能が使えるようになる。なんかコマンドを打ってみよう
1 回目の TAB では補完候補表示
2 回目以降の TAB ではその候補を1つづつ提示する。
補完機能 こんなのはどうなる?
tar [tab] ls –[tab] wget [tab] ssh [tab]
必要なオプション、対象となるファイル などを補完してくれるよ。日本語のファイルとか指定するとき便利かも。
Esc + h とか併用すると便利かも。 Q で元に戻るよ。
ヒストリ機能 たとえば作業中データベース接続をしようとした時、あ
れ接続ユーザ、パスワードなんだっけ…
Ctrl + r mysql -u adsta_dev –p***** adsta_kanai
以前打ったコマンドのインクリメンタルサーチができるよ。
Screen とかでいっぱい立ち上げていても履歴は共有されるよ
コマンドラインスタック ある処理をしようとした時、その前に処理を割り込ませ
また戻ってくることができる。
たとえば、開発用サーバを立ち上げて確認するかとなったとき、あっ! あれ直しとかなきゃとかなったら。
mysql -u adsta_dev –p***** adsta_kanai[Esc + q ]Vim ****.pm[q]
拡張エイリアス 通常のエイリアスはコマンドラインの第 1 要素だけを対
象にしますが、グローバルエイリアスをつかうとコマンドのどの部分でもエイリアスにできるよ。
たとえば、よく使うエイリアスに ll とかあるけど、グローバルエイリアスだとこんな風に登録できるので・・・
alias -g H='| head'alias -g T='| tail'alias -g G='| grep‘
ls *.pm G media_id とかできるよ。
グロビング パターンマッチ、ワイルドカードとかその辺
grep insert ./*.pm grep insert ./*/*.pm
⇒ grep insert **/*.pm 一発でできるよ。
Find とかやんなくてもいいよ ⇒ ls -d **/Regist.*
グロビング パターンマッチ、ワイルドカードとかその辺 その2
chmod 755 *(/)
⇒すべてのディレクトリのパーミッションを755にするよ ワイルドカードとかに続いてファイルの属性を指定できるよ
/ : ディレクトリ @ : シンボリックリンク . : 通常のファイル ^ : 否定 r :読み込み権のあるファイル w :書き込み権のあるファイル U :自分が所有するファイル etc….
グロビング そのほか 条件をグルーピングできるよ
ls **/Ad*.(pm|pl) ls -d **/<0-10>*
mkdir -p test/{1..10} ls -d **/<0-10>*
まとめ 他にもいろいろ出来るので設定ファイルをあれやこれや
して自分にあった使いやすいものにするといいよ。
参考: http://journal.mycom.co.jp/column/zsh/001/index.html
zsh 最強シェル入門 中島能和 : 翔泳社