Shellとは?
Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。
Linux環境でコマンドプロンプト画面を開いているとき、常にShellは起動している状態です。
「Shell」とは、コマンドプロンプト画面から「カーネル」に対して命令をしたとき、カーネルが理解できる機械語に翻訳して伝達する役割を担っているインターフェイスのことです。
カーネルって?
カーネルとは、OSの核となる部分で、コンピュータを操作するうえでの最も基本的な処理、すなわち、CPUやメモリ、ディスクの制御などを行うプログラムを指しています。
例えば、Word(アプリケーション)で作成した文章をプリンター(ハードウェア)で印刷するとき、「カーネル」が間に入って「Word」を「印刷する」という要求を「プリンター」に伝えているということです。
つまり、コマンドプロント画面から「Shell」を通して、人間の言葉を機械語に翻訳してから、各「H/W(ハードウエア)」へ命令しているのです。
代表的なシェルの種類
UNIX系OSで使用されているシェルには、「bash」だけでなく、「ksh」「tcsh」等、複数の種類のシェルが存在し、Bシェル系とCシェル系の2種類に分類できます。
ここで重要なのは、「B系シェルとC系シェルがあるんだな」くらいに思っておいていただければ問題ありません。
手っ取り早くお金が稼げるShellはズバリB系シェルです。
B系シェル
- sh(Bourne Shell)
shは(Bourne Shell)と呼ばれ、AT&Tベル研究所によって開発されました。ちなみにBの意味は開発者(Steven Bourne氏)の名前からとっています。「Shell」と言えば、このBshを指していると思ってよいでしょう。現在では、このBshを元にして、様々な派生シェルが登場しています。
- bash(Bourne-Again Shell)
bashは(Born again shell)と呼ばれ、Bshを元に機能を拡張した派生シェルの1つです。RedHat系のLinuxの標準シェルとして組み込まれています。急速なLinux普及を背景に、現在ではこの「bash」が標準シェルと思っている方も多く、また、Bshとも互換性を持つため、事実上のBshの後継シェルとも言われています。
- ksh(Korn Shell)
kshは(khon shell)と呼ばれ、bashと同様に、AT&Tベル研究所によって開発されました。ちなみにKの意味は開発者(David Korn氏)の名前からとっています。このKshもbash同様に、Bshを元に機能を拡張した派生シェルの1つです。KshはIBM社制サーバーOS「AIX (ver.4以降)」の標準シェルとして世界的に普及しました。
C系シェル
- csh
cshは、カリフォルニア大学バークレー校の大学院生によって開発されました。Bshを元にスクリプト構文をC言語のプログラミング風にアレンジしたシェルがcshです。最大の特徴はBshにはない「配列」を使用可能としたシェルとなります。
- tcsh
tcshは、Cshを元に、ユーザーインターフェイス部分を中心に拡張した派生シェルの1つです。tcshは、「FreeBSD(ver4以降)」の標準シェルとして世界的に普及しました。
上記以外にもシェルの種類はありますが、とりあえず上記のシェル名を覚えておけば問題ありません。
シェルスクリプトの違いとは?
「シェルスクリプト」とは、カーネルに対して処理をさせたい命令をまとめた「プログラム」ファイルのことです。「Shell」はシェルスクリプトの上から順番に処理していきますので、サーバー管理のような単純な作業をまとめておくと自動化することができます。
また、シェルスクリプトはプログラムを上から順番に実行するだけではなく、「条件分岐」や「繰り返し処理」を行うことが出来ます。これらの制御構文をスクリプト言語と言います。
つまり、Shell上で実行できるスクリプト言語のことを「シェルスクリプト」というわけです。
Shellスクリプト基礎知識(全11記事+1)
├─シェルスクリプトの基本事項!
├─変数と特殊変数について!
├─演算子「算術演算子」「比較演算子」について!
├─条件分岐「if」「case」について!
├─ループ処理「for」「while」について!
├─文字列置換「bash」「sed」について!
├─複数行のテキスト出力!ヒアドキュメントについて!
├─書式?戻り値?シェルスクリプト内の関数について!
├─シェルの組み込みコマンドについて!
├─クォートとは?コマンド置換とは?実現方法と内容の違いについて!
└─リダイレクトとは?標準入力・出力、標準エラー出力等について!
(補足)シェルスクリプトの設計書とは?必要な項目や書き方等を解説!