シェルは、シェルはUnixやGNU/Linuxなどのオペレーティングシステムにおけるコマンドインタプリタであり、他のプログラムを実行するプログラムです。シェルは、ユーザーが異なるコマンドやユーティリティ/ツールを入力データとともに実行できるように、ユーザーにUnix/GNU Linuxシステムへのインターフェースを提供します。
シェルがプログラムの実行を終了すると、ディスプレイという標準出力デバイスにユーザーに出力を送ります。そのため、「コマンドインタプリタ」と呼ばれます。
シェルは単なるコマンドインタプリタ以上のものであり、条件付き実行、ループ、変数、関数などのプログラミング言語構造を備えた独自のプログラミング言語でもあります。
そのため、Unix/GNU LinuxシェルはWindowsシェルに比べてより強力です。
この記事では、Unix/GNU Linuxで最もよく使用されるオープンソースシェルのいくつかを見ていきます。
1. Bash Shell
Bash Shell、または単に「Bash」は、「Bourne Again SHell」の略です。これは、もともとのBourne Shell(sh)の強化版であり、1989年にBrian Foxによって導入されました。
長年にわたり、Bashは多くのLinuxディストリビューションやmacOS(Catalina以前、その後zshに置き換えられました)で最も人気があり、広く使用されているコマンドラインインタープリターの一つになりました。
Bashは、ユーザーにコマンドの実行、ファイルシステムのナビゲーション、スクリプトの実行などの機能を提供します。ユーザーは、コマンド履歴、タブ補完、スクリプティング機能などの機能を活用して、タスクの自動化やワークフローの効率化を実現できます。
Bash Shellは、オープンソースコンピューティングの進化において重要な役割を果たし、ユーザーがシステムと対話するための一貫したインターフェイスを提供しています。

2. Tcsh/Csh Shell
Tcsh(「ティーシェル」と発音)とCsh(「シーシェル」と発音)は、数十年にわたって存在しているUnixベースのコマンドラインシェルです。Csh、またはCシェルは、1970年代後半にBill Joyによって、カリフォルニア大学バークレー校で開発されました。
Cプログラミング言語に触発されたいくつかの機能とスクリプト構文を導入し、Cに精通しているプログラマーに人気がありました。
Tcshは、「Tenex C Shell」を意味する元のCshの強化版であり、「Tenex」はTENEXオペレーティングシステムを参照しています。
Tcshは、Cshのすべての機能に加えて、コマンドライン編集、ジョブ制御、コマンド補完などの追加の改善を組み込んでいます。
これらのシェルは、Unixの世界で影響力があり、独自のスクリプト構文と機能を評価する多くのユーザーがいます。しかし、時間が経つにつれて、bashのような他のシェルがより広く普及し、その広範な機能により人気が高まりました。
それでも、TcshとCshは、Unixのシェルの歴史の不可欠な部分です。

3. Ksh Shell
KornShell、一般的にkshと呼ばれる、1980年代初頭にAT&Tベル研究所のDavid G. Kornによって開発されたUnixシェルです。
Cシェル(csh)とBourneシェル(sh)の両方の機能を組み合わせ、両者の良い面を提供することを目指しています。長年にわたり、kshは高度なスクリプティング機能で称賛され、多くのシステム管理者やパワーユーザーにおいてそのお気に入りであることが評価されています。
kshの目立つ機能の一つは、当時のシェルには珍しかった連想配列です。また、セレクト構造を導入し、スクリプト内でのメニュー生成を簡単にしました。
もう一つの大きな利点は、コマンドライン編集と履歴機能で、後にbashなどの他のシェルに採用されました。

4. Zsh Shell
Zshシェルは、単に「Zsh」と呼ばれることもある強力なUnixシェルで、プログラマーやシステム管理者の間で著しい人気を博しています。
Bourne Shellの拡張として生まれたZshは、Bash、ksh、tcshなどの他のシェルの機能を取り入れ、豊富な機能と改善されたインタラクティブな使用を提供しています。
Zshの目立つ機能の一つは、強力なオートコンプリート機能です。他のシェルとは異なり、Zshのオートコンプリートはコンテキストに応じて関連するコマンド、ファイルパス、さらにはGitブランチも提案し、ユーザーエクスペリエンスをよりスムーズで直感的にしています。
さらに、ZshはOh My Zshフレームワークを使用して高度にカスタマイズ可能であり、ユーザーは簡単にテーマやプラグインを適用でき、ターミナル環境の美観と機能面を向上させることができます。

5. Fish
Fish Shellは、ユーザーにインタラクティブで直感的なインターフェイスを提供することを目指した、現代的で使いやすいコマンドラインシェルです。
BashやZshなどの従来のシェルとは異なり、Fishはスマートな提案をデフォルトで提供し、初心者も経験豊富なユーザーもコマンドの操作と実行を簡単に行うことができます。
Fishの目立つ特徴の1つは、コマンド履歴に基づいたリアルタイムのフィードバックを提供するオートサジェスト機能であり、より迅速なコマンド実行が可能になります。
Fishはまた、シンタックスハイライトがあるため、コマンドを読みやすく理解しやすい、活気あふれるカラフルなインターフェイスを誇ります。そのWebベースの設定は、複雑な設定ファイルに飛び込むことなく、ユーザーがシェルエクスペリエンスをカスタマイズできるようにします。
さらに、 Fish には、コミュニティが貢献したプラグインやテーマの幅広いコレクションがあり、機能と見た目を向上させています。

概要
これらは、Unix / GNU Linuxで利用可能なシェルの唯一のものではありませんが、さまざまなLinuxディストリビューションに事前にインストールされているものを除いて、最も一般的に使用されています。
I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.
Source:
https://www.tecmint.com/different-types-of-linux-shells/