Linuxのディレクトリ構成

広告

広告

FHSとは

最終更新
2006-09-23T22:46:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#fhs

FHSとは【Filesystem Hierarchy Standard】の略で、ファイルシステム階層標準と訳されます。Linuxや他のUNIX系オペレーティングシステムにおいて主なディレクトリの構成とその内容を定めるものです。

http://www.pathname.com/fhs/

FHS 2.3の推奨するディレクトリ構成

最終更新
2006-09-23T22:46:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#fhs23

/bin(重要なコマンドのバイナリ)

最終更新
2006-09-23T16:19:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#bin

/bin にはシステム管理者と一般ユーザが共に使用する基本的なコマンドが設置されます。他のファイルシステムがマウントされていないシングルユーザモードであってもこれらのコマンドは使える状態でなければなりません。FHSでは、/bin 下にサブディレクトリを作成すべきでないと規定しています。また、/bin には以下のコマンド又はシンボリックリンクが必要です。

必須コマンド

オプションコマンド

ここにユーザが新たにコマンドをインストールすべきではない。

/boot(ブート時のための静的なファイル)

最終更新
2006-09-23T17:07:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#boot

ブート時に必要となる設定ファイルとマップインストーラは、このディレクトリに配置されます。カーネルがユーザモードでのプログラムを実行し始める前にデータを保管するディレクトリでもあります。カーネルは/(ルート)か/boot のどちらかに置くこととされています。

/boot は通常、カーネルの再構築を行うとき以外に触る必要がありません。

/dev(デバイスファイル)

最終更新
2006-09-23T17:12:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#dev

デバイスファイルが配置されています。例えば、コンソール画面に何かを出力する場合であれば、/dev/console に書き込みを行います。/dev にはデバイスを作成するためのMAKEDEVというコマンドが必要となります。このコマンドは、システム上で構成されているデバイスを個々に認識させる際に必要となります。

Linux オペレーティングシステムのための補足説明

以下のファイルが /dev 配下に必要です。

/etc(ホスト固有のシステム設定)

最終更新
2006-09-23T18:01:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#etc

プログラムの操作や制御を行う際に必要となる設定ファイルが /etc 階層に配置されます。関連する設定ファイルが多い場合は、/etc 配下にサブディレクトリを作成し、その中に配置する場合もあります。ファイルは必ず静的なものであり、実行可能なバイナリファイルを置いてはいけません。

/etc には以下のディレクトリ、又はディレクトリへのシンボリックリンクが必要です。

/etc/opt(/opt のための設定ファイル)

/opt 配下にインストールされるアプリケーションのソフトウェアパッケージが /opt/<サブディレクトリ名>であれば、対応する設定ファイルのディレクトリ名は /etc/opt/<サブディレクトリ名>となります。

/etc/X11(X Windowシステムのための設定ファイル)

X11 ホストが参照する設定ファイルがこのディレクトリに置かれます。当ディレクトリはオプションです。

Xconfig

Xfree86 初期バージョンのための設定ファイル(オプション)。

X86Config

Xfree86 バージョン3、4のための設定ファイル(オプション)。

Xmodmap

X11 のグローバルなキーボード修正ファイル(オプション)。

/etc/sgml(SGMLのための設定ファイル)

SGMLシステムが用いるパラメータ群の定義ファイルがこのディレクトリに置かれます。当ディレクトリはオプションです。

/etc/xml(XMLのための設定ファイル)

XMLシステムが用いる設定ファイルがこのディレクトリに置かれます。当ディレクトリはオプションです。

オプション仕様

対応するサブシステムがインストールされている場合、以下のファイル(又はシンボリックリンク)が /etc に置かれなくてはいけません。

/home(ユーザのホームディレクトリ)

最終更新
2006-09-23T18:08:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#home

各ユーザのホームディレクトリを配置するディレクトリです。容量が必要となる場合が多く、可能であれば当ディレクトリは独立したパーティションにしておく方が良いとされています。ユーザが用いるアプリケーションが固有の設定ファイル又はサブディレクトリを持つ場合、ユーザのホームディレクトリにドットで始まるファイル名を用います(ただし、サブディレクトリ内に設定ファイルを置く場合はドットを用いない方が良い)。また、/home 配下にプログラムは配置すべきではありません。

当ディレクトリはオプション扱いとされています。

/lib(重要な共有ライブラリとカーネルモジュール)

最終更新
2006-09-23T18:24:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#lib

/lib ディレクトリは、ルートファイルシステム上でシステムを起動したり、/bin や /sbin のコマンドを実行させる際に必要となる共有ライブラリ(実行時に必要となった時点でメモリに読み込まれるイメージ)を配置します。

lib_qual(重要な共有ライブラリの代替フォーマット)

最終更新
2006-09-24T11:31:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#lib_qual

複数の実行形式バイナリをサポートするシステムのためにこのディレクトリは規定されています。

/media(リムーバブルメディアのためのマウントポイント)

最終更新
2006-09-24T11:35:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#media

フロッピーディスクやCD-ROM、ZIPディスクなどのリムーバブルメディアをマウントするためのサブディレクトリを含みます。

/mnt(ファイルシステムの一時的なマウントポイント)

最終更新
2006-09-24T11:38:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#mnt

システム管理者が、一時的にファイルシステムをマウントするためのディレクトリです。ローカルな利用のみで、動作中のどのようなプログラムに対しても影響を与えてはいけません。

/opt(追加アプリケーションのソフトウェアパッケージ)

最終更新
2006-09-24T11:59:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#opt

RPMやdpkgといったパッケージ管理システムでプログラムをインストールする場所です。パッケージは /opt 配下にパッケージ自身の名前を /opt/<package> とするか、/opt/<provider> というディレクトリ階層で配置します。

ユーザによって実行されるプログラムは、/opt/<package>/bin 配下か、/opt/<provider>配下に置きます。また、パッケージがmanページを含む場合は、/opt/<package>/share/man か、/opt/<provider>配下に置き、/usr/share/man 配下と同様の構成を持つ必要があります。

パッケージによって可変的なファイル(作業用のデータ)は /var/opt に、特定のホストに対する設定ファイルは /etc/opt に設置します。

/opt/bin、/opt/doc、/opt/info、/opt/lib、/opt/man の各ディレクトリはローカルのシステム管理者が使用するために予約されています。

/proc(カーネルとプロセス情報の仮想ファイルシステム)

最終更新
2006-09-24T12:20:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#proc

カーネル内部の情報にアクセスするためのファイルがここに設置されます。CPUやPCIバス、各種プロセスの情報を読み出すことができます。当ディレクトリはLinux限定セクションとしてFHS2.3では定義されています。

/root(rootのためのホームディレクトリ)

最終更新
2006-09-24T12:29:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#root

スーパーユーザのホームディレクトリです。FHS 2.3 ではオプションとされていますが、最近のほとんどのディストリビューションで標準となっています。

/sbin(重要なシステムコマンド)

最終更新
2006-09-24T12:43:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#sbin

ブートやシステムのリカバリに必要となる実行ファイルが収められているディレクトリです。通常、一般ユーザが使う必要のない実行ファイルがここには置かれ、それ以外は /bin に設置されます。FHS 2.3 では、一般ユーザが使うコマンドは /bin 、/sbin は管理者によって実行されるべきものとしてファイルの区別を設けることが推奨されています。

必須コマンド

オプションコマンド

/sbin にはシステム標準のコマンド群のみを収めておくべきであり、ここに個別のコマンドをインストールすることは推奨されない。

Linux オペレーティングシステムのための補足説明

更にLinux システムでは次の追加ファイルを必要とします。badblocks、dumpe2fs、e2fsck、mke2fs、mklost+found、tune2fs、lilo、ldconfig、sln、ssync、ctrlaltdel、kbdrate。

/srv(システムによって提供されるサービスデータ)

最終更新
2006-09-24T12:55:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#srv

/srv には、システムによって提供されるサイトに特定したデータが置かれます。

/tmp(一時的なファイル)

最終更新
2006-09-24T12:58:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#tmp

一時的な作業用ディレクトリで、リブート時にクリアされます。ユーザに関らず使えるディレクトリですが、ディレクトリやファイルが存在し続けることを想定してはいけません。

/usr

最終更新
2006-09-24T16:15:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#usr

ユーザ向けのディレクトリ。共有可能で読み込み専用データが設置されます。

/usr/bin(ユーザが利用するコマンドの大部分)

シングルユーザモードには不要なバイナリファイルを配置するディレクトリです。パッケージの追加・削除によってディレクトリ内のファイルは増減します。複数のバイナリファイルで構成されているアプリケーションの場合は、さらにサブディレクトリが設置されます。下記はその一例です。

/usr/include(Cプログラムが用いるヘッダファイル)

Cプログラミング言語のためのシステムが使用する、一般的な組み込みファイルが置かれるディレクトリです。

/usr/lib(ライブラリ)

シェルスクリプトによって直接実行されないようにしたいオブジェクトファイル、ライブラリ、内部バイナリファイルが置かれます。

/usr/local(ローカル階層)

システム管理者が自分でローカルのシステムにソフトウェアをインストールする場所として利用します。この階層はシステム関連のソフトウェアをアップデートしても変更されません。/usr/local 内の各サブディレクトリの用途は、/usr や / にある同名のディレクトリに準じます。ローカルな環境にプログラムをインストールしたりアップグレードをする場合は、/usr にソフトが置かれている場合であっても /usr/local にインストールしなければなりません。

必須項目

/usr 配下のプログラムが使用する設定ファイルを置く場所は /etc です。/usr/etc を利用することはまだ認められていません。

/usr/local/share の必要な条件は /usr/share と同じですが、/usr/local/share/man と /usr/local/man ディレクトリはシンボリックリンクでなくてはいけません。

オプション

/lib<qual> か /usr/lib/<qual> が存在しているのであれば、同等のディレクトリを/usr/loca/ 配下に置かなければなりません。

/usr/sbin(重要でないシステムコマンド)

/sbin に比べて重要ではないシステムバイナリを配置します。/sbin には緊急時に必要なプログラム、/usr/sbin は通常運用時に使われるプログラムを配置すると良いでしょう。

/usr/share(アーキテクチャに依存しないデータ)

この階層は全て読み込み専用で、アーキテクチャに依存しないデータを配置します。

/usr/share/man(manページ)
/usr/share/misc(様々なデータ)

アーキテクチャに依存しないファイルや、/usr/share 配下におかれるサブディレクトリを含みます。対応するサブシステムがインストールされている場合、以下のファイル(又はシンボリックリンク)が置かれます。

ディストリビューションの方針によっては /usr/lib が用いられる場合もあります。

dict

システムの単語リストを置くためのディレクトリで、全ての文法チェックプログラムが共通して利用します(オプション)。言語はアメリカ式の英語かイギリス式の英語のいずれかです。

doc

様々なドキュメント類(オプション)

game

/usr/games 用の静的なデータファイル(オプション)です。ゲームのプレイ記録や得点記録といった更新可能なファイルは /var/games に置くべきです。

info

GNU Info用のディレクトリ(オプション)

locale

場所に関する情報(オプション)

nls

各国語サポート用(オプション)

sgml

SGML データ(オプション)

terminfo

terminfo データベース用ディレクトリ(オプション)

tmac

groff で配布されない troff マクロ(オプション)

xml

XML データ(オプション)

zoneinfo

タイムゾーンの情報と設定用ファイル(オプション)

/usr/X11R6(X Window用)

X Window システムバージョン11リリース6とその関連ファイルのために確保されたディレクトリです。当ディレクトリはオプションです。

/usr/game(ゲームとコマンドの学習(オプション))

/usr/lib<qul>(ライブラリの代替形式)

/usr/lib 配下のバイナリフォーマットと同一の役割を果たします。当ディレクトリはオプションです。

/usr/src(ソースコード)

ソースコードを参照するために使われるディレクトリです。当ディレクトリはオプションです。

/usr/src/linux(Linux Kernelのソースコード)

/var(変更されるデータ)

最終更新
2006-09-24T22:13:00+09:00
この記事のURI参照
https://www.7key.jp/nw/directory.html#var

ホスト固有の可変データ用領域であり、ホストごとに用意しなければなりません。スプールディレクトリやファイル、管理用のログデータ、一時利用などが含まれます。/tmp と違い、リブート時に削除されることはありません。一般的に、アプリケーションは /var 階層直下にディレクトリを作成してはいけません。

/var/cache(アプリケーションのキャッシュデータ)

アプリケーションが用いるデータの一時的な記憶場所として使われるディレクトリです。容量に上限が設けられ、古いものから順に削除されます。

fonts(ローカルに生成されたフォント)

動的に生成されるフォントを置くために使われるディレクトリです。当ディレクトリはオプションです。

man(ローカル使用のmanページ)

ローカル利用時のマニュアル文書はこのディレクトリ内に置くことが許されています。当ディレクトリはオプションです。

www(WWW プロクシあるいはキャッシュデータ)

当ディレクトリはオプションです。

<package>(パッケージ固有のキャッシュデータ)

当ディレクトリはオプションです。

/var/lib(動的な状況情報)

アプリケーションやシステムが持つ、プログラム実行によって変更されたデータや特定のホスト情報に関る情報を置くディレクトリです。

必須
オプション

/var/local(/usr/local用の動的なデータ)

/var/lock(ロックファイル)

ファイルの読み書きなどで排他制御を行う際に使うディレクトリです。個々のプロセスは書き込み中との目印となるファイルを /var/lock に作成し、このファイルを見て書き込みが可能かどうか、又は読み出すデータに信頼がおけるかどうかを判断します。

/var/log(ログファイルとディレクトリ)

各種プログラムの動作記録を置くために使うディレクトリです。ほとんどの動作記録がこのディレクトリか適切なサブディレクトリに書き込まれます。

/var/opt(/opt用の動的なデータ)

追加ソフトウェアパッケージで使う静的なファイルは /etc に配置するのではなく、/opt 配下にインストールされた名前に従うよう /var/opt/<subdir> としてインストールする必要があります。/var/opt/<subdir> の内部構造には特に制限が設けられていません。

 

/var/run(実行プロセス関連データ)

システムが起動した後の各種システム情報データが置かれるディレクトリです。このディレクトリ配下にあるファイルは、サーバの起動時にクリアされる必要があります。

/var/spool(アプリケーション用スプール)

プロセス処理待ちとなっているデータが置かれるディレクトリです。一般的には、処理が終った後そのデータは削除されます。

/var/tmp(システム再起動時にも保存される一時ファイル)

システム再起動時のために予約されている一時的なファイルが置かれます。/tmp 配下のデータよりも更に一時的な目的で用いられるデータが置かれます。

/var/account(プロセス課金記録)

動作中のアプリケーションが記録するログと複数のプロセスが用いるデータが置かれます。当ディレクトリはオプションです。

/var/crash(システムクラッシュ時のダンプデータ)

システムクラッシュ時のダンプデータを置くディレクトリです。当ディレクトリはオプションです。

/var/games(ゲーム用動的なデータ)

/usr 配下の games 関連の動的なデータを置くディレクトリです。/usr 配下にある動的なデータは、/var/games 配下にあるとみなされるべきです。当ディレクトリはオプションです。

/var/mail(ユーザのメールボックス)

メールのスプールファイルは /var/mail を通してアクセスされるべきであり、スプールされるファイル名の形式は<ユーザ名>でなければなりません。当ディレクトリはオプションです。

/var/yp(NISデータベースファイル)

NIS の動的データがこのディレクトリに置かれます。当ディレクトリはオプションです。

広告

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年09月23日 最終更新:2006年09月24日