Scroll to navigation

HIER(7) Linux Programmer's Manual HIER(7)

名前

hier - ファイルシステム階層の説明

説明

典型的な Linux system には以下のようなディレクトリがある (他にもたくさんのディレクトリがあるが):

/
ルートディレクトリ。ここが階層の起点となる。
/bin
このディレクトリには、シングルユーザーモードで システムの起動や修理を行う際に必要な実行形式ファイルが含まれる。
/boot
ブートローダが用いる静的なファイルが含まれている。 このディレクトリにはブートプロセスの間に必要なファイルだけが置かれる。 マップインストーラや設定ファイルは /sbin/etc に置くべきである。
/dev
物理デバイスを参照している スペシャルファイルやデバイスファイルの置き場所。 mknod(1) を参照のこと。
/etc
マシン固有の設定ファイルが置かれる場所。X11 のような 大規模なソフトウェアパッケージでは、 /etc 以下に更にパッケージ単位でサブディレクトリが作られることもある。 サイト全体に有効な設定ファイルは、ここではなく /usr/etc に置かれることもある。 しかし、プログラムからのこれらのファイルの参照先は、常に /etc にすべきである。 /usr/etc 以下のファイルに対しては、それらへのリンクを /etc に置けばよい。
/etc/opt
/opt にインストールされたアドオンアプリケーションが使う、 ホスト固有の設定ファイルの置き場所。
/etc/sgml
SGML や XML の設定ファイルの置き場所 (なくてもよい)。
/etc/skel
新たにユーザーアカウントを作る際、 通常このディレクトリにあるファイルが ユーザーのホームディレクトリにコピーされる。
/etc/X11
X11 window system の設定ファイルの置き場所 (なくてもよい)。
/home
通常、ユーザーのホームディレクトリが、 このディレクトリ直下ないしサブディレクトリの下に作成される。 このディレクトリの構成をどうするかは、 ローカルマシンの管理者が決めることである。
/lib
このディレクトリには、システムの起動時に必要な共有ライブラリや、 ルートファイルシステムでコマンドを実行するのに必要な共有ライブラリを置く。
/media
このディレクトリには、 CD/DVD ディスクや USB スティックなどの取り外し可能メディア (removable media) 用のマウントポイントが置かれる。
/mnt
このディレクトリは、一時的にマウントするファイルシステム用の マウントポイントである。 ディストリビューションによっては、一時的にマウントするファイルシステム用の マウントポイントとして、 /mnt 内にサブディレクトリが用意されている場合がある。
/opt
このディレクトリにはアドオンパッケージの静的なファイルが置かれる。
/proc
このディレクトリは proc ファイルシステムのマウントポイントである。 proc ファイルシステムは、実行中プロセスやカーネルの情報を提供する。 この疑似ファイルシステムの詳細は、 proc(5) で説明されている。
/root
通常ここが root ユーザのホームディレクトリになる (なくてもよい)。
/sbin
/bin と同様に、 このディレクトリにはシステムの起動に必要なコマンドが含まれる。 ただしここには、一般ユーザーは通常実行しないコマンドが置かれる。
/tmp
このディレクトリには、 定期的なジョブによって、またはシステム起動時に、 無条件に削除して構わない一時的なファイルが置かれる。
/usr
通常このディレクトリは、独立したパーティションがマウントされる。 ここには、共有可能で読み込み専用のものだけが含まれ、 よっていろいろな Linux マシンからマウントできる。
/usr/X11R6
X Window System, Version 11 release 6 (なくてもよい)。
/usr/X11R6/bin
X Window System のバイナリの置き場所。 古いディレクトリである /usr/bin/X11 からここにシンボリックリンクが張られていることが多い。
/usr/X11R6/lib
X Window System に関連するデータファイルの置き場所。
/usr/X11R6/lib/X11
ここには X の動作に必要な種々のファイルが含まれている。 /usr/lib/X11 からここにシンボリックリンクが張られていることが多い。
/usr/X11R6/include/X11
ここには X11 Window System を使ったプログラムをコンパイルするために 必要なインクルードファイルが含まれている。 /usr/include/X11 からここにシンボリックリンクが張られていることが多い。
/usr/bin
このディレクトリは、実行形式ファイルの主な置き場所である。 システムのブートやシステム復旧には必要とされない、 一般ユーザーが利用するコマンドの多くは、 ローカルにインストールされるのでない限り、 このディレクトリに置くべきである。
/usr/bin/X11
X11 コマンドの伝統的な置き場所。Linux では、通常 /usr/X11R6/bin にシンボリックリンクが張られている。
/usr/dict
/usr/share/dict に置き換えられた。
/usr/doc
/usr/share/doc に置き換えられた。
/usr/etc
サイト内部の複数のマシンが共有するような設定ファイルが置かれる。 しかしながら、コマンドはそれらのファイルの参照先を、常に /etc にすべきだろう。 /etc のファイルからリンクを張って、 /usr/etc の適切なファイルを指すようにすべきである。
/usr/games
ゲームプログラムや教育用プログラムのバイナリが含まれている (なくてもよい)。
/usr/include
C コンパイラ用のインクルードファイルが含まれている。
/usr/include/X11
C コンパイラと X Window System 用のインクルードファイルが含まれている。 通常これは /usr/inlcude/X11 へのシンボリックリンクになっている。
/usr/include/asm
アセンブラ関数の宣言を行うインクルードファイルが含まれている。 このディレクトリは、以前は /usr/src/linux/include/asm へのシンボリックリンクだった。
/usr/include/linux
ここには、システムのリリースのたびごとに変更されうる情報が含まれる。 ここは以前は /usr/src/linux/include/linux にシンボリックリンクされており、 オペレーティングシステム固有の情報が得られるようになっていた。

(ここに置くインクルードファイルは、 現在の libc およびユーザ空間で正しく動作するものでなければならない。 しかし Linux のカーネルソースは ユーザプログラムといっしょに使うようには設計されていないし、 あなたが使っている libc も関知しない。 /usr/include/asm/usr/include/linux を適当なカーネルツリーへのリンクにしたりすると、破綻するのは目に見えている。 Debian ではこうせずに、libc*-dev package が提供する、 安定したカーネルバージョンのヘッダファイルを置いている。)

/usr/include/g++
GNU C++ コンパイラ用のインクルードファイルが含まれている。
/usr/lib
オブジェクトライブラリ (ダイナミックライブラリも含む) と、 直接には起動されないような実行形式ファイル少々とが置かれる。 複雑なプログラムでは、更にサブディレクトリがあるかもしれない。
/usr/lib/X11
X のプログラムに関連するデータファイルと、 X Window System の設定ファイルの置き場所。 Linux では通常 /usr/X11R6/lib/X11 にシンボリックリンクが張られている。
/usr/lib/gcc-lib
GNU C コンパイラ gcc(1) 用の実行形式ファイルとインクルードファイルが含まれている。
/usr/lib/groff
GNU groff 文書整形システムのためのファイルが含まれている。
/usr/lib/uucp
uucp(1) のためのファイルが含まれている。
/usr/local
このディレクトリは、 サイトローカルなプログラムがインストールされる典型的な場所である。
/usr/local/bin
サイトローカルなプログラムが含まれている。
/usr/local/doc
サイトローカルなドキュメントが含まれている。
/usr/local/etc
サイトローカルにインストールされたプログラムの設定ファイルの置き場所。
/usr/local/games
サイトローカルにインストールされたゲームのバイナリの置き場所。
/usr/local/lib
サイトローカルにインストールされたプログラムの関連ファイルの置き場所。
/usr/local/include
ローカルな C コンパイラのヘッダファイルの置き場所。
/usr/local/info
サイトローカルにインストールされたプログラムの info ページの置き場所。
/usr/local/man
サイトローカルにインストールされたプログラムのマニュアルページの置き場所。
/usr/local/sbin
サイトローカルにインストールされたシステム管理コマンドの置き場所。
/usr/local/share
同じ OS ならアーキテクチャが異なっても共有できる、 ローカルなアプリケーションデータの置き場所。
/usr/local/src
サイトローカルにインストールされたソフトウェアのソースコードの置き場所。
/usr/man
/usr/share/man に置き換えられた。
/usr/sbin
このディレクトリには、システム管理コマンドが含まれる。 ここに置かれるコマンドは、ブートプロセスや /usr のマウント、システムの修理などに必要なものであってはならない。
/usr/share
このディレクトリには、アプリケーションごとに固有なデータ (同じ OS ならアーキテクチャが違っていても共有できるもの) がサブディレクトリ単位で置かれる。 以前には /usr/doc, /usr/lib, /usr/man などにあった内容が、多くここに置かれている。
/usr/share/dict
スペルチェッカ用の単語リストが含まれる。
/usr/share/doc
インストールされたプログラムのドキュメントの置き場所。
/usr/share/games
/usr/games に置かれたゲーム用の静的なデータファイルの置き場所。
/usr/share/info
info ページが置かれる。
/usr/share/locale
ロケール (locale) 情報が置かれる。
/usr/share/man
マニュアルページ。各ページはセクションに応じたサブディレクトリに置かれる。
/usr/share/man/<locale>/man[1-9]
これらのディレクトリには、 各ロケールのマニュアルページのソースが置かれている。 すべてのマニュアルページで同じ言語とコードセットを使用するシステムでは、 <locale> は省略されることがある。
/usr/share/misc
同じ OS ならアーキテクチャが違っていても共有できる、雑多なデータの置き場所。
/usr/share/nls
母国語サポート (native language support) 用のメッセージカタログの置き場所。
/usr/share/sgml
SGML や XML のファイルの置き場所。
/usr/share/terminfo
terminfo のデータベースが置かれる。
/usr/share/tmac
groff と一緒には配布されていない troff マクロの置き場所。
/usr/share/zoneinfo
タイムゾーン情報のファイルが置かれる。
/usr/src
システム上の色々なコンポーネントのソースファイル (参照用のパッケージも含む) の置き場所。 この場所で自分のプロジェクトの作業をしてはいけない。 /usr 以下のファイルはソフトウェアのインストールの時以外は 読み込み専用になっているべきだからである。
/usr/src/linux
かつてはカーネルソースの伝統的な置き場所だった。 ディストリビューションによっては、 出荷時のデフォルトのカーネルのソースをここに置いている。 自分でカーネルをビルドするときは別の場所を使うほうがいいだろう。
/usr/tmp
今では用いられなくなった。このディレクトリは /var/tmp へのリンクにすべきである。 このリンクは互換性のためだけにあり、もはや使うべきでない。
/var
このディレクトリには、スプールファイルやログファイルのような、 サイズが変化するファイルが置かれる。
/var/adm
このディレクトリは /var/log に置き換えられた。 ここは /var/log へのシンボリックリンクにすべきである。
/var/backups
歴史的な理由からまだ残っている。
/var/cache
プログラムのためにキャッシュされたデータの置き場所。
/var/catman/cat[1-9] or /var/cache/man/cat[1-9]
これらのディレクトリには、整形済みのマニュアルページが、 ページのセクションに従って置かれている。 (整形済みマニュアルページの利用は推奨されていない。)
/var/cron
歴史的な理由からまだ残っている。
/var/lib
プログラムの状態に関する情報のうち、可変なものの置き場所。
/var/local
/usr/local 用の可変データの置き場所。
/var/lock
ロックファイルの置き場所。 デバイスのロックファイルの命名は、慣習として LCK..<device> とされている。ここで <device> はファイルシステム上でのデバイス名である。 利用されているフォーマットは HDU UUCP のロックファイルのものである。 すなわち各ロックファイルには アスキー 10 進数値文字で表記した PID 10 バイトと、 それに続いて改行文字とが含まれている。
/var/log
種々のログファイルの置き場所。
/var/opt
/opt 用の可変データの置き場所。
/var/mail
ユーザのメールボックスの置き場所。 /var/spool/mail を置き換えた。
/var/msgs
歴史的な理由からまだ残っている。
/var/preserve
歴史的な理由からまだ残っている。
/var/run
実行時の可変ファイルが置かれる。 例えばプロセス識別子 (PID) を保持するファイルや、 ユーザのログイン情報ファイル (utmp) などである。 ここのファイルは、通常システム起動時に削除される。
/var/spool
色々なプログラムのスプールファイル (あるいはキューファイル) の置き場所。
/var/spool/at
at(1) のジョブスプール。
/var/spool/cron
cron(8) のジョブスプール。
/var/spool/lpd
印刷用のスプールファイルが置かれる。
/var/spool/mail
/var/mail に置き換えられた。
/var/spool/mqueue
キューイングされた送信メールの置き場所。
/var/spool/news
ニュースのスプールディレクトリ。
/var/spool/rwho
rwhod(8) のスプールファイルの置き場所。
/var/spool/smail
メール配送プログラム smail(1) のスプールファイルの置き場所。
/var/spool/uucp
uucp(1) のスプールファイルの置き場所。
/var/tmp
/tmp と似ているが、 このディレクトリに置かれる一時的なファイルは保存期間の制限がない。
/var/yp
NIS のデータベースファイルの置き場所。

準拠

The Filesystem Hierarchy Standard, Version 2.2 <http://www.pathname.com/fhs/>.

バグ

このリストは網羅的なものではない。 個々のシステムでは異なる部分があるかもしれない。

関連項目

find(1), ln(1), proc(5), mount(8)

The Filesystem Hierarchy Standard

2001-09-07 Linux