パワーユーザーのための6つの代替Linuxシェル

Bash、またはBourne Again Shellは、ほとんどのLinuxディストリビューションにプリインストールされています。しかし、これが唯一のシェルではありません。他にも試すべきシェルがいくつかあります。ここでは、bashを置き換えることができる6つの代替シェルを紹介します。それぞれに利点と欠点があるので、試してみて自分に最適なものを見つけてください。
目次
- sh(またはBourne Shell)
- Dash
- csh(またはC Shell)
- ksh(またはKorn Shell)
- zsh(またはZ Shell)
- Fish
ヒント: Bashの使用に疲れましたか?Linuxでデフォルトシェルを切り替える方法を学びましょう。
1. sh(またはBourne Shell)
Bourneシェルは、その作成者であるStephen Bourneにちなんで名付けられた、最初のシェルの1つです。Bashが作成された基盤として使用されたと言えます。時々、ユーザーは両者を混同し、同じものであると思い込むことがありますが、実際にはそうではありません。多くの.shスクリプトはBashでも実行できますが、BashがShから多くを含んでいるためです。しかし、その逆は成り立ちません。

ShはBashの前身と考えることができます。それほど多くの機能はありませんが、Bashよりも標準化されています。
2. Dash
Dashは基本的にDebianシステム上のBashです。Debianベースのディストリビューションを使用している場合、BashではなくDashを使用している可能性が高いです。しかし、Dashをデフォルトシェルとして使用することの複雑さから、Ubuntu(Debianベースのディストリビューション)は、インタラクティブスクリプトにはBashを使用し、デフォルトシェルにはDashを使用しないことを決定しました。

Dashは、タブ補完やコマンド履歴など、Bashの多くの機能が欠けていますが、より高速でサイズも小さい(100K対900K)ため、あまり強力でないコンピュータで実行する場合には重要な要素です。
さらに読む: LinuxでSedを使用する方法
3. csh(またはC Shell)
CおよびC++プログラミング言語は非常に人気があり、Linux自体の大部分もそれらで書かれています。これが理由で、C構文モデルを使用するシェル、C ShellまたはCshが存在するのは驚くべきことではありません。Cに精通している場合、このシェルは自然に感じるでしょう。

しかし、Cshシェルには多くのバグがあり、機能もあまりありませんでした。これが理由で、Tcshシェルが登場しました。Tcshはほとんどのバグを修正し、コマンド補完、ジョブ制御、スペル修正などの新機能を追加しました。残念ながら、TcshとBashは非常に異なるため、TcshでBashスクリプトを実行することはできず、その逆も同様です。
さらに読む: Log4Shellとは何か、Linuxシステムをそれから保護する方法
4. ksh(またはKorn Shell)
Ksh、またはKornシェル(その作成者David Kornにちなんで名付けられた)は、Tcshとほぼ同時に導入されましたが、Tcshとは異なり、ShおよびBashと互換性があります。2000年までAT&Tの専有シェルであり、これが理由でそれほど人気が出ませんでした。KshはShに浮動小数点演算、ジョブ制御、コマンドエイリアス、コマンド補完などの機能を追加します。

5. zsh(またはZ Shell)
これまでに挙げたシェルは主に1970年代に作成されました。コンピュータはそれ以来大きく進化しており、新しいシェルも必要とされています。人気のある新しいシェルの1つがZシェル、またはZshです。これは1990年にPaul Falstadによって作成されました。

ZshはBashの機能に加えて、スタートアップファイル、ログイン/ログアウトの監視、バイトコードのような組み込みプログラミング機能、構文における科学的表記のサポート、浮動小数点演算、コメントの閉じ、概念、変数、関数、キーインデックスなどの機能を持っています。より高度なシェルを探している場合は、Zシェルを試してみてください。
6. Fish
より現代的なシェルを求める探求はFishで終わりませんでした。新世紀には、Fish(またはFriendly Interactive Shell)などの新しいシェルが登場しました。2005年にリリースされ、Shシェルに基づいていません。その最も特徴的な点は、初心者に優しいように設計された独自のコマンドライン構文を持っていることです。また、自動提案、矢印キーによる選択、Xクリップボードによるサポート、256のターミナルカラーなどのクールな機能も備えています。

Fishの主な欠点は、Bashや他のBourneベースのシェルとは非常に異なることです。その結果、FishからBashやShにコード(および知識)を移植することはできません。
では、どのシェルが最適なのでしょうか?残念ながら、この質問には答えられません。すべてのシェルには利点と欠点があり、実際には何に使用するかによります。しかし、これら6つの代替シェルのそれぞれの利点と欠点を知ったので、どの状況でどのシェルを使用すべきかを決定するのが容易になるでしょう。とはいえ、正直に言えば、この選択は主に個人的な好みの問題です。私は自分自身Bashを使い続けており、それで満足しています。Bashがデフォルトシェルである理由があるのですから!