Linux
Ubuntu
shell

Linux初心者がシェルについて語る

More than 1 year has passed since last update.

シェルについて学んだ事を書いてみた。

シェルとカーネル

LinuxOSは、内部の仕組みとして、大きく、カーネルとシェルと2つの部分に分ける事ができる。先ず、プロンプトから、dateコマンドをうってみると、当然、システム日付が返ってくる。

$ date
2017年 7月 19日 水曜日 14:47:41 JST

内部的にどのような仕組みになっているのだろうか。dateコマンドが直接カーネルにアクセスして結果を表示してくれるのではなく、シェルに対して命令を出している事になる。そして、シェルがカーネルにdateの処理を渡して、カーネルが処理した結果を、シェルに返して、シェルが画面に結果を表示してくれるという流れだ。つまるところ、シェルとは画面とカーネルのインタフェース的な役割をしているということになる。

シェルの種類

シェルにもいろいろと種類があるらしく、初心者は一般的にこれさえ知ってたらいいよといわれているのが「bash」。なぜ、これがいいかといえば、世間で一番利用者が多く、書籍も多く、情報も溢れている。そしてなにより、一番使いやすいということだ。歴史の話になるが「bash」のひと世代前に「sh」というシェルがあり、それが拡張されて生まれたのが「bash」。「sh」は「Bシェル」ともいう。

「sh」は古いといいながらも、今でも全然現役でバンバン動いているようだ。他にも「csh(Cシェル)」、「tcsh」などの種類があるようだが、どうも、これらはシェルスクリプトを書くには使えないらしい。なので、初心者はこの際無視だ。

シェルの変更

Linuxにログインした時、$のプロンプトが表示されるが、実はプロンプトが表示するまでの間に、バックでログインシェルなるシェルが流れている。ログイン時に流れるシェルなのでログインシェル。ログインシェルのデフォルトで使用されているのが「bash」。本当に「bash」かどうかコマンドで確認できる。このようになれば「bash」。

$ echo $SHELL
/bin/bash

「sh」に変更してみよう。プロンプトが「~$」から、単に「$」に変更したら「sh」シェルに変更したということになる。

$ sh
$

プロンプトから「bash」のコマンドをうつと「bash」に戻る。プロンプトも「~$」になる。

$ bash
:~$

それだけの話。お疲れさん。