Linux は初めてというユーザの場合 -- そうした方もおおぜいいらっしゃいますが -- 最初の作業を実行しようという時は少し戸惑うかもしれません。
リラックス、リラックス!他のオペレーティングシステムの経験があれば、Linux を覚えることは外国で運転を習うようなものです。たいがいの考え方は同じですが、具体的なところで少し異なる場合がある、という程度です。
この章では Linux のそのような「交通法規」をいくつか見ていこうと思います。
しかし、このはじめてのオペレーティングシステムには不可欠なコンポーネントが 1 つあります。それはシェルです。このマニュアルでも、「シェルプロンプト」、「bash」など何回となくシェル関連の用語を使ってきました。
ここでは、この不可欠なツールについてもう少し詳しく学んでいきましょう。しかし、まず背景となる情報を見ていきましょう…
その昔 (1960 年代のことですが)、AT&T 社の Dennis Ritchie 氏と Ken Thompson 氏が UNIX™ を設計していた時、彼らはこの新しいシステムである UNIX と人間が対話できる方法を考案したいと思っていました。
当時のオペレーティングシステムには、コマンドインタープリタが付属しており、それによってユーザからのコマンドを受け付け、マシンが使用できる形に解釈していました。
しかし、Ritchie 氏と Thompson 氏は、当時のコマンドインタープリタよりも優れた機能を提供できるものを求めていました。
ここで、Bourne シェル (単純に sh と呼び習わされています) の登場となります。これは S.R. Bourne 氏によって開発され、上記の UNIX 開発者たちの目的を満たしていました。
Bourne シェルの開発以降、C シェル (csh)、Korn シェル (ksh) など他のシェルも開発されました。
Free Software Foundation 社が使用料のいらないシェルを模索していた時、開発者たちは Bourne シェルの背後にある言語および当時利用できた他のシェルの便利な機能のいくつかを研究し始めました。
その結果誕生したのが、Bourne Again シェル -- 別名 bash です。
これまでに、シェルプロンプトに対して間違ったコマンドを入力した時に bash という語を (bash: コマンド名: command not found といった表示で) 見たことがおありでしょう。
「Chapter 15」で、リダイレクトとパイプの説明をした時に、bash の強力な機能も併せて紹介しました。
もっと bash を知るには: bash のより詳しい説明を知りたい場合は、bash man ページを読んでください。man ページを参照するには、シェルプロンプトで [man bash] と入力します (または、[man bash | col -b > bash.txt] と入力することによりこのファイルをテキストファイルとして保存することもできます。このファイルは後で pico のなどのエディタまたは less などのページャで開いて読むことができます)。また、man bash | col -b | lpr コマンドでファイルを印刷することもできますが、大きなファイルですので注意してください。さらに詳しく知りたい場合は、O'Reilly &; Associates 社で刊行している Cameron Newham、Bill Rosenblatt 共著『Learning the bash Shell』をお読みください。
皆さんのシステムにもさまざまなシェルが付属していると思われますが、Red Hat Linux では bash がデフォルトのシェルです。
bash は、たとえて言えば、指示をすばやく処理する方法をいつもメモに取る俊敏な事務員のようなものです。また、この事務員はあなたの作業をあなた流に処理する指示書も持っています。
bash が持っているこれらの指示書は、環境変数と呼ばれています。
シェルが「環境」を使用するといった場合、それは私たちがキッチンなどの環境を使用するのと同じことです。私たちはキッチンで作業し、ナベや、フライパン、香辛料などを使いやすいように配置します。私たちは皿がどこにあるのか、器具はどのように使うのか、きちんとわかっています。
bash とその環境についても同じことが言えます。キッチンと同じように bash にも基本的な配置があります。たとえば、キッチンには当然ナベがあるだろうと思うのと同様に、bash の中には一定のコマンド群が配置されているだろうと考えます。
これが、環境変数の背後にある基本的な考え方です。
事務員が正しい指示書を持っている限り、彼はあなたの指示をすばやく実行できるでしょう。
環境変数についてもっと見てみましょう。シェルプロンプトで次のように入力してみてください。
env
実に多くの「ショートカット (道具)」を bash が使っていることがお分かりになるでょう。
bashでは、それらの 1 つ 1 つを使用してユーザ環境を「あなた流」にします。
もっとも重要な環境変数に PATH 環境変数があります。これはデフォルトパスと呼ばれるものを定義しています。
たとえば、newuser アカウントの PATH 環境変数は以下のようになっています。
PATH=/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/newuser/bin
かなり込み入って見えますが、PATH はすばらしい標識で、プログラムのある場所を正確に示します。
PATH に関する規格: このガイドで FHS (Filesystem Hierarchy Standard) に触れた箇所を思い出してください (「the section called ファイルシステムの概要 in Chapter 15」参照)。PATH 文はこの規格に従って設定されます。プログラムもこの FHS に従ってディレクトリにインストールされます。その結果、bash でPATH 文を使用すれば、FHS に従ってインストールされている限りはほとんどすべてのプログラムを自動的に検出することができます。