違いを解説君

あるゆる物事の"違い"をわかりやすく解説する情報マガジン

スクリプト

ITの違い

zshとbashの違いをわかりやすく解説!使い分け方をチェック!

Linuxを使う場合、必ずお世話になるのがコマンドインタプリタ(シェル)です。

シェルには、『zsh』や『bash』など、様々なものがあります。

あなたは、『zsh』と『bash』の違いについて知っていますか?

 

はなこ
会社でLinuxを使っていると、『zsh』と『bash』の両方が使われていてややこしいのよね。
どちらもシェルだね。

『zsh』と『bash』って、そんなに違うものなの。

たろう
はなこ
そう言えば、普通に使う分には違いがよくわからないわね。

違いについて、ちょっと調べてみたいわね。

 

今回は、『zsh』と『bash』の違いについて解説し、使い分け方をチェックします。

スポンサーリンク

『zsh』と『bash』の違い

『zsh』と『bash』は、どちらもコマンドインタプリタ(シェル)の仲間です。

ただ、それぞれの生い立ちに違いがあります。

まずは、『bash』から見てみましょう。

『bash』とは?

『GNUプロジェクト』における『Bourne Shell』の代替として、ブライアン・フォックスによって作成されたシェル

のことです。

この『GNUプロジェクト』とは、

ユーザーが自由に共有できるソフトウェアを開発して提供することを目的としたプロジェクト

のことです。

『Bourne Shell』は、当時一般的に使われていたUnix用のシェルでした。

これを『GNUプロジェクト』の理念に沿った形で作成したシェルが『bash』になります。

『bash』の最初のバージョンは、1989年にリリースされました。

 

『zsh』とは?

『Bourne Shell』の拡張版として、ポール・ファルスタッドによって作成されたシェル

のことです。

『zsh』も、『Bourne Shell』を参考にして作られたシェルです。

しかし、『ksh』や『tcsh』など、他のシェルが持つ有用な機能もいろいろと取り込まれ、かなり高機能なシェルとなっています。

最初のバージョンは1990年にリリースされたため、『bash』よりわずか1年の差しかありませんね。

『zsh』も、『bash』と同様に自由に利用することができます。

 

『zsh』と『bash』の違い

『zsh』も『bash』も、『Bourne Shell』を参考に作られていることから、いろいろと似た部分があります。

単なるコマンド入力の用途に使うだけであれば、その違いに気づくことは、ほとんどありません。

しかし、両者には細かい部分で違いがあります。

主な違いについて見てみましょう。

『zsh』と『bash』の違い

  • 起動時の設定ファイルが異なる。
  • 配列の添字の開始番号が、『zsh』は1から始まり、『bash』は0から始まる。
  • 『zsh』のほうが、『bash』よりも機能や設定内容が多い。

起動時の設定ファイルは、『bash』の場合".bashrc"です。

それに対して、

『zsh』では".zshenv"と".zshrc"の2種類が存在します。

".zshenv"は、シェルスクリプト(シェルを利用したプログラムのようなもの)を実行したときも読み込まれますが、".zshrc"は対話モードでの起動時しか読み込まれません。

この2つのファイルの使い分け方としては、

  • ".zshenv"で環境変数を定義
  • ".zshrc"でエイリアスやプロンプト、キーバインドなど、その他の設定を行う

という形が一般的です。

 

『zsh』と『bash』の違いで最もやっかいなのが、

『zsh』の場合、配列の添字が1から始まるという点です。

特に、プログラム作成に慣れている人にとっては、配列の添字はゼロはじまり、というのが基本ではないでしょうか。

ですから、『zsh』で配列を利用する場合は、配列に注意が必要ですね。

 

機能や設定内容は、『zsh』のほうが『bash』より豊富にあります。

例えば、『zsh』ではエイリアス(別名の定義)で、

パイプ

⇒コマンドの出力を次のコマンドに渡すこと。

リダイレクション

⇒コマンドの出力をファイルに書き込んだり、ファイルからコマンドにデータを入力すること。

を使うことができます。

また、プロンプトの設定でも、『zsh』では日付や時刻まで出力することができます。

 

はなこ
『zsh』も『bash』も、『Bourne Shell』という同じシェルから派生したものなのね。
でも、『zsh』はかなり高機能なシェルみたいだね。
たろう

 

『zsh』と『bash』の使い分け方

ラップトップ

ラップトップ

『zsh』と『bash』はどのように使い分ければいいでしょうか。

Linuxのほとんどのディストリビューションに、デフォルトで利用されるシェルは『bash』の方です。

また、最初からある程度の設定がされていることから、たいていの場合、デフォルトのままで使うことが可能になっています。

デフォルトのままで特に不自由なくシェルが利用できるならば、『bash』で十分でしょう。

 

しかし、少し凝った設定などをしたくなった場合、『bash』では機能が足りないこともあります。

例えば、プロンプトを独自の凝った形にしたい場合、『zsh』を利用すると良いでしょう。

 

シェルには、『ファイル名補完』という機能が備わっています。

例えば、

ファイル名の頭文字を何個か入力した後に"*"を付けると、頭文字が一致したファイル名の一覧に変換される

などのいろいろな補完ができます。

『zsh』は、この機能がかなり強力です。

ファイル名だけでなく、ファイル作成日時やファイルサイズによって変換することまで可能です。

以上のような、豊富な機能を利用したい場合は、『zsh』がおすすめです。

スポンサーリンク

まとめ

今回の違いのポイントについて、まとめていきましょう。

ポイント

  • 『bash』とは、『GNUプロジェクト』における『Bourne Shell』の代替として、ブライアン・フォックスによって作成されたシェルのことである。
  • 『zsh』とは、『Bourne Shell』の拡張版として、ポール・ファルスタッドによって作成されたシェルのことである。
  • 『zsh』も『bash』も、『Bourne Shell』を参考に作られたところが共通している。
  • 『zsh』と『bash』では、起動時の設定ファイルが異なる。
  • 配列の添字の開始番号が、『zsh』は1から始まり、『bash』は0から始まる。
  • 『zsh』の方が、『bash』よりも機能や設定内容が多い。
  • デフォルトのままで十分利用できるなら『bash』を使い続ければよいが、さらに豊富な機能をいろいろと利用したいのであれば『zsh』のほうがよい。

『zsh』も『bash』も、自由に利用することができるシェルとしてどのディストリビューションにも入っています。

あなたも、もし興味があれば一度使ってみることをおすすめします。

関連記事

-ITの違い

Copyright© 違いを解説君 , 2020 All Rights Reserved.