説明
典型的な 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 と同様に、 このディレクトリにはシステムの起動に必要なコマンドが含まれる。 ただしここには、一般ユーザーは通常実行しないコマンドが置かれる。
- /srv
- このディレクトリには、このシステムで提供される サイト固有のデータが置かれる。
- /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バグ
このリストは網羅的なものではない。 個々のシステムでは異なる部分があるかもしれない。この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。