Linuxのシェルの種類
Gnome、KDE、MATEなどのグラフィカルユーザーインターフェースに加えて、Linuxオペレーティングシステムにはいくつかのシェルもあります。 これらのコマンドラインインタフェースは、ソフトウェア開発とシステムメンテナンスのための強力な環境を提供します。 シェルには多くの共通コマンドがありますが、それぞれのタイプには固有の機能があります。 時間が経つにつれて、個々のプログラマーは別のタイプよりもあるタイプのシェルを好むようになります。 以前のものに基づいて新しい、強化されたシェルを開発するものもあります。 Unixにもさまざまなシェルのエコシステムがあります。 Linuxはこのやり方をオープンソースソフトウェアの分野に持ち込みます。
sh
"sh"と呼ばれるBourneシェルは、1977年にAT&TのBell LabsでStephen BourneによってUnixコンピュータ用に開発された、オリジナルのLinuxシェルの1つです。 入力と出力のリダイレクト、文字列変数と整数変数を使用したシェルスクリプト、条件テストとループなどの機能を提供します。
バッシュ
shの人気により、プログラマはそれと互換性のあるシェルを開発するように動機付けられましたが、いくつかの機能強化が行われました。 Linuxシステムはまだshシェルを提供していますが、 "bash" - shをベースにした "Bourne-again Shell" - は新しいデフォルトの標準になりました。 bashの魅力的な機能の1つは、shシェルスクリプトを変更せずに実行できることです。 シェルスクリプトは、プログラミングやメンテナンス作業を自動化する複雑な一連のコマンドです。 これらのスクリプトを再利用できることは、プログラマーの時間を節約します。 元のBourneシェルにはない便利さには、コマンド補完やコマンド履歴があります。
cshとtcsh
開発者は、Linuxオペレーティングシステムの大部分をCおよびC ++言語で書いています。 モデルとしてC構文を使用して、1978年にBerkeley大学のBill Joyが "C-shell" cshを開発しました。システムは今提供しています。 Tcshはcshの問題を修正し、システムのディレクトリ構造とファイルに基づいてシェルが入力時に「推測」するようにコマンド補完を追加しました。 Tcshはbashスクリプトを実行しません。両者には大きな違いがあるからです。
ksh
David Kornは、tcshが導入された頃にKornシェル(ksh)を開発しました。 Kshはshおよびbashと互換性があります。 Kshは、浮動小数点演算、ジョブ制御、コマンドエイリアシング、およびコマンド補完を追加することによってBourneシェルを改良しています。 AT&Tは、オープンソースになった2000年まで、kshの所有権を保持していました。