経緯
あ、bash触ってて思ったのはPowerShellでも入力補完(Intellisence)で、候補が2つ以上の場合にtab 2回連打で一覧を出してほしいかにゃ その上で、現在の次の候補を順次出すのも実行してくれると非常に素晴らしいし bash 超えれる
— guitarrapc_techさん (@guitarrapc_tech) 2013年4月20日
PowerShell、オプションの候補出してくれるのはいいけど、説明書きが一切出てこないので、どんなに見た目よくてもこの辺り zsh より残念
— たけしけーさん (@takeshik) 2013年4月20日
そしてこのトドメ
(ぎたぱそ氏の、シェルネタ好きそうなのに zsh 使ってみないのなんでだろ感)
— たけしけーさん (@takeshik) 2013年4月20日
使うよ!やるよ!
zshとは
この辺の記事がとても分かり易いというか魅力を感じさせてくれます。zshという選択肢 漢のzsh - 最強のシェル、それは「zsh」特に、zshという選択肢にある「ファイル指定と展開」を見て興奮しました。 これだけでも入れる価値があるのに、オプション内容も出るしヒストリ追えるし、AliasもPowerShellみたいに作成できるし。
AWSのデフォルトシェル
現在のシェル環境を見るとecho $SHELLbashですね。
/bin/bash存在するシェルを調べます。
cat /etc/shellszshはありませんねー
/bin/sh /bin/bash /sbin/nologin /bin/dash /bin/ksh
zshをインストールする
インストールはyumから簡単です。sudo yum install zsh確認時は、問題なければ y でインストールを。 yum install後、zshがシェルに追加されます。 存在するシェルを調べます。
cat /etc/shellszshが追加されました。
/bin/sh /bin/bash /sbin/nologin /bin/dash /bin/ksh /bin/zsh
zshの初期設定ファイル .zshrc を作る
ホームディレクトリ (EC2の場合は、 /home/ec2-user/ あるいは ~/)に .zshrcを作成します。cd ~ vim .zshrcまずはテキトーに設定をいれます。
autoload -U compinit compinit setopt auto_cd setopt auto_pushd setopt correctそれぞれこんな意味です。 補完機能の有効化
autoload -U compinit compinitbash や PowerShell と違うのがこれ!始めてみて感動しないshell 好きはいないはず! [office src="https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%211376&authkey=AGQtgWHuI1pVMhk" width="292" height="320"] cdなしでディレクトリ名でcd
setopt auto_cdcd が無くともディレクトリ名だけで移動できます。 無くてもいいかな… cdの履歴を利用して移動
setopt auto_pushdcd - で直前のディレクトリに移動できます。
cd -pushdに対するpopd がcdで実現できてるイメージですね。 履歴なので、一覧でたりとか、履歴番号指定で移動できます。 コマンドのスペルチェック
setopt correctコマンドのミスを指摘してくれますよ! スペルミスがちょっとは安心? でも結構頭悪いかも…
素敵なzshrc
っ(あまりメンテしてない zshrc github.com/takeshik/confi…
— たけしけーさん (@takeshik) 2013年4月20日
Gitでお借りしたりwww
https://github.com/takeshik/configurations/blob/master/zsh/zshrc
あ、Windowsでは、英語が入っていないとgit cloeしたファイルの文字コードがsjisになっててAWSに
WinASCP等で転送すると死にます。
文字コード utf8
改行コード LF
にしておきましょう。
それか、AWS側でvimで開いた画面でこぴぺっ!
AWSのデフォルトシェルをbashからzshに変更する
現在のシェル環境はyumでインストールされただけでは、変わらずbashです。echo $SHELLbashですね。
/bin/bashzshをデフォルトシェルにするには、chshをします。 ただし、su が必要かつ ec2-userへの適用なのでこうします。
sudo chsh ec2-userプロンプトで、zshのフルパスを指定します。
/bin/zshデフォルトシェルを確認すると
echo $SHELLzshになりました。
/bin/zsh
一度sshを抜けて再度ログインで適用
.zshrcは一度ログインを抜ければ適用されるのが楽かな? さぁ、ログインしなおしたら貴方も楽しいzsh生活が送れます!!!総括
PowerZShell が求められる
— みほさん (@mfakane) 2013年4月20日
もう既存の破棄して PowerZShell 作ってくだされ~
— guitarrapc_techさん (@guitarrapc_tech) 2013年4月20日