LoginSignup
1
4

More than 5 years have passed since last update.

はじめてのシェル

Last updated at Posted at 2017-07-19

初学者向けにシェルについて書いてみた。

シェルとカーネル

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
:~$
1
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4