Linux / Unixで利用できるさまざまなシェルがあることは、おそらくすでにご存知でしょう。 Bashは、ほとんどのLinuxディストリビューションで最も人気があり、デフォルトのシェルです。
もう1つの人気のあるシェルはZshです。これは強力で、macOSのデフォルトのシェルでもあります。
さて、質問が来ました。どの機能がZshを人気のある選択肢にしているのでしょうか。また、わざわざそれを使用する必要がありますか?
答えさせてください。
Zshとは何ですか?
「Zシェル」は、PaulFalstadがプリンスタウン大学の学生だったときに最初に作成されました。 Zshには、Bourne-Again Shell(Bash)、Korn Shell(ksh)、C-shell(csh)、tcshなどの他の人気のあるシェルに存在する便利な機能の多くが組み込まれています。したがって、Zshは、これらのシェルとある程度の互換性を提供するように設計されており、ユーザーの採用率を高めることができます。
現在、Zshは大規模なオープンソースプロジェクト(Paul Falstadは保守されていません)であり、ユーザーと寄稿者の大規模なコミュニティがあり、2019年以降、AppleのmacOSのデフォルトのシェルになっています。
BashとZshの違いは?
現在、両方のオープンソースプロジェクトの積極的な開発により、一般的な機能と機能の点で両方のシェルが互いに近くに保たれていますが、特定のことを行う方法にはいくつかの小さな違いがあります。 Zshはデフォルトでより強力でカスタマイズ可能ですが、Bashはいくつかのことを実現するためにいくつかの追加のスクリプト(プラグイン)を必要とする場合があります。
より広い視野で、ZshをBashよりも輝かせる主な機能は次のとおりです。
Zshにはより高度な機能が付属しています。
オートコンプリートは、Zshでより速くより良く機能します。 bashでは、タブ補完は用語を最初から一致させることで機能します(mnはmntと一致しますが、findmntとは一致しません)。 Zshでは、用語が途中であっても結果が表示される可能性があります。

Zshでは、コマンド履歴がシェル間で共有されるため、オートコンプリートのユーザーエクスペリエンスが向上します。
Zshには自動修正機能も組み込まれています。入力が速すぎてタイプミスをすると、別の正しいコマンドが提案される場合があります。
Zshはより構成可能であり、派手なユーザープロンプトを作成するためのより多くのオプションがあります。
Zshのパラメーター拡張は、Bashよりも強力です。
Zshには、人気のあるOh My Zshのように、利用可能なプラグイン、テーマ、フレームワークがたくさんあります。便利な機能を備えた見栄えの良い端末を手に入れるのに役立ちます。
Zshを使用する必要がありますか?
Zshは、強力で高速なシェルであり、簡単にカスタマイズできることが証明されています。これにより、ユーザーは、日常使用のために簡単にセットアップできる、洗練されたユーザーフレンドリーなCLIを使用できます。
ソフトウェア開発者である場合、または自分のコンピューターでCLIを頻繁に使用する必要があるその他の種類のアクティビティを行う場合は、一般的なエクスペリエンスを向上させるためにZshが適しているようです。これは、特にあなたがそれを探索するのに時間を費やすことをいとわない場合です。
バッシュを放棄する必要がありますか?
バッシュはどこにも行きません、そしてそれは事実です!これは、ほとんどのLinuxディストリビューションに組み込まれている標準のシェルです。つまり、世界中のほとんどのサーバー、コンテナー、仮想マシン、およびクラウドインスタンスです。
スクリプティングに関しては、特別な用途がない限り、システム全体の一貫性を目指してbashスクリプトを作成する方がよいでしょう。
メインコンピュータでZshを使用することはできますが、Bashに触れなくなるとは思わないでください。今後、Bashスクリプトは安全な選択です。
macOSでデフォルトになるのはなぜですか?
Zshが優れた機能を備えた優れたシェルであることに加えて、質問への答えはすべてソフトウェアライセンスに関するものです。
Zshに切り替える前は、MacOSは、GPLv2でライセンスされた最後のバージョンである古いバージョンv3.2(2007年にリリースされました!)でデフォルトのシェルBashとして長年提供されていました。 3.2以降、Bashの新しいバージョンはGPLv3でライセンスされています。これは、Appleには十分に受け入れられないように思われるライセンスです。
旧式のシェルをデフォルトとして10年以上提供した後、Appleはこの問題に対処し、MITライセンスの下でライセンスされているZshに移行することを決定しました。
Zshは、メインコンピューターでのCLIエクスペリエンスを向上させる可能性があり、一部のフレームワークでは簡単なインストールで輝きを放つため、初心者に最適です。
Bashはスクリプト作成に適しています。また、標準のBashインストールに慣れていると、ほとんどのLinuxディストリビューションのデフォルトのシェルであるため、DevOps、システム管理、クラウドコンピューティング、およびコンテナーを扱う人にとって非常に役立つ場合があります。
試してみたい場合は、Zshをインストールし、Zシェルに切り替えて調べてください。すばらしいと思ったら、デフォルトのシェルにすることもできます。
著者情報:Jonas B. Rossiは、Linux、Vim、およびCLIに関するヒントを共有するのが大好きなシステム開発者およびアナリストです。