AWS楽しいです。ただ、Bash力が低くBashは痒いところに手が届かない感じです。
例えば、オプションが分からなかったり、補完で一覧を出してくれなかったり。これはPowerShellにも言えることですが、Bashだとうまくできない。。
zshで解決すると聞いてさっそく試してみました。
takeshikに感謝です。
経緯
- guitarrapc_techさん (@guitarrapc_tech) 2013年4月20日
- たけしけーさん (@takeshik) 2013年4月20日
- たけしけーさん (@takeshik) 2013年4月20日
zshとは
この辺の記事がとてもわかりやすいというか魅力を感じさせてくれます。
特に、zshという選択肢にある「ファイル指定と展開」を見て興奮しました。オプション内容も出るしヒストリ追える、AliasもPowerShellみたいに作成できるし、補完も強力です。
AWSのデフォルトシェル
現在のシェル環境を見るとbashですね。
$ echo $SHELL /bin/bash
存在するシェルを調べても、zshはありません
$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/ksh
zshをインストールする
インストールはyumから簡単です。
$ sudo yum install zsh
yum install後、zshがシェルに追加されます。
$ cat /etc/shells
/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 # cdなしでディレクトリ名でcd setopt auto_cd # cdの履歴を利用して移動 setopt auto_pushd # コマンドのスペルチェック setopt correct
コマンドのミスを指摘してくれます。スペルミスがちょっとは安心ですが、万能感はないです。
素敵なzshrc
Gitでお借りしました。
Windowsでは、英語が入っていないとgit cloeしたファイルの文字コードがsjisになっててAWSにWinASCP等で転送すると死にます。
文字コード utf8 改行コード LF
AWSのデフォルトシェルをbashからzshに変更する
現在のシェル環境はyumでインストールされただけでは、変わらずbashです。
echo $SHELL
bashですね。
/bin/bash
zshをデフォルトシェルにするには、chshをします。ただし、suが必要かつec2-userへの適用なのでこうします。
sudo chsh ec2-user
プロンプトで、zshのフルパスを指定します。
/bin/zsh
デフォルトシェルを確認すると
echo $SHELL
zshになりました。
/bin/zsh
一度sshを抜けて再度ログインで適用
.zshrcは一度ログインを抜ければ適用されるのが楽かな? さぁ、ログインしなおしたら貴方も楽しいzsh生活が送れます。