Bash VS Zsh:違いと比較

Bash Vs Zsh Differences



バッシュ shellはLinuxのデフォルトのシェルであり、BourneShellの代わりにリリースされます。多くの自動化されたタスクとプログラミングソリューションは、 バッシュ 簡単に。 Linuxには、次のような同じタイプの作業を行うために利用できる他の多くのシェルがあります。 バッシュZシェル また Zsh 後に発明されたものの1つです バッシュ 。 Bashのような多くの機能がありますが、 Zsh スペル修正、CDの自動化、テーマの改善、プラグインのサポートなど、Bashよりも改善されています。Linuxディストリビューションではデフォルトでインストールされるため、LinuxユーザーはBashシェルをインストールする必要はありません。 ZshまたはZシェルは、デフォルトではシステムにインストールされていません。ユーザーが使用するには、このシェルをインストールする必要があります。いくつかの機能は バッシュZsh しかし、これらのシェルの間にはいくつかの大きな違いがあり、適切な説明とともにこの記事で説明されています。

‘を使用する CD ' 指図

「cd」コマンドは、現在のディレクトリを変更するためにBashシェルとZshシェルの両方で使用されます。ディレクトリを再帰的に検索してファイルやフォルダを見つける機能は、 再帰的なパス拡張 これはzshでのみサポートされています。 bashおよびzshシェルでの「cd」コマンドの使用をここに示します。







バッシュ

ディレクトリを変更するには、bashにディレクトリのフルパスを入力する必要があり、再帰的なパス拡張はbashではサポートされていません。



$CD コード/ python



Zsh

このシェルでは、ディレクトリとファイルを簡単に検索できます。入力した場合 cd +スペース+ c +タブ zshシェルでは、次で始まるファイルまたはフォルダー名を検索します。 'NS ’と表示され、最初に見つかったファイルまたはフォルダの名前が表示されます。





CDNS

たとえば、 コード フォルダが見つかり、表示されます。もう一度入力した場合 '/NS' 次に、ファイルが表示され、フォルダ名は「」で始まります NS '。

CDNS



スペル修正

スペルチェッカーは、どのシェルにとっても非常に便利な機能です。ユーザーはこの機能により、入力ミスを簡単に修正できます。この機能は両方でサポートされています バッシュZsh。 しかし、スペル修正はでより効率的に行うことができます Zsh シェル。この機能の使用法は、以下の両方のシェルで示されています。

バッシュ

ディレクトリ ‘に移動するとします。 音楽 」ですが、「 Mugic ’ 誤って、bashシェルはデフォルトでスペルミスを検出せず、エラーメッセージを表示します。 そのようなファイル、又はディレクトリはありません

$CDMugic

このタイプの問題を修正するには、スペルチェッカーを有効にする必要があります。開ける 〜/ .bashrc スペルチェッカーを有効にするための行を追加するための任意のエディター内のファイル。ここでは、 ナノ エディタはファイルを編集するために使用されます。

$ナノ/.bashrc

ファイルの最後に次の行を追加し、ファイルを保存して閉じます。

お店 -NScdspell

ここで、次のコマンドを実行して、変更を永続的に確認します。

$ソース/.bashrc

上記の「 CD' ターミナルからスペルミスのあるコマンドを実行すると、フォルダ名が自動的に修正されます。

$CDMugic

Zsh

スペルチェッカーは、zshシェルでもデフォルトで有効になっていません。したがって、次のコマンドのようにスペルミスで「echo」コマンドを実行すると、エラーメッセージが表示されます。

ehco'こんにちは世界'

開ける 〜/ .zshrc 任意のエディターでファイルを作成し、ファイルの最後に次の行を追加します。最初の行で、Zshのスペルチェッカーが有効になります。スペルチェッカーのデフォルトのオプション値は、 [ニャエ] それは いいえ、はい、中止して編集します 。 2行目は、オプションをユーザーが理解しやすくするためにデフォルト値を変更します。ここ、 ナノ エディタはファイルの編集に使用されます。

ナノ/.zshrc
setoptcorrect
書き出す SPROMPT='%Rを%rに修正しますか? [はい、いいえ、中止、編集] '

ファイルを保存して終了し、次のコマンドを実行して変更を更新します。

ソース/.zshrc

前のコマンドを再度実行して、出力を確認します。これで、ユーザーは出力を修正するためのオプションを取得できます。 yと入力すると、スペルが自動的に修正されます。

ehco'こんにちは世界'

色を使用して出力をより効果的にしたい場合は、zshシェルから次のコマンドを実行して色を有効にします。

U色を自動ロード&&

その後、次の行をに追加します 〜/ .zshrc 以前のようにファイル。

書き出す SPROMPT='正しい$ fg[赤]%R$ reset_color$ fg[緑]%r$ reset_color
[はい、いいえ、中止、編集] '

ここで、スペルミスのあるコマンドを実行し、出力を確認します。ここでは、エラーワードは赤色で表示され、正しいワードは緑色で表示されます。

ehco'こんにちは世界'

テーマの使用

シェルプロンプトの外観は、さまざまなテーマとプラグインを使用して変更できます。 bashシェルとzshシェルの両方に、シェルの外観を変更するための多くのタイプのテーマがあります。この記事の次のパートでは、bashおよびzshシェルでテーマを使用する方法を示します。

バッシュ

bashテーマをインストールするには、gitをインストールする必要があります。次のコマンドを実行して、gitパッケージをインストールします。

$sudo apt-get install 行く

インストール後 行く 、次のコマンドを実行して、のクローンを作成します。 Bash-it レンプレート。

$git clone - 深さ=1https://github.com/Bash-it/bash-it.git〜/.bash_it

次のコマンドを実行してインストールします Bash-it クローンを作成した後のテンプレート。押す ' ’のバックアップを保持するように求められる場合 〜/ .bash_profile また 〜/ .bashrcと追加 bash-it ファイルの最後にあるテンプレート。

インストールプロセスが完了すると、次の出力が表示されます。

今、あなたが開くと 〜/ .bashrc 任意のエディターを使用してファイルを作成すると、ファイルには次の内容が含まれます。 「bobby」は、bash-itテンプレートのデフォルトテーマとして設定されています。

次のコマンドを実行して、シェルの更新を確認します。

$ソース/.bashrc

テンプレートを正しくインストールすると、ターミナルに次のプロンプトが表示されます。ここで、ターミナルを閉じます。ターミナルを開くたびに、同じbashプロンプトが表示されます。

多くのテーマが利用可能です bash-it これらのテンプレートは、さまざまな方法でbashプロンプトを表示します。そのうちの1つは「 妬み' テーマ。このテーマを設定する場合は、任意のエディターを使用して〜/ .bashrcファイルを開き、「 BASH_IT_THEME ’値から‘ 妬み '。

繰り返しますが、「 ソース ’コマンドを使用して、更新を永続的に確認します。 「envy」テーマを設定すると、次の出力が表示されます。

Zsh

bashと同様に、zshシェルには多くのテーマがあります。 zshテーマの1つは oh-my-zsh 。次のコマンドを実行して、このテーマをzshシェルにインストールします。

NS -NS '$(curl -fsSL
https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh) '

テーマをインストールしたら、「 と' デフォルトのシェルをzshにします。

インストールプロセスを完了するために、rootパスワードを要求されます。インストールプロセスが完了すると、次の出力が表示されます。

ここで、〜/ .zshrcファイルを開くと、次のエントリが表示されます。 oh-my-zsh レンプレート。 「Robbyrussell」 テンプレートのデフォルトテーマとして設定されます。

変更を永続的に保持するには、「source」コマンドを実行する必要があります。

ソース/.zshrc

テーマを「 矢印 ’次に、任意のエディタで〜/ .zshrcファイルを開き、‘の値を変更します。 ZSH_THEME ' に 「矢印 '。

zshシェルの変更を永続的に更新するには、「source」コマンドを再度実行する必要があります。このテーマを設定すると、次の矢印記号が表示されます。

ソース/.zshrc

ターミナルを閉じてzshシェルを再度開くと、次の出力が表示されます。

ワイルドカード拡張の使用

ワイルドカード拡張は、設定なしでさまざまな方法でbashで使用できます。ただし、ワイルドカード拡張はデフォルトでzshシェルで有効になっていません。この記事のこの部分では、bashおよびzshでワイルドカード拡張を使用する方法を示します。

バッシュ

「echo」コマンドを使用して、現在の場所の拡張子が「log」のすべてのファイルを検索する必要があるとします。ここで、値、 ‘ *。ログ' 変数に割り当てられ、 ファイル すべてのログファイルのリストを表示するために「echo」コマンドで使用されます。

$ls
$ファイル='*。ログ'
$捨てた $ files

Zsh

上記のコマンドをzshシェルで実行すると、ワイルドカード展開がzshシェルでデフォルトで有効になっていないため、ログファイルリストの代わりに$ filesの値が出力されます。

ls
ファイル='*。ログ'
捨てた $ files

次のコマンドを実行して、zshのワイルドカード拡張を有効にします。

設定 -またGLOB_SUBST

ここで、前のコマンドを実行すると、ログファイルのリストが表示されます。

結論

BashとZshは、Linuxユーザーにとって非常に便利なシェルです。どちらのシェルにもいくつかの便利な機能があります。ユーザーは、必要なタスクに基づいてシェルを選択できます。この記事では、適切な例を使用して、これら2つのシェルのいくつかの重要な違いについて説明します。この記事を読んだ後、読者のためにこれら2つのシェルの違いが明らかになることを願っています