zshのススメ
金曜日, 7月 24th, 2009金曜日はクイズじゃなくていろいろ紹介でもする曜日にしてみるテスト.
実体としてはその週毎に異なると思いますw
閑話休題.
栄えある(?)1回目は「zshのススメ」.
何はともかくやってみるべし.
Step1: zshをインストールする.
EasyPackage.app を起動して,shells/zsh をインストールしましょう.
これで分からない人は,以下のようにしてください.
- EasyPackage.app を起動.
- 上部メニュー「パッケージメニュー」から【一覧を取得】を選択.「Log」にいろいろ出力されると思いますが,2009年7月時点で以下のように local と latest のバージョン番号が 0.2.26 になっていればOK.もし異なっていたら,上部メニュー「EasyPackage」から【EasyPackageの更新】を選択しましょう.
local epkg ver.0.2.26
latest epkg ver.0.2.26 - アプリケーション内の左パネルから[shells]をクリックし,右パネルに表示される[zsh]を選択.
- 上部メニュー「パッケージ」から【インストール】を選択.
Step2: 動かしてみる.
漢のzshを開いて,「第24回 グッバイ野郎ども! コピペではじめるzshファイナル」から設定ファイルをコピペして動かしてみるべし.
これで分からない人向けの解説.
- 黒背景で表示されている「リスト1 コピー&ペースト対応${HOME}/.zshrc ファイル」をコピー.
- emacs でファイル .zshrc を新規作成する.
prompt> emacs -nw ~/.zshrc
- 開いた .zshrc に,さっきコピーした設定ファイルをペーストし(張り付けして),保存する.
- zsh を起動する.仮起動するだけなら以下のようにするだけです.
prompt> zsh
Step3: 何が凄いのか.
まずは漢のzshの第1回から3回ぐらいまでを読んでみましょう.
これで凄さが分からない場合には,ヒストリ機能の凄さを味わうために取りあえず以下の手順1〜手順3を試してみてください.
(手順1) 「test」と書いたhoge.txtを作成し,Webサーバにアップする.
accountは各自のアカウント名(e095700など)にしてください.
prompt> emacs hoge.txt
prompt> rsync -auvze ssh ~/Sites/ account@www.ie.u-ryukyu.ac.jp:~/public_html/
以下のように暗号化の為に RSA キーを使うかの確認が始まりますが,必要な事ですので yes と答えて接続してください.
The authenticity of host ‘www.ie.u-ryukyu.ac.jp (133.13.48.7)’ can’t be established.
RSA key fingerprint is xx:xx,,,xx.
Are you sure you want to continue connecting (yes/no)?
(手順2) ファイルがアップロード出来た事を確認する.
Safari で以下のURLを参照しましょう.test と表示されますか?
http://www.ie.u-ryukyu.ac.jp/~account/hoge.txt
(手順3) ファイルを更新して再度アップロードする.
まずは hoge.txt を開いて,test2 にするなり少し編集して保存しましょう.
prompt> emacs hoge.txt
prompt>
ここで,通常のシェルでヒストリを利用するには「カーソルキーで上(もしくは Ctrl^p)」を押したりします.今みたいに「ついさっき」使ったばかりのコマンドであればそれでも簡単に見つかりますが,いろいろ作業しているとごちゃごちゃするし,「1週間前,1ヶ月前」のコマンドだったりする事もあるでしょう.
そんなとき,zsh であれば「rsync」まで入力してから「カーソルキーで上」を押すと,そのコマンドに関するヒストリだけを遡ることが出来ます.つまり,
prompt> rsync
まで入力してから「Controlキー + P」を押すと
prompt> rsync -auvze ssh ~/Sites/ account@www.ie.u-ryukyu.ac.jp:~/public_html/
の青字部分が自動で補完されます.
もちろん,同じ rsync コマンドを使った異なる履歴(違う引数を指定して実行した履歴)があれば,「Controlキー + P や、Controlキー + N」を押す事で随時遡ったり,前に進んだり出来ます.