適切な Linux シェルの選択:Bash、Zsh、Fish – 機能と利点の説明
ターミナルを開くと、UNIX シェル環境として Bash が使用されている可能性があります。ただし、他の「シェル」環境も存在します。
C シェル、Korn シェル、Z シェル、さらには Fish Shell などの他の環境もあります。これらのさまざまなシェル環境にはそれぞれ長所と短所があるため、独自のシステムで使用するシェル環境を選択する前に、それらを考慮する必要があります。
この記事では、シェルを選択する際に役立つように、いくつかの人気のあるシェルとその主な機能について説明します。
Bash シェル
Bash シェル (または Bourne Again シェル) は、UNIX シェルおよびコマンド言語です。これは、Bourne Shell (sh) に代わるフリー ソフトウェアとして、GNU プロジェクトのために Brain Fox によって作成されました。
Bash は 1989 年に初めてリリースされ、ほとんどの Linux ディストリビューションではデフォルトのシェル環境となっています。 Kali Linux などの他のディストリビューションは、Z シェルをデフォルトのシェルとして使用します。
Bash は、Linus Torvalds (Linux の作成者) が Linux に移植した最初のプログラムの 1 つです。
画像ソース
混同しないでほしいのは、Bash もプログラミング言語であるということです。つまり、これは「シェル」ですが、Bash で動作をプログラムすることもできます。例:
#!/bin/bash
echo "Hello World"
Bash に関する重要なポイント
- Bash はほとんどのシステムのデフォルトのシェル環境であるため、ほとんどのユーザーは Bash を使用します
- Bash にはインライン ワイルドカード式がありません。ワイルドカード式は、正規表現と同様に、シェルでパターンを検索する場合に使用します。 3 つの主なワイルドカードは
*です。 、?、[]. - ディレクトリ名を自動的に変更することはできません
#スクリプトではコメントとして扱われますshoptがあります 設定- プロンプトにバックスラッシュエスケープが含まれている
- ユーザー構成設定は
.bashrcにあります
Z シェル
Z シェル (Zsh) も、Bash によく似た UNIX シェルです。スクリプトを作成し、シェルをコマンド インタープリターとして使用することもできます。
Zsh は、多くの改良が加えられた Bourne シェルの拡張機能です。 Zsh は 1990 年に Paul Falstad によってリリースされ、Bash、Korn Shell、および C Shell と共有する機能がいくつかあります。
macOS はデフォルトで Zsh シェルを使用します。
画像ソース
Zsh に関する重要なポイント
- ターミナル使用時のオートコンプリートが付属しています。
Tab ↹を押すと 実行したいコマンドをオートコンプリートするには、オートコンプリートするだけでなく、他のすべての可能なファイルとディレクトリのドロップダウンが表示されます。

- インラインのワイルドカード式をサポート
- Bash よりもはるかに構成可能
- プラグインとテーマをサポートします。 Zsh で利用できるプラグインのリストは次のとおりです。
Z シェルを中心に構築されたフレームワークもあります。最も人気のあるものの 1 つは、Zsh 構成を管理するためのコミュニティ主導のオープンソース フレームワークである Oh My Zsh です。 (私は Oh My Zsh を使っています 😄)
画像ソース
Zsh と Oh My Zsh は似ていますが、まったく同じものではありません。繰り返しになりますが、Oh My Zsh は Zsh 構成を管理する方法であり、シェル自体ではありません。
魚の殻
Fish は、対話性と使いやすさに重点を置いた UNIX シェル環境です。 Zsh とは異なり、Fish はユーザーが独自の構成を実装することを信頼するのではなく、デフォルトでユーザーに対話性を提供することを目的としています。
これは、2005 年に Axel Liljencrantz によって作成されました。魚は、POSIX シェル標準に準拠していないという事実により、「エキゾチックなシェル」とみなされます。 [[出典](https://en.wikipedia.org/wiki/Fish_(Unix_shell)]
画像ソース
魚に関する重要なポイント
- Fish には、コマンド履歴と現在のディレクトリに基づいて「入力しながら検索」という自動候補が表示されます。Bash の履歴検索と同様に、Fish Shell の検索履歴は常に保存されます。 オンになりました。こうすることで、ユーザーは端末で作業しているときに対話型のフィードバックを取得できるようになります。
画像ソース
- Fish は、構文ではなくコマンドとしての機能を好みます。これにより、オプションとヘルプ テキストを含むコマンドの観点から機能が表示されるようになります
- Fish にはデフォルトで多くの設定がすでに設定されているため、他の
shよりも初心者に優しいと考えられています。 Zsh などのオプション。 - Fish のスクリプト言語は、Zsh や Bash とは異なります。 Zsh はより多くのエイリアスを使用しますが、Fish はスクリプト言語でのエイリアスの使用を避けます。
cd などの基本的なコマンドを使用してスクリプトを作成する場合 、cp 、vim 、ssh など、Fish と Bash のスクリプト言語の動作の違いに気付かないでしょう。
最大の違いの 1 つは、コマンドからの出力をキャプチャしようとするときです。 Bash ではこれに慣れているかもしれません:
todays_date=$(date)
echo "Todays date is $todays_date"

Todays Date is Tue Dec 13 15:29:28 CST 2022
一方、Fish では、出力のキャプチャの動作が異なります。スクリプトにおける Fish に相当するものは次のようになります。
set date (date)
echo "Todays Date $date"
todays date is Tue Dec 13 21:35:03 UTC 2022
結論
Bash、Z Shell、Fish Shell にはそれぞれ利点があり、類似点もいくつかあります。それぞれについてもう少し詳しく理解したので、作業環境でそれぞれを効果的に使用できるようになります。
もっと構成可能なものが必要な場合は、Zsh を使用できます (または、Oh My Zsh をインストールすることもできます)。多くの設定を行わずに対話型のターミナル エクスペリエンスをさらに強化したい場合は、Fish Shell を使用できます。クラシックな雰囲気が必要な場合は、Bash をそのまま使用できます。
結局のところ、すべては開発者としての好みによって決まるため、自分にとって最適なシェルを選択してください。
これがお役に立てば幸いです!読んでいただきありがとうございます 🐚🐚🐚
無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう
-
Linux 上で MySQL、PHP、および Apache 構成ファイルを見つける – 実践ガイド
この投稿では、MySQL のデフォルト設定ファイルを見つけるためのいくつかのコマンドを学習します。 データベースサーバー (my.conf) 、PHP プログラミング言語 (php.ini) および Apache HTTP サーバー (http.conf) 、Linux とともに LAMP (Linux Apache Mysql/MariaDB PHP) スタックを形成します。 構成ファイル (または構成ファイル) には、システム関連の設定またはアプリケーションの設定が含まれています。これにより、開発者と管理者はシステムやアプリケーションの操作を制御できるようになります。 Linux シス
-
LinuxターミナルプロンプトでBashの色とコンテンツをカスタマイズする方法
現在、Bashは、ほとんどの(すべてではないにしても)最新のLinuxディストリビューションのデフォルトのシェルです。ただし、ターミナルのテキストの色とプロンプトの内容がディストリビューションごとに異なる場合があることに気付いたかもしれません。 推奨される読み物: Linuxで最も頻繁に使用される5つのオープンソースシェル アクセシビリティを向上させるため、または単なる気まぐれのためにこれをカスタマイズする方法を知りたい場合は、読み続けてください。この記事では、その方法について説明します。 PS1Bash環境変数 コマンドプロンプトと端末の外観は、PS1と呼ばれる環境変数によって制御