今回はbashとzshについて学習したため、「シェルの役割」と「どれを使えばいいか」を簡単にまとめました。
bashとzshとは、シェルの一種であり、テキストベースのユーザーインターフェースを提供し、ユーザーがコンピューターと対話できるようにするプログラムです。
シェルとは?
「シェル」という用語は、「コンピューターに直接命令を打ち込むことで対話する」という行為そのものを指すものではなく、そのような対話を可能にするプログラムや環境のことを指します。
つまり、シェルはユーザーがコンピューターのオペレーティングシステムとテキストベースで対話するためのインターフェースまたはツールです。
(chatGPTから一部抜粋)
具体的にはシェルでコマンドを解析し、カーネルがそれを読み取り処理を実行し、最終的にその結果をシェルを経由してユーザーへ知らせるというフローになります。
カーネル:ざっくりいうとソフトウェアとハードウェアの仲介の役割を持っているというイメージ
シェルの種類は?
「シェル」の種類は下記の内容がよく聞かれるものです。
(これ以外にも種類は存在します。)
・sh
・bash
・csh
・tcsh
・ksh
・zsh
現在(2024年3月現在)ではzshが主流で「sh と bash(以前は標準で使用されたシェル) の良いとこ取り + 独自機能」の高機能シェルとなっています。※bash で出来ることは zsh にも出来る。
zsh(ゼットシェル)とは?
ZshはBashよりも高度な機能を持つシェルでBashの上位互換という位置付けです。Zshはより進んだタブ補完機能や、コマンドのスペルチェック、テーマやプラグインによるカスタマイズが可能です。
まとめ
シェルはコンピューターとのテキストベースでの対話を可能にするツールであり、bashとzshはこの分野で特に人気のある選択肢です。bashは堅牢で信頼性の高いシェルとして長年にわたり使われてきましたが、zshはbashの機能に加え、進化した補完機能やカスタマイズオプションを提供し、最近のMacOSではデフォルトのシェルとして採用されています。
しかし、どのシェルを選ぶかは、最終的にユーザーのニーズ、好み、そして特定の作業やプロジェクトの要件によって異なります。bashのシンプルさと広範なサポートが重要である場合もあれば、zshの高度な機能やカスタマイズ性を活用したい場合もあると思います。
参考文献
Linuxの「Shell」とは?Shellの種類やできることなどをわかりやすく解説
【Shell】シェルの種類と設定ファイルの読み込み順(ざっくりまとめ)