UNIXとシェルについて

UNIXとシェルの関係

  • UNIXというシステムはコマンドをユーザーが入力し、その結果を得るということの繰り返しで操作していくもの
  • プログラムするときには「エディタ」というコマンドを使ってファイルを作成し、「コンパイラ」というコマンドでファイルをコンパイルして実行形式のモジュールを作る。そこでできたモジュールが新しいコマンドとなる
  • コマンドの1つにシェルがある
  • シェルはUNIXと話をする唯一の手段としてユーザーに与えられた道具(後述のコマンドインタプリタ機能)
    • UNIXを操作 = シェルを操作 = シェルを仲立ちにしてUNIXに命令

シェルの2つの側面

コマンドインタプリタ としてのシェル

  • 端末画面からコマンド入力 → 結果をもらう → また別のコマンド入力 → …という操作
  • インタプリタとして対話的にシェルが動作
  • ユーザーとカーネルを仲立ちする

f:id:yonotown:20140719165948j:plain

図の説明

  1. 例えば、ユーザーがlsコマンドを入力したとする
  2. この要求はシェルによって解釈され、LInuxシステムの中核機能であるカーネルに伝えられる
  3. カーネルはユーザーの入力されたコマンドを実行し、実行し終えるとそのことをシェルに伝える
  4. シェルは再びプロンプトを表示し、新たなコマンドを受け入れられる状態になったことを示す

ログインシェル

  • UNIXにログインした時は、ログインシェルというシェルがUNIXとユーザーを仲立ちしている
  • シェルは使いやすさや機能を拡張しいくつも登場
  • ログインシェルにどのシェルを選択するかは重要

スクリプト言語 としてのシェル

  • シェルにはバッチ処理を行わせるプログラミングの要素もあり
  • シェルプログラミングでは、豊富なUNIXコマンドを自由に組み合わせて、複雑な処理を簡単に実現できる

参考:

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

Linuxの教科書 改訂版 (マイコミムック) (MYCOMムック)

Linuxの教科書 改訂版 (マイコミムック) (MYCOMムック)