【基礎から学ぶ情報技術】 UNIX系OSで標準的に用いられるシェルの種類 ~sh・bash・ksh・csh・tcsh・zshの違い~

IT
スポンサーリンク
スポンサーリンク
スポンサーリンク

私の専攻は電気系なのですが、電気電子系の仕事とIT系の知識は切っても切れない存在となります。
回路設計をしても、それを動かすCPUはソフトウェアが無いと動かないですからね。
本記事は、IT系の分野で疑問を持ったり知っておいた方が良いと個人的に思った内容についてまとめたものとなります。

今回は、「UNIX系OSで標準的に用いられるシェルの種類」についての説明です。

1.初めに

コンピュータには、OSという操作を行うための根幹を担うシステムがあります。
このシステムに色んなソフトウェアを紐付けることで、コンピュータが動作するのです。

Windows・Mac・Linux・UNIX・Android・iOSなどがOSに当たります。
パソコンやスマートフォンを使用しているとよく耳にすると思いますが、これらはパソコンやスマートフォンを動かすためのメインのシステムを指しているんですね。

OSの更に中核を担うソフトウェアのことをカーネルと呼び、そのカーネルとの橋渡しをするソフトウェアのことをシェルと呼びます。
このシェルなのですが、OSの一つであるUNIXには結構な種類があります

今回は、UNIX系OSで用いられるシェルの種類とその補足説明をまとめて記載していこうと思います。

2.UNIX系OSで標準的に用いられるシェルの種類と補足説明

UNIX系OSで標準的に用いられるシェルとしては、以下のようなものがあります。

  • sh
  • bash
  • ksh
  • csh
  • tcsh
  • zsh

それぞれ補足説明していきますね。

sh

Stephen Bourne氏が開発したからBourneシェルとも呼ばれる。
shは古いだけあって、必要最低限の機能しか搭載されていなかったので、shをベースとしてbash・ksh・csh・tcsh・zshのような様々なシェルが開発されています

bash

[Bourne Again Shell]の略称で、ビーエーシェルと呼びます。
バッシュではないです。
名称通り、Bourneシェル(sh)が[again(再び・改める)]したシェル、つまりshの後継として開発されたシェルです
shの上位互換がbashとでも思っておきましょう。

ちなみに、[born again]で[生まれ変わる]の意なので、そちらの意味で捉えた方が覚えやすいかもしれません。
『それだとBorn Again Shellでは?』と思うかもしれませんが、綴りは[Bourne Again Shell]で間違っていません。
shの開発者がStephen Bourne氏なのでBourneシェルと呼ばれていて、そこに[born again]をかけたのだろうと言われています。
洒落ていますね。

また、後述のkshについてもshの上位互換です。
bashとkshの違いは、ただ単に開発者が異なるというだけです。

ksh

David Korn氏が開発したから頭文字を取ってkshと呼ばれています。

前述のbash同様、shの後継・上位互換です
kshとbashの違いは、ただ単に開発者が異なるというだけです。

csh

C言語のような言語・文法を使用しているのでcshと呼ばれています。
bash・ksh同様のshをベースに開発されたシェルです

shをより使いやすくしたものがcshなのですが、そこから更に派生してtcshというシェルも開発されています。

tcsh

cshから派生して開発されたシェル
tcshの”t”はTENEXもしくはTOPS-20Cに由来すると言われていますが、実態は不明です。
調べても碌に出てこなかったよ♨

zsh

shの後継として開発されたbash・ksh・cshなどの有力なシェルの良いとこ取りをして開発されたシェル
”z”の由来は謎ですが、バージョンが上がると数字やアルファベットが進んでいくことが多いので、最後のアルファベットであるZを使うことで、『これ以上は無いものを作れた』と主張したいのかもしれませんね。
まあ、最悪zzshとか名称の付けようはあるのでなんとも言えないですけど。

3.まとめ

UNIX系OSに用いられる代表的なシェルについて記述したので、最後に簡単にまとめますね。

まず、shという必要最低限の機能を搭載した旧いシェルがありました。
次に、このシェルをベースとしてbash・ksh・csh(tcsh)が開発されました。
そして、bash・ksh・cshから良いとこ取りをしたzchが開発されました。

流れとしてはこんな感じです。

図1

以上、「UNIX系OSで標準的に用いられるシェルの種類」についての説明でした。