ホームページ » の仕方 » Bash、Zsh、その他のLinuxシェルの違いは何ですか?

    Bash、Zsh、その他のLinuxシェルの違いは何ですか?

    ほとんどのLinuxディストリビューションにはデフォルトでbashシェルが含まれていますが、他のシェル環境に切り替えることもできます。 Zshは特に人気のある代替手段で、灰、ダッシュ、魚、そしてtcshのような他のシェルがあります。しかし、違いは何ですか、そしてなぜそんなに多くがあります?

    シェルは何をしますか?

    コマンドラインでサインインするか、Linuxでターミナルウィンドウを起動すると、システムはシェルプログラムを起動します。シェルは、コマンドライン環境を拡張するための標準的な方法を提供します。あなたが好きなら、あなたは別のものとデフォルトのシェルを交換することができます.

    最初のシェル環境は、Bell Labsで開発され1971年にリリースされたThompsonシェルです。シェル環境は、それ以来ずっとさまざまな新しい機能、機能性、およびスピードの向上を追求したコンセプトの上に構築されてきました.

    たとえば、Bashはコマンドとファイル名の補完、高度なスクリプト機能、コマンド履歴、設定可能な色、コマンドエイリアス、および最初のシェルがリリースされた1971年には利用できなかったその他のさまざまな機能を提供します。.

    シェルはバックグラウンドでさまざまなシステムサービスによっても使用されます。 Linuxディストリビューションには、シェルスクリプトとして書かれた多くの機能が含まれています。これらのスクリプトは、シェル環境を介して実行されるコマンドおよびその他の高度なシェルスクリプト機能です。.

    bashに至るシェル:sh、csh、tsh、およびksh

    現代のシェルの最も有名な祖先はBourneシェルです。これは "sh"としても知られており、AT&TのBell Labsで働いていた創作者Stephen Bourneにちなんで名付けられました。 1979年にリリースされ、それは他の機能と共に、コマンド置換、配管、変数、条件テスト、およびループ処理をサポートしているため、Unixのデフォルトのコマンドインタプリタとなりました。それはユーザに多くのカスタマイズを提供しませんでした、そしてエイリアス、コマンド補完、そしてシェル関数のような現代の素敵さをサポートしませんでした(しかしこの最後のものは結局追加されました).

    Cシェル(「csh」)は、1970年代後半にカリフォルニア大学バークレー校のBill Joyによって開発されました。エイリアス(長いコマンドのショートカット)、ジョブ管理機能、コマンド履歴など、ユーザーがシステムを制御するためのインタラクティブな要素が多数追加されました。これは、Unixオペレーティングシステム自体が書かれたCプログラミング言語をモデルにしていました。これはまた、BourneシェルのユーザーがCを学習してコマンドを入力できるようにすることを意味しました。さらに、cshにはかなりの数のバグがあり、それらはユーザーと作成者によって長期間にわたって同様に解決されなければなりませんでした。非対話型のコマンドをよりうまく処理できるため、スクリプトにBourneシェルを使用することになりましたが、通常の使用ではCシェルを使用しました。.

    時間が経つにつれて、多くの人々がバグを修正し、Cシェルに機能を追加して、「tcsh」として知られるcshの改良版を完成させました。しかし、cshは依然としてUNIXベースのコンピュータのデフォルトであり、いくつかの非標準機能を追加していました。 Bell LabsのDavid Kornは、Kourneシェルの言語との後方互換性を保ちながら、cshシェルから多くの機能を追加することで状況を改善しようとしたKornシェル(“ ksh”)に取り組みました。 1983年にリリースされましたが、独自のライセンスの下にあります。さまざまなオープンソースライセンスの下でリリースされた2000年代まではフリーソフトウェアではありませんでした.

    bashの誕生

    Unix用のPortable Operating System Interface(POSIX)は、多忙なプロプライエタリなcsh実装への別の反応でした。それは(とりわけ)コマンド解釈のための標準を首尾よく作成し、そして結局KornShellの多くの機能を反映しました。同時に、GNUプロジェクトは無料のUnix互換のオペレーティングシステムを作成しようとしていました。 GNUプロジェクトは、そのフリーオペレーティングシステムの一部となるフリーソフトウェアシェルを開発し、それを「Bourne Again Shell」または「bash」と名付けました。.

    Bashは1989年の最初のリリースから何十年もの間改良されてきましたが、今日のほとんどのLinuxディストリビューションでは依然としてデフォルトのシェルです。 AppleのmacOSのデフォルトシェルでもあり、MicrosoftのWindows 10にインストールすることができます。.

    新しいシェル:灰、ダッシュ、zsh、そして魚

    それ以来、LinuxコミュニティはBashに慣れてきましたが、28年前にBashが最初にリリースされたとき、開発者は新しいシェルの作成をやめませんでした.

    Kenneth Almquistは、Almquish shell、A Shell、「ash」、または単に「sh」と呼ばれるBourneシェルクローンを作成しました。これはPOSIX互換でもあり、BSDのデフォルトシェルとなりました。これはUnixの別のブランチです。 ashシェルはbashよりも軽量であるため、組み込みLinuxシステムで人気があります。あなたがBusyBoxをインストールした、またはBusyBoxソフトウェアスイートを持つ他のデバイスを持った根ざしたAndroid携帯を持っているなら、それはashからのコードを使っています.

    Debianはashをベースにしたシェル環境を開発し、それを "ダッシュ"と呼びました。 POSIX準拠で軽量になるように設計されているので、Bashよりも高速ですが、その機能をすべて備えているわけではありません。 Ubuntuはダッシュシェルを非対話型タスクのデフォルトシェルとして使用し、シェルスクリプトやその他のバックグラウンドで実行されるタスクを高速化します。 Ubuntuはまだインタラクティブシェルにbashを使っているので、ユーザーはまだフル機能のインタラクティブ環境を持っています.

    最も人気のある新しいシェルの1つはZシェル、または「zsh」です。 1990年にPaul Falstadによって作成されたzshは、bashで見つかる機能に加えてさらに多くの機能を含むBourneスタイルのシェルです。例えば、zshはスペルチェック、ログイン/ログアウトを監視する機能、バイトコードのようないくつかの組み込みプログラミング機能、構文の科学的記数法のサポート、浮動小数点演算を可能にするなどの機能を持っています。.

    もう1つ新しいシェルは、2005年にリリースされたFriendly Interactive Shell、または「fish」です。これは、習得が少し簡単になるように設計された独自のコマンドライン構文を持っていますが、BourneシェルまたはCシェルから派生したものではありません。これは面白いアイデアですが、魚を使って学んだことが必ずしもbashや他のBourne派生シェルの使用に役立つとは限りません。.

    どちらを選ぶべきですか? (そしてなぜZshが人気があるのか​​)

    あなたはシェルを選ぶ必要はありません。あなたのオペレーティングシステムはあなたのためにあなたのデフォルトシェルを選びます、そしてその選択はほとんどいつもbashです。 Linuxディストリビューション - あるいはMac - の前に座ると、ほとんどいつもbashシェル環境になるでしょう。 Bashにはかなりの数の高度な機能がありますが、シェルスクリプトをプログラムしない限り、おそらくそれらを使用しないでしょう。.

    組み込みLinuxシステムやBSDシステムでは、ashシェルができます。しかしashはBourneベースのシェルであり、bashとほぼ互換性があります。この軽量シェルでは使用できない高度なスクリプト機能もありますが、bashの使用に関する知識があればashシェルまたはダッシュシェルの使用に移行します。.

    遭遇するほとんどすべてのシェルはBourneベースで、zshも含めて同様に機能します。.

    zshが人気があるのはそのためです。この新しいシェルはbashと互換性がありますが、より多くの機能が含まれています。 zshシェルには、組み込みスペル訂正、改善されたコマンド行補完、シェル用のプラグインとして機能するロード可能モジュール、単なるコマンドの代わりにファイル名などの別名をコマンド行で提供できるグローバル別名を提供します。テーマ設定のサポートが増えました。これはbashのようなものですが、たくさんの追加機能、追加機能、および設定可能なオプションがあり、コマンドラインで多くの時間を費やした場合に便利になるでしょう。.

    bashに慣れていれば、別の構文を習得せずにzshに切り替えることができます。追加の機能が追加されるだけです。 zshに慣れていれば、別の構文を習得せずにbashに切り替えることができます。これらの機能にアクセスすることはできません。.

    “ Oh My ZSH”は、zshプラグインをより簡単に有効にしたり、あらかじめ用意されたテーマを切り替えたりすることで、時間をかけずにzshシェルをすばやくカスタマイズできるツールです。.

    他のシェルもあります。例えば、tcshシェルはまだ存在しており、まだオプションです。 FreeBSDはデフォルトのrootシェルとしてtschを使い、デフォルトの対話型シェルとしてashを使います。 Cプログラミングを定期的に使用する場合は、tschの方が適している可能性があります。しかし、bashやzshと同じくらい一般的に使われているものはどこにもありません。.

    シェルを切り替える方法

    試すために新しいシェルに切り替えるのは簡単です。 Linuxディストリビューションのパッケージマネージャからシェルをインストールして、シェルを起動するコマンドを入力するだけです。.

    たとえば、Ubuntuでzshを試したいとしましょう。インストールして起動するには、次のコマンドを実行します。

    sudo aptインストールzsh zsh

    あなたはzshシェルに座っているでしょう。タイプ」 出口 「シェルで終了して現在のシェルに戻る」.

    これは一時的なものです。新しいターミナルウィンドウを開いたり、コマンドラインでシステムにサインインしたりするたびに、デフォルトのシェルが表示されます。ログイン時に表示されるシェルを変更するには、ログインシェルとして知られています。通常は、 チシュ , または「Change Shell」、コマンド.

    このコマンドを使用するには、まずwhichコマンドを使用してシェルへのフルパスを見つける必要があります。たとえば、zshシェルに変更したいとしましょう。次のコマンドを実行します。

    どのzsh

    Ubuntuでは、zshバイナリが/ usr / bin / zshに格納されていることがわかります。.

    次のコマンドを実行してパスワードを入力すると、新しいログインシェルを選択するように求められます。

    チシュ

    上記のコマンドに従って、入力します / usr / bin / zsh . zshシェルが実行されるまで、zshシェルがデフォルトになります。 チシュ コマンドとそれを元に戻した.