先日、Apple は macOS の次のバージョンである Catalina から、bash に代わって zsh をデフォルトシェルとして採用することを発表しました。 データ サイエンスを学ぶ新進の学生として、すべてのコマンド ラインを bash で学んできた私は、これがどのように影響するのか不思議に思っていました。 bashで学んだことは役に立たなくなるのだろうか? 4190>
「ボーン・アゲイン・シェル」、略して bash は、1989 年に Brian Fox によって作成されました。 これは、Bourne shell の代わりとして書かれた Unix シェルおよびコマンド言語です。 ほとんどのLinuxディストリビューションとAppleのmacOSのデフォルトのログインシェルとして広く配布されている。 BashはBourneシェルを改良し、スクリプト言語として使用できるようにしたものである。 4190>
“Z shell”、略して zsh は、1990 年に Paul Falstad によって作成されました。 これは、Bourne shell をベースにして、bash の機能を含む多くの改良を加えた Unix シェルおよびコマンド言語です。 また、Zshはシェルスクリプトを使用する機能を持ち、スクリプト言語として使用することも可能でした。
Bash vs. zsh:
bash と zsh はほとんど同じで、安心しました。 ナビゲーションは2つの間で同じです。 bashで覚えたコマンドはzshでも使えますが、出力時の動作は異なるかもしれません。 Zshはbashよりずっとカスタマイズしやすいようです。
Auto-completion
両シェルで役立つ機能の1つは、タブの自動補完の機能です。 どちらのシェルでも、コマンドを入力した後にタブを押すと、コマンドの後に利用可能なオプションを表示することができます。 Zsh のタブ補完はより機能が豊富で、大文字小文字を区別したり、スペースを含む長いフォルダのリストをいじったりするのではなく、矢印キーでナビゲートして選択できるオプションのリストを表示します。 Zsh には Git 用のタブ補完機能もあります!
自動修正機能
速くて緩いタイプでも、たとえば zsh ではコマンドを書いていてタイプミスしたときに、スペルチェック機能が組み込まれていて自動的に検出し、修正するかどうか聞いてきます。
プラグインサポート
Zsh には Oh My Zsh というオンラインコミュニティがあり、これは zsh を管理するための最も古くて最も人気のあるオプションの 1 つとなっています。 コミュニティから提供された 250 以上のプラグインと 140 種類のテーマを提供しています。 これにより、ユーザーは自分のワークフローに特化して設定された環境で作業することができます。 以下は git プラグインのプレビューです。
Bash はループや条件構成、チルダやブレースの展開、エイリアス使用など、多くのプログラミング機能セットを備えています。 また、Bashは古くからあるシェルなので、必要なものを見つけるためのオンラインリソースがたくさんあります。
Take Zsh for a Spin!
macOS catalina のリリース前に zsh を試してみたいですか? macOS を使用している場合、ほとんどの場合、すでにあなたのコンピューターに zsh が入っています。 which zsh
コマンドを実行することによって確認できます。 そこから zsh に切り替えるには、次のコマンドを実行します: chsh -s /bin/zsh すると、パスワードの入力を求められます。
zsh を使い始めるには、ターミナルを再起動します。 それから chsh -s /bin/bash
そしてターミナルを再起動すると、また見慣れた場所に戻ってきます。 macOS 上の bash のバージョンに関する現在の問題は、それが古いバージョン 3.2 であることです。 現在のバージョンは 5.0 です。 これは、Appleのライセンス問題が主な原因だと推測されています。 4190>
どちらを選ぶかということになると、ほとんど好みの問題だと思われます。 zsh が提供する多くの便利な機能は、bash でも機能するようにすることができます。 私の意見では、新しいシェルのユーザとして zsh の方が役に立つように思います。
Oh-My-Zsh の詳細については、zsh の設定を管理するための優れたコミュニティ主導のフレームワークである、ここをご覧ください。 https://github.com/robbyrussell/oh-my-zsh