ファイルシステムの概要

すべてのオペレーティングシステムには、追加、修正その他の変更を追跡できるような、ファイルやディレクトリの格納方法があります。

Linux では、すべてのファイルに一意の名前が付けられてディレクトリの中に格納されます。ディレクトリ自体が他のファイルやディレクトリ、すなわちサブディレクトリを持つことができます。

ユーザは、システムをディレクトリという「分岐」を持つ木のような構造と考えることができます。これらのディレクトリは他のディレクトリを含む、つまり「親」となることができます。子のディレクトリも、独自のファイルやディレクトリを持つことができます。

根のない木はありえませんが、Linux でも同じことが言えます。枝がどんなに遠くにあろうとも、そのすべては、シングルスラッシュ (/) で表されるルートと接続しています。

「root/ルート」について、root アカウント、root アカウントのログインディレクトリそしてルートディレクトリ (/) など複数の引用があり混乱しそうですが、このように考えてください。root すなわちシステム管理者としてログインするということは、システムに重要なものをシステムの根 (/) としてまとめて維持していくのと同様に非常に重要なことです。

FHS とは?: Linux には他のディストリビューションもありますが、Red Hat Linux システムはそれらのシステムとほぼ互換性があります。その理由は、FHS (Filesystem Hierarchy Standard) にあります。これらのガイドラインは、システムプログラムとファイルをすべての Linux システムで格納する方法を標準化することを目的としています。

FHS についての詳細は、ドキュメント CD の『Red Hat Linuxリファレンスガイド』にあるシステム管理の章を参照してください。次の FHS の Web サイトを検索することもできます。http://www.pathname.com/fhs.

取り返しのつかないような誤まりを犯さないようにユーザアカウントにログインしているのですから、いろいろと調べてみましょう

この調査ツアーで最初に止まるべき所は、何がどこにあるかの概要示すルートディレクトリです。

シェルプロンプトで、次のように入力します。

cd /

プロンプトが次のように表示されます。

[newuser@localhost /]$

ここで、以下のように入力して、ルートから「分岐」しているディレクトリを調べます。

ls

それほど多く分岐しているとは思えないのでは?ただし、これは氷山の一角です。これらは、他のディレクトリの親ディレクトリで、子ディレクトリにも、さらに子ディレクトリがあります… 。

Figure 15-9. ルートから見たディレクトリ

ここで見つかりそうなディレクトリは、次のように多くありません。

etc     lib     sbin
usr     var

他にもディレクトリがありますが、まず、/etc ディレクトリを調べてみましょう。

[newuser@localhost /]$ cd etc
[newuser@localhost /etc]$ ls

いろいろなタイプのファイルやディレクトリの中で、システムで使用するプログラムを作成する上で役に立ち、プログラムやシステム設定などを格納する設定ファイルが見つかります。

ここのディレクトリの中に、X Window System に必要なディレクトリや設定ファイルも含む /etc/X11 が表示されます。

ディレクトリ /etc/skel には、新規作成されたユーザアカウントのために標準かつ一般的に使用されるファイルを提供するために使用されるスケルトン (骸骨)ユーザファイルがあります。

多分少し悪趣味に感じますが、以下にその意味を示します。root としてログインしたときの最初の作業として学習したことの 1 つがユーザアカウントの作成です。

そのユーザアカウントが作成されると、/etc/skel からファイルが取りこまれて新しいアカウントの中に配置されます。これらのファイルによって、そのアカウントに肉が付けられます (骸骨…肉… 分かりましたか?)。

/usr について少し調べてみましょう。/etc/skel の現在の場所から、次のように入力することができます。

[newuser@localhost /skel]$ cd /usr
[newuser@localhost /usr]$ ls

/usr で、システムで最も重要なプログラムやファイルのいくつかを含むディレクトリの数を検索します (Figure 15-10を参照)。

Figure 15-10. /usr[ls] と入力します。

/usr/share/man には、システムマニュアルが保存されています。man ページで説明されないその他のマニュアルは、/usr/share/doc および /usr/share/info に保存されています。

/usr/X11R6 には、設定ファイルと文書ファイルを含む X Window System に関連するファイルがあります。

「ライブラリ」という単語には、何かより学問的な感じがするのですが、/usr/lib には、システム用のライブラリと考えられるファイルが含まれています。ここでのライブラリの意味は、多くのプログラムでの共有が可能な、一般的に使用されるコード部分を含むファイルのことです。

Red Hat Linux は、RPM (RPM Package Manager) テクノロジーをソフトウェアのインストールとアップグレードに使用します。シェルプロンプトあるいは Gnome-RPM を介してのいずれの場合でも、RPM を使用することは、ソフトウェアを安全かつ便利にアップグレードあるいはインストールする方法です。

(Gnome-RPM の使用に関する詳細は、Chapter 12あるいは Red Hat Linux リファレンスガイドの当該の章を参照してください。)

しかしながら、システムに慣れてしまうと、RPM フォーマットで利用できないソフトウェアをインストールしたくなることもあります。RPM が管理するファイルとの競合を最小限にするには、そのようなファイルを /usr/local に配置するのが最善の方法です。