CentOS 5 系のディレクトリ構造とファイル
Loading news. please wait...
2008年7月14日(月)
CentOS5.x 系 のディレクトリ構造とファイル
CentOS5系のディレクトリーを見ていると、何がなんだか分からなくなる事があります。
自分の頭の脳みそがいかに軽いかを痛感しながら、これはまとめておかないと大変と、あわてて虎の巻を作ってみました。
あくまでも自分のためのものですので、言葉が足らない部分も多々あるかと思いますがご容赦願います。
Filesystem Hierarchy Standard
CentOS5(
Red Hat Enterprise Linux 5)は、Filesystem Hierarchy
Standard を順守する方向へ向かっているようですがまだ、完全ではありません。現在はそれを整えつつある段階のようです。
以下の表は Filesystem Hierarchy Standard の基本的なディレクトリ一覧です。
この Filesystem Hierarchy Standard に一番忠実なLinux ディストリビューションは 2008年7月現在の段階では Debian GNU/Linux
だろうと思っています。
ディレクトリ名 |
読み |
内 容 |
bin |
ビン |
基本的なコマンドバイナリ |
boot |
ブート |
ブートローダのスタティックなファイル |
dev |
デブ |
デバイスファイルなどを格納 |
etc |
エトセ |
ホスト固有のシステム設定 |
home |
ホーム |
ユーザのホームディレクトリ |
lib |
リブ |
基本的な共有ライブラリとカーネルモジュール |
media |
メディア |
取替え可能なメディア用のマウントポイントを含む |
mnt |
マウント |
ファイルシステムを一時的にマウントするためのポイント |
proc |
プロセス/プロック |
システム情報を含む仮想ディレクトリ (2.4 および 2.6 カーネル) |
root |
ルート |
root ユーザのホームディレクトリ |
sbin |
エスビン |
基本的なシステムバイナリ |
sys |
シス |
システム情報を含む仮想ディレクトリ (2.6 カーネル) |
tmp |
テンプ |
一時ファイル用 |
usr |
ユーザ |
ユーザの後から追加したプログラムなどを置くユーザ用の場所 |
var |
バー |
変動するデータを置く場所 |
srv |
サーブ/サービス |
システムによって割り当てられた、サービスのためのデータ |
opt |
オプト |
アドオンアプリケーションソフトウェアパッケージ |
tree コマンド
tree コマンドを使用してディレクトリを見てみました。
例えば bin/ のディレクトリの中を tree コマンドで表示する時には、端末で以下のように入力します。
# tree /bin
でも、これだと端末の中に表示されるだけで利用の方法がありません。以下のように入力して、テキストファイルとして抽出してみます。
# tree /bin >sample_bin.txt
上の簡単な説明をします。
tree /bin は、bin ディレクトリー下を tree 表示せよ、との指定です。
>sample_bin.txt とは、sample_bin.txt と言う名前でテキストファイルにせよ、との指定です。
この時に特別にテキストファイルを置く場所を指定しなければ、自分のホーム直下に置かれます。もしくは自分の現在いる場所に。くれぐれも自分は今どこにいて操作をしているのかを確認した上で操作してください。確認するには
pwd コマンドを使うと即座に答えを返してくれます。
もちろん、sample_bin と言うファイル名は好きにつけます。
注意しなければならないのはシステムが使っているコマンド名やディレクトリ名、デーモンネーム、ファイル名、これらと重ならないようなファイル名をつけることです。
tree / >tree.txt なんてやらないでくださいね。えんえんと 25448 のディレクトリと 253815 個のファイル名がつらなり、テキスト総量が
11600KB 前後になります。(このファイルの数やテキストの量などは、あくまでも私のマシンでの環境においてです。)
CentOS release 5.2 のディレクトリ
以下の画像は私のマシンの CentOS release 5.2 ( Final ) / Kernel 2.6.18-92.1.6. e15 on an i686 のディレクトリです。
以下簡単な説明です。
bin |
システム管理者・一般ユーザ共に使用するコマンド群が保存されています。 |
備考: bin とは binary の bin です。
/usr/bin などにもユーザが使用するコマンドが保存してあります。
デフォルトではここに path が通っていますので、ここに置かれると端末で入力するだけで起動したり、コマンドが実行できたりします。注意する必要があるのは、/bin
配下にサブディレクトリがあってはいけないということと、 root ユーザ、一般ユーザでは path が違うということ(仮に path が正しくついていても、パーミッションではねられてしまい実行できないものもありますから)。
cat , chgrp , chmod , chown , cp , date , dd , df , dmesg , echo , false ,
hostname , kill , ln , mkdir , mknod , mount , mv , ps , pwd , rm , rmdir
, sed , sh , stty , su , sync , umount , uname などのコマンドやシンボリックリンクは必要なものです。 |
|
boot |
システム起動時に必要なファイルとカーネルの本体などが保存されています。 |
備考: boot は bootstrap 、 boot loader の boot です。 |
|
備考:dev は device の dev です。
デバイスファイルは、ハード・ディスクなどの周辺装置(デバイス)を制御する際に用いられる特別なファイルであり、デバイス番号などのごく少数のデータだけを保持します。
システムが正しく機能するためには、これらのファイルが不可欠です。 |
|
dump |
特殊目的ディレクトリ(通常のLinux ファイルシステムにはない) |
備考:カーネルがクラッシュした時に掃きだすログを取るためにカスタマイズしたディレクトリです。特殊目的のディレクトリなので通常のLinux
ファイルシステムにはないと思います。
(我が家のおバカな亭主の趣味で、いつの間にか作られてしまいました)。 |
|
etc |
システム、OS、デーモンなどの設定ファイルを置くディレクトリ |
備考: etc は etcetera の etc です。
ここにはバイナリファイルを置いてはいけないことになっています。
opt , X11 , sgml , XML などのディレクトリ、あるいはディレクトリへのシンボリック・リンクが必要だとされています。 |
|
home |
各ユーザのホーム(基点となる)ディレクトリ |
備考:一般ユーザの管理できるディレクトリが、各ユーザ名でここへ作成されます。
例: デフォルトでは、home/ユーザ の下には bin ディレクトリはありませんが、ここへ自分で bin ディレクトリを作ると自動的に path
が通り、中へ入れたプログラムとかコマンドを実行する事ができるようになったりします。
各ユーザが用いるアプリケーションがそれぞれ固有の設定ファイルを持つ場合、各ユーザのホームディレクトリ内に . (ドット)で始まるファイル名を用いる事が多いようです(アプリケーションがサブディレクトリを必要とする場合も同様に
. (ドット)で始まるディレクトリ名を用いたりします)。サブディレクトリ内で設定ファイルを置く場合は . を用いないほうが良いかもしれません。 |
|
lib |
重要な共有ライブラリとカーネルモジュールを置くディレクトリ |
備考:lib は library の lib です。
共有できる汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたプログラムの事をライブラリといい、glibc などは代表的なライブラリの集合体です。
ルートファイルシステム上でシステムを起動したり /bin や /sbin のコマンドを実行させる際に必要となる重要な共有ライブラリをここに置いてあります。これらの
共有ライブラリイメージは、特にシステムをブートしたりルートファイルシステム内でコマンドを実行する場合に重要です。
libc.so.* , ld* 最低でもこの2種類のファイル名のパターンが必要とされます(ファイルもしくはシンボリック・リンク)。また、対応するサブシステムがインストールされる場合、/lib
以下に modules ディレクトリ、あるいはディレクトリへのシンボリック・リンクが必要とされます。 |
|
備考:ファイルシステムがクラッシュした時に FSCK というプログラムが動いて、その時に壊れたファイルを修復します。その修復したファイルに通し番号をつけて、修復後に置いておく場所です。 |
|
media |
リムーバブルディスク用マウントポイント |
備考:リムーバブルディスクとは、 FD / CD / DVD / ZIP / その他の書き換え可能な記録媒体などを指します。 |
|
misc |
どのディレクトリにも分類しづらいファイルを置くディレクトリ |
備考:misc は miscellaneous の短縮形です。意味はその他、その他もろもろ・・・。名前の通りのディレクトリです。 |
|
備考:mnt は mount の mnt です。
このディレクトリは一般的にシステムのブート後に マウントされるファイルシステム用のマウントポイントを含んでいます。システム管理者が必要なときに一時的にファイルシステムをマウントできるように用いるディレクトリです。インストールしなければ使うことができないようなプログラムをここに置いてはならないことになっています。また、動作中のどのようなプログラムに対しても影響を与えてはいけないこととされています。 |
|
opt |
追加アプリケーションのソフトウェア・パッケージなどのためのディレクトリ |
備考: opt は option の opt です。
通常 /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, /opt/man の各ディレクトリはローカルのシステム管理者が使用するために予約されているディレクトリ名とされています。
インストールするパッケージは /opt 配下にパッケージ自身の名前を package とするか provider というディレクトリ名で配置するのがひとつの決まりごとになっているようなところがあります。例えば、OpenOffice
などは、デフォルトでここへ入ります。
※ package はソフトウェア・パッケージを指し示す名前のことで、provider は LANANA ( Linux Assigned Name
And Number Authority - http://www.lanana.org/ ) に登録してある提供者名です。 |
|
proc |
カーネルとプロセス情報などの仮想ファイルシステム |
備考: proc は process の proc です。
カーネルとの間で情報をやりとりするための特別なファイルが含まれています。 記録装置の情報やカーネル情報、メモリ情報と同様、プロセスの情報を得るために
/proc 内ではさまざまなデータが用意されており、このディレクトリを使用して カーネルと通信する方法は数多くあります。 詳細はこちら |
|
root |
root( スーパーユーザ ) のホームディレクトリ |
備考:root ユーザとは特別な管理権限を持つユーザのことでスーパーユーザとも云われます。 |
|
sbin |
システムの起動、回復、修復に必要となる実行ファイルが置かれているディレクトリ |
備考:システム管理者が用いるユーティリティ(root しか実行できないコマンドも含む)は /sbin, /usr/sbin,
/usr/local/sbin に配置されています。一般ユーザが利用するコマンドは /sbin に置くべきではありません。
例1. chfn といったファイルはユーザが時折使うため /usr/bin に置きます。
例2. ping コマンドは root ユーザが(ネットワークの回復と診断に)用いますが、一般ユーザも使うことがあるので /bin に置かれたりします。 |
|
備考:selinux というのはシステムコールを監査するプログラムです。 |
|
srv |
FTP や www 、cvs などのデータファイルの置き場所 |
備考:現在は使われていませんが、将来の予約ディレクトリ(FHSのため)となっています。もしかしたら、/var/www 以下のディレクトリがここに移動してくるかもしれません。 |
|
sys |
2.6 カーネル特有の新しい sysfs仮想ファイルシステムを活用 |
備考:/sys ディレク トリには、/proc に保存されているような情報をもっていますが、 ホットプラグデバイスに関してデバイス情報を表示します。 |
|
tmp |
一時的なファイルを必要とするプログラムのために提供される場所 |
備考: tmp は temporary の tmp です。
他のプログラムは ここでディレクトリやファイルが存在し続ける事を想定してはいけません。 |
|
usr |
サイト全体にわたって共有することのできるファイルのためのディレクトリ |
備考:ここはファイルシステムの中でも上位に入る重要な領域です。大きなソフトウェア・パッケージは /usr 配下にサブディレクトリを作成すべきではありません。
※ /usr 下に必要なディレクトリはこちら3.2.1.12.
/usr/ディレクトリを参照のこと。 |
|
var |
値が常に変動しているファイルのためのディレクトリ |
備考:ここには、可変的なデータファイルが置かれます。
データにはスプールディレクトリやファイル、管理用のログデータ、短期、一時利用のファイルなどが含まれます。
システムの拡張が必要な場合などごく限られた時意外、アプリケーションは /var ディレクトリの直下にディレクトリを作成してはいけないとされています。
/var ディレクトリは /usr ディレクトリを読み込み専用(read-only)にして利用するための場所です。
システムの操作(インストールやソフトウェアのメンテナンスは除きます)では /usr ディレクトリにデータは書き込ませないようにし、/var ディレクトリへ書き込むようにするのが標準です。
RedHat 系のディストリビューションでは Apache のドキュメントルートのデフォルトが /var/www/html になっています。
/var/log、/var/lock、/var/run などは他のシステムと共有されてはならないものですが、反対に /var/mail、/var/cache/man、/var/cache/fonts、/var/spool/new
といった一部のディレクトリは共有されることもあります。
※ /var のサブディレクトリとする必要のあるディレクトリ群はこちらの3.2.1.14.
/var/ディレクトリを参照のこと。 |
|
備考:これはautofs を動かした時だけできるディレクトリで、動かさなければ作られません。 |
|