6章親と子、および環境

シェルの目的——コマンドを実行すること——はLinuxにとって非常に基本的なことなので、シェルは何か特別な方法でLinuxに組み込まれていると考える人もいるかもしれません。しかし、そうではありません。シェルは、lscatのような普通のプログラムにすぎません。シェルは、次に示すステップを、何度も何度も何度も...繰り返すようにプログラムされています。

  1. プロンプトを表示する
  2. stdinからコマンドを読み込む
  3. コマンドを評価し、実行する

シェルは普通のプログラムである、という事実を隠すという点で、Linuxは素晴らしい仕事をしています。ユーザーがログインすると、Linuxはユーザーの代わりに、ログインシェル(login shell)と呼ばれるシェルのインスタンスを自動的に実行します。これはとてもシームレスに起動されるので、実際には、ユーザーがLinuxと対話するために起動されるプログラムにすぎないのに、あたかもLinuxの一部であるかのように見えるのです。

[注記]

ログインシェルはどこにある?

グラフィカルでないターミナルで(たとえば、SSHクライアントプログラムを使って)ログインする場合、ログインシェルは、ユーザーが対話する最初のシェルです。ログインシェルは最初のプロンプトを表示し、ユーザーのコマンドを待機します。

あるいは、グラフィカルなディスプレイを持つコンピューターで作業をする場合、ログインシェルは舞台裏で動作しており、GNOME、Unity、Cinnamon、KDE ...

Get Efficient Linuxコマンドライン ―開発と自分に磨きをかけるLinuxのテクノロジー now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.