Shell(シェル)って何?bashやzshって、具体的になんだろう。
先日、macに買い換え、ターミナル(黒っぽい画面)を色々と調べると「zsh」や「bash」という言葉が出てきました。
本日は、こちらの違いについて、共有していきます。
⓪ GUIとCLIについて
少し、遠回りかもですが、GUIとCLIの違いから見てみましょう。
1.GUI Graphical User Interface
2.CLI Command Line Interface
なんだか難しそうですが、大丈夫です。
パソコンを操作する際には大きく①GUIと②CLIの2通りがあります。
1のGUIはエンジニアではない一般的なユーザーが使うような下のような表示画面です。どこに何があるかわかりやすいですね。
2のCLIはエンジニアさんなどがよく使っている、下のような画面です。(ターミナル、コマンドプロンプトなどです)
では、なぜ、エンジニアさんはこのような分かりにくそうなCLIを使うのでしょうか。
それは
① 時短で処理ができるから
②色々なことができるから
などがあります。
特に②は魅力的で、CLIを使うことでサーバーを起動したり、便利なツールをインストールしたりとさまざまな操作を行うことができるようになります。
① Terminal(ターミナル)とShell(シェル)
次にCLIを少し見てみましょう。CLI=ターミナル(コマンドプロンプト)というイメージがある方も多いと思います。(私もでした。)
実はCLIには構成要素として①Terminal(ターミナル)と②Shell(シェル)が存在します。
そして、ハードウェアとしての役割をTerminalが行い、ソフトウェアとしての役割をShellが行なっています。
つまり、ShellこそがOSと直接のやりとりを行なうものになります。
②bashとzsh
そして、Shellはソフトウェアなので、色々なソフトウェアが存在します。その中で有名なShellがbashやzshなのです。
なので、あまり構える必要はなく、まずはbashもzshもCLIでOSとやりとりをする際のソフトのひとつなんだなーという理解で良いのではと思います。
③bashとzshの具体的な違いは?
ただ、具体的にどんな違いがあるのかも気になるところです。この記事では○○についてはどちらが優れていて、、などまでは踏み込まずこんな観点で違いがあるという部分まで紹介していきたいと思います。
参考として、こちらの記事を確認してみました。英語の記事ではありますが、とても分かりやすかったです。
①cd automation(cd自動化)
⇨再帰的なPathの拡張機能の有無
②spelling collection(スペル訂正機能)
⇨スペルチェッカーの性能
③better theme(より良いtheme)
⇨どんなthemeを使えるか
・・・
もしご興味がありましたら、読み込んでみてください。(どこかの機会で紹介したいと思います。)
今回は以上となります。
最後までお読みいただき、ありがとうございました。