blog

作成日 : 2024/06/26
更新日 : 2024/06/26

Shellの種類② ~OSとShell~

前回の記事はこちら

こんにちは!

2024年4月に業界未経験でUlvaniacに転職したPinoです。

前職はまちづくり系のNPO職員で、縁があって全くの異業種に転職!

業界未経験が故に日々の業務はわからないことだらけ…

ということで、このブログに私が日々調べ学んだことを書き溜めていこうと思います。

今回は「Shellの種類」第2弾としてOSとShellについて書いていきます。

OSの種類

まずはOSについて。

サーバーOS(オペレーティングシステム)には主にWindows系とUNIX系(Linux含)の2つの種類があります。

Unix系OSは、1970年代にAT&Tのベル研究所で開発されたUnixを起源とし、その設計思想や機能を受け継ぐシステム群を指します。このカテゴリーには、Linux、macOS、BSDなどが含まれます。

一方、Windows系OSは、マイクロソフト社が開発・販売するWindowsオペレーティングシステムを指します。

このWindows系OSで使用されるのがコマンドプロンプトやPowerShellで、UNIX系OSで使用されるのがzshやbashです。

しかし、近年ではWindows系OSでもWSL(Windows Subsystem for Linux)を使用してbash等のShellが利用可能となり、UNIX系OSでもPowerShell Coreを使用してPowerShellが利用可能となっています。

「ふむふむ、それぞれのOSに対応しているシェルなのね」と理解したいところですがPowerShellはただのシェルではないようです。

シェルの種類

次に一般的にシェルと呼ばれるものたちについて調べてみます。

代表的なシェルを下記にまとめました。

sh(Bourne shell)Bシェル系の元となるシェルです。UNIXシステムの初期から存在するシェルで、多くのシェルの基礎となっています。
bash(Bourne Again SHell)shを拡張したシェルで、GNUプロジェクトによって開発されました。shの互換性を保ちつつ、多くの機能が追加されています。
ksh(Korn shell)shをベースにDavid Kornによって開発されたシェルです。bashと同様に、shの機能を拡張しヒストリー編集機能やライン編集などを追加しています。
zsh(Z shell)sh互換のシェルで、多くの拡張機能が追加されています。高いカスタマイズ性が特徴です。
csh(C shell)C言語の構文に似たシンタックスを持つシェルです。Bill Joyによって開発されました。
tcshcshの拡張版で、ヒストリー編集機能やライン編集などを追加して高機能化しています。
fish(Friendly Interactive Shell)ユーザーフレンドリーなインターフェースと強力な自動補完機能を持つ、直感的なインタラクティブシェルです。

上記はUNIX系OSで使用されるシェルです。

一方、Windows系OSではシェルとしてコマンドプロンプトまたはPowerShellが使用されます。

ただし前述の通り、PowerShellはただのシェルではなく、マイクロソフトが開発した「スクリプト言語とシェル機能を持つフレームワーク」なのだそうです。

PowerShellはコマンドプロンプトの機能を拡張し、コマンドプロンプトよりも直感的に利用できるように開発されたものです。また、PowerShellはオブジェクト指向であり、コマンドの出力をオブジェクトとして扱い、より高度なデータ処理が可能となっています。

PowerShellを使いこなせるようになると以下のようなこともできるそうです。

  1. PowerPointのスライドをすべて画像化
  2. 大量のアドレス宛にメールを自動送信
  3. データベースの中から自動的に数値を抽出する
  4. 複数のpdfファイルを結合する
  5. スクショした画像をExcelに自動貼り付け

ExcelやPowerPointと連携して自動化タスクを行ってくれるのは有難いですね。

PowerShell、ちょっと勉強してみようかな…

ということで、今回のブログ「Shellの種類」はここまでになります。

会社から貸与されたPCでプログラムでも書いて遊ぼうと思ったらPowerShellと初対面し「おまえは誰だ!」というところから調べてみることになったわけですが、正体を知ったら(もう少し仲良くなってみようかな…)と思えるようになりました。

ではまた次回のブログでお会いしましょう。