個人的勉強メモ置き場

プログラミングど素人のメモ置き場

シェルってなんぞ 【メモ】

概要

シェルはLinuxカーネルとユーザを繋ぐインターフェース。ユーザはシェルにコマンドを入力することで、入力されたコマンドを解釈してLinuxカーネルへと受け渡すことが出来る。

シェルとLinuxカーネルの分離

Linuxカーネルとそのインターフェイスであるシェルを分離することで、一つの役割に特化させている。これによってシェルが異常終了してもLinuxカーネルへの影響を抑えることが出来たり、コマンド入力のインターフェイスを変える時にシェルだけを変更することが出来る

コマンドの実行の流れ

ls a* を実行する

1. ユーザはコマンドの実行をシェルに入力(ユーザ)

ls a*

2. シェルはコマンドを解釈して展開(シェル)

/bin/ls abc.txt aaa.txt

3. Linuxカーネルがコマンドを実行(カーネル)

/bin/ls abc.txt aaa.txt

4. 画面に結果を表示(シェル)

$ ls a*
aaa.txt abc.txt

このようにしてシェルはユーザとLinuxカーネルとの仲介をしている

シェルの種類

bash
shを拡張したシェル
Linuxなどでデフォルトのログインシェルとして使われている

sh
古くからある最も基本的なシェル。シェルスクリプトの多くでよく見かける

zsh
比較的新しいシェル。機能面が多彩

他にもkshcshなどたくさんのシェルがある

Shebang(シバン・シェバン)

スクリプトの先頭にパスを指定することで使用するインタプリタの明示的な指定が可能になる

#!/bin/bash

この場合はbashで実行してねという意味になる