シェルが何なのか、初学のころよく分かんなかったので、メモ
シェルとは
シェルとはLinuxカーネルへ命令を伝えるプログラムのこと
コンソールに「ls」と打つと、ファイル一覧が表示できたり、
「cd」と打つとディレクトリ移動ができたりするのは、
シェルがカーネルに上記の命令を伝えてくれているから

カーネルとは
カーネルとはOSの中核となるプログラムのこと。
OSは多くのプログラムから成り立ち、コンピュータ自体を制御している。
その中でも特に重要なポジションなのが、「カーネル」と言うプログラム。

普段はあまり意識することはないし、する必要もないが、
カーネルがあるおかげで、PC上のプログラムを安全に扱うことができる。
しかしこのカーネル、複雑な機械の会話しかできないので、
普通だと、人間が取り扱うことはできない

シェルの役割
そこで、人間とカーネルの間に立って、人間からの命令を解釈し、カーネルへと伝達してくれるのが、「シェル」と言うプログラム。

「ls」や「cd」「cp」など、人間が分かり安い形でコンピュータに命令を出すことが可能だ
上記「ls」などは、単体では「コマンド」と呼び、
集めて一度にコマンドを実行できるようにしたものを「シェルスクリプト」と呼ぶ
シェルの種類
シェルと言っても種類がいくつかある。
有名なのは「sh」「bash」「csh」「zsh」などのシェルだ。
多くのlinux環境では「bash」を使っているのではないだろうか

ちなみ「chsh」と言うコマンドで、使用中のシェルを切り替えることができる。
余談:コンソール = シェルではない
Macならターミナル、WindowsならTeraTermなどのアプリから、
linuxサーバへsshログインし、コマンドを打つことが多いかと思う。
この時コマンドを打ち込んでいる黒い画面(コンソールと呼んだりする)は、
シェルではないので、注意。
と言うのも筆者が初学者のころ、シェルの立ち位置?がそもそも分かんなかった記憶があるので、、(こんなことで悩むのは筆者だけか、)。
とにかく「黒い画面=コマンドでPCを操作できる=シェル」と言うちょっと誤った解釈をずっと持ったままいたので、余談程度に書いておく
シェルまとめ
Linuxカーネルへ命令を伝えるプログラムのこと
→人間とカーネルの間に立って、人間からの命令を解釈し、カーネルへと伝達してくれる
カーネルとはOSの中核となるプログラムのこと
→人間からの要求は、シェルを介して受け入れる