rcmdnk's blog

zsh最強シェル入門

現在行われているWWDC2019で 次のmacOSの名前がCatalinaだと発表され iTunesが解体されたりいろいろな新しい機能が発表されたりしていますが、 そんな中で次のmacOSのデフォルトシェルがZshになるとの話が出ています。

macOSでのデフォルトシェル設定

macOSではGUIから設定したりdsclというコマンドを使って デフォルト(ログイン)シェルを変更することが出来ます。

ターミナルアプリごとに使うものを設定することも出来たりします。

現在の初期設定では/bin/bashがデフォルトシェルになっています。

Linux系のシステムでも通常は/bin/bashを使っています。

FreeBSD系だと/bin/tcshが使われていて MacもMac OS X v10.2 (Jaguar)まではtcshがデフォルトシェルでした。

結構前からZshが便利、という話は非常に多く出てくるようになりましたが いまのところ知る限りではzshがデフォルトシェルであるUnixは無いと思います。

macOS CatalinaからZshがデフォルトシェルに?

そんな中、次期macOS CatalinaからデフォルトシェルがZshになるとの話が出ています。

Use zsh as the default shell on your Mac - Apple Support

現状Beta版での話ですが、もし実際のリリースでも入るとすると かなり大きな意味を持ちます。

Bashに比べてZshは多機能で インタラクティブシェルとして好んで使う人は多数いますが、 多くの環境でデフォルトシェルがBashなので すべてを変更するのが大変だったりすることもあり Bashを主に使ってる人の方が未だに多いと思います。

基本的にコマンドラインでコマンドを打ってるだけであればそれほど大きな違いはありませんが、 ちょっと凝ったことをしようとすると結構な違いがあります。

簡単なところでは 配列の0番目の存在(Bashは配列は0番から、Zshは1番から)かな、と思います。

もちろん設定ファイルの書き方も違う部分があり、 .bashrcとは別に.zshrcを用意してやる必要があります。

多分、macOS Catalinaがこのまま配布されて皆がアップグレードする様なことがあれば、 最初にコマンドプロンプトが違う、ということに気づいて .bashrcが効かない、どうしてだ、という騒ぎになりそうですが。。。

そのあたりの周知は今後どのようにされていくのでしょうか?

Zshに乗り換えるか

私自身、Zshを何度か使おうとして便利だな、という思いはあり、 ちょくちょく設定ファイルの更新などはしていますが 現状手元のMacでの作業よりもいろいろなサーバーに入って作業することも多く、 それらすべてデフォルトシェルを変更するのが面倒なので 今の所Bashをメインに使っています。

ただMacのデフォルトシェルがZshになると話は別で、 他の環境でも結局.bashrcを取り込む様な作業をしているところだったら 最初にデフォルトシェルを変更しても良いわけでちょっと考えものです。

もちろんシステムとしてデフォルトシェルを簡単に変えられないところもありますが 主に作業しているところでは変更は可能だし、 Zsh自体はほとんどの環境に入ってるので最悪ログイン後にzshで変更しても良いわけで。

今の設定ファイルでは.bashrc.zshrcともに.commonrcという 共通設定ファイルを読み込むようにしていて、ここにBash/Zsh共通の項目をまとめています。

これによって簡単に変更は出来るようにしているつもりです。

ZshにあってBashにない魅力の一つとしてはTab補完をするときに 候補の中からカーソル移動で選択出来る機能がありますが、 それを無理やりBashで実装しよう、とかちょっとやったりしてた時期もありました。

そんなことせずに素直にZshに乗り換えるべきか…

Sponsored Links
Sponsored Links

« Chromeで多数のタブを開くときに本当によろしいですか?と聞かれなくする方法 Dropbox Paperを使ってみた: Evernoteの代わりになるか? »

}