BashとZshを比較

    「Bash」と「Zsh」の概要

    「Bash」と「Zsh」は、UNIX/Linux系OSで標準的に使われるシェルです。

    ■「Bash」とは

    Bash(GNU Bash)は、GNUプロジェクトによるプロダクトで、多くのUNIX/Linux系OSで標準的に利用されているシェルです。

    Linuxにおけるデファクトスタンダードシェルとして使用されています。

    「コマンドライン編集機能」「ジョブ制御機能」「コマンド履歴」「ディレクトリスタック」「$RANDOM変数」「POSIX形式のコマンド置換機能」「入力途中のコマンド名/ファイル名などの自動補完機能」などがサポートされています。

    オプション/変数が数多く用意されており、柔軟なカスタマイズが可能となっています。また、シェルプログラミング環境も充実しています。

    ■「Zsh」とは

    Zshは、UNIXコマンドインタプリタ(シェル)であり、「対話型ログインシェル」および「シェルスクリプトコマンドプロセッサ」として使用できます。

    Zshは「Bash」「ksh」「tcsh」などのシェル機能を取り込み、多数の改良が加えられている拡張Bourneシェルで、強力なスクリプト言語としても利用できます。

    機能性比較

    ■Bash

    Bashはシェルとしての基本的機能を備えています。

    ■Zsh

    Zshは、Bashが提供する機能に加え、初心者と上級者の両方のCLIユーザーにとって便利な機能が数多く組み込まれています。

    Zshは数々の優れた機能を提供しており、Bashに対する欠点はほぼなく、便利に利用できます。

    ストロングポイント比較

    ■Bash

    Bashは、デファクトスタンダードシェルであるため、「標準としてどこでも使える」という強みがあります。

    ■Zsh

    Zshの多くあるストロングポイントの中で、特に「軽量で強力な補完機能」があげられています。

    カスタマイズ利用用途比較

    ■Bash

    Bashは、あまりカスタマイズせずに標準で利用するユーザーが多い傾向とされています。

    ■Zsh

    Zshでは、さまざまなプラグインでカスタマイズして利用するユーザーが多いとされています。

    「端末多重化機能」「Gitブラウザ機能」「補完強化機能」「検索強化機能」などの機能を追加して、効率的に利用しているユーザーが多いようです。

     

    参考元サイト

    基本情報

    概要

    Bash(バッシュ)とは、GNUプロジェクトによるプロダクトで、多くのUNIX/Linux系OSで標準的に使われるシェルです。

    「シェル」とは

    「シェル」とは、ユーザからの操作を受け付け、結果を表示するソフトウェアです。「ユーザからの入力をカーネルに伝え、カーネルからの出力をユーザに伝える」という、ユーザとカーネルの間の橋渡しを行うプログラムです。ユーザ側からはカーネルを包み込んでいる貝殻(shell)のように見えることから「シェル」と名付けられました。

    シェルは、CUI(コマンドベース)です。CUIであるため作業の自動化に適しています。「連続する作業を1つにまとめて実行する」「複数ファイルに対して同じ処理を繰り返し行う」などの処理を得意としています。

    実行したいコマンドを並べたテキストファイルのことを「シェルスクリプト」といいます。

    基本説明

    Bashは「Bourne Again shell」の略であり、正式名称は「GNU bash」です。GNUプロジェクトの一部として開発が進められ、オープンソースソフトウェアとして公開されています。Linuxにおけるデファクトスタンダードシェルとして使用されています。

    ベースとなった「Bourneシェル」に、後発である「Cシェル」「kornシェル」などの多くの優れた機能を取り込み、高機能化が図られています。インタラクティブな操作性を提供します。

    「コマンドライン編集機能」「ジョブ制御機能」「コマンド履歴」「ディレクトリスタック」「$RANDOM変数」「POSIX形式のコマンド置換機能」「入力途中のコマンド名/ファイル名などの自動補完機能」などがサポートされています。

    オプション/変数が数多く用意されており、柔軟なカスタマイズが可能となっています。また、シェルプログラミング環境も充実しています。

    豊富な機能を持つため扱いやすいですが、若干重いという面があります。

    経緯

    1987年、「Bourneシェル」の後継として開発
    1988年、最初の版が発表
    1996年、「Bash-2.0」リリース

    TOPに戻る

    主な特徴

    マルチプラットフォーム

    数多くのLinuxシステム、「Mac OS X(10.3以降)」に標準搭載されています。また、Windowsにも移植されています。

    ジョブ

    Bashは、パイプラインによってつながれた一連のプロセス群を「ジョブ」という単位で管理します。ユーザはジョブに対してさまざまな制御を行えます。

    TOPに戻る

    主な機能

    補完機能

    コマンドプロンプトでTabキーを押すことで、コマンド名/ファイル名を補完できます。

    リダイレクトパイプ機能

    リダイレクトすることで標準入出力をコンソールからファイルなどへ変更できます。

    シェル変数/環境変数

    シェル固有変数「シェル変数」、グローバル変数「環境変数」を使用して、各種制御を行えます。

    制御構造

    Bashには「if/while/for/case」など基本的な制御構文が用意されています。

    配列

    配列も使用できます。C言語の配列に似ています。

    キーバインド

    キーバインドを使用して「過去に入力したコマンドの履歴表示」「インクリメンタルサーチ」などを行えます。

    展開

    コマンド文字列を受け取った後に、規則に従って展開を行ってから実行します。

    「ブレース展開」「チルダ展開」「ファイル名展開」「変数展開」「コマンド置換」などがあります。

    エイリアス

    コマンド(+オプション)に対する「別名」を設定できます。

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    「sh」「ksh」「csh」「tcsh」「zsh」など。

    TOPに戻る

    ライセンス情報

    Bashのライセンスは「GNU General Public License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    ■概要

    Zsh(ズィーシェル)とはUNIXコマンドインタプリタ(シェル)であり、「対話型ログインシェル」および「シェルスクリプトコマンドプロセッサ」として使用できます。

    ■基本説明

    Zsh(Z shell)は「Bash」「ksh」「tcsh」などのシェル機能を取り込み、多数の改良が加えられている拡張Bourneシェルです。

    対話型UNIXログインシェルであり、強力なスクリプト言語としても利用できます。

    ■経緯

    Zshは、Paul Falstad氏が米国プリンストン大学在学中の1990年に最初のバージョンを開発しました。

    現在では、zsh-workersメーリングリストのメンバーによって管理されています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →ZSH(THE Z SHELL)

    ライセンス情報

    Zshのライセンスはこちらを参照ください。

    →GitHub →zsh-users/zsh →LICENCE

    動作環境

    Zshは「Linux」「Windows」などで動作します。

    →Chapter 1: Introducing zsh and how to install it [→1.4: On what machines will it run?]

    ダウンロード

    →Zsh →Download zsh source

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Bash」「ksh」など。

    「Zsh」の主な特徴

    ■他シェルとの特徴比較

    Zshの操作感はkshに似ています。

    オフィシャルサイトにて以下のように他シェルとの特徴比較について解説されています。
    ・shとkshとの違い
    ・cshとの類似点
    ・tcshとの類似点
    ・bashとの類似点 など

    →Zsh →Z-Shell Frequently-Asked Questions →Chapter 2: How does zsh differ from...?

    ■他シェルとの互換性

    Zshは、デフォルト動作モードではPOSIXや他シェルとの互換性はありませんが、shまたはkshとして呼び出されると、shまたはkshをエミュレートしようとします。

    →Zsh →The Z Shell Manual →4 Invocation →4.2 Compatibility

    ■機能拡張「Oh My Zsh」

    「Oh My Zsh」は、オープンソースコミュニティ主導のZsh管理用フレームワークです。

    多くのZsh用「拡張プラグイン」「ヘルパー」「テーマ」「自動更新ツール」などを利用できます。

    https://ohmyz.sh/

    「Zsh」の主な機能

    Zshには、豊富な機能が搭載されており、さまざまなカスタマイズが可能です。

    ■Zshラインエディタ

    Zshには、ラインエディタが用意されており、ユーザーはコマンドラインを編集できます。

    →Zsh →The Z Shell Manual →18 Zsh Line Editor

    ■コマンドライン編集機能

    ・コマンドライン補完機能---変数、オプション
    ・コマンドバッファスタック機能---シェル間でのコマンド履歴共有
    ・可変変数編集機能
    ・非バインドコマンド実行機能 など

    ■グロビング機能

    Zshは、強力なグロビング機能(ワイルドカードパターンによるファイルパス名表示機能)を有しています。
    ・再帰的グロビング機能---fi​​nd参照
    ・ファイル属性修飾子参照機能---ファイルサイズ、ファイルタイプ など

    ■その他

    ・複数リダイレクト処理機能
    ・パス展開機能
    ・配列操作機能
    ・スペル修正機能
    ・オートロード機能
    ・無名関数機能
    ・フック関数機能
    ・トラップ機能
    ・テーマ別プロンプト機能 など

     

    参考元サイト

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。