Linuxのファイル構成について調べてみた
Linuxのファイル構成について調べてみた。
参考
FHS
FHS(Filesystem Hierarchy Standard)という規格?によって定められている。
おかげさまで、何がどこに保存されているか、おおよそ推測ができそう。
ディレクトリ構成
ディレクトリ | 説明 |
---|---|
/ |
ルートディレクトリ |
/bin |
シングルユーザモードで必要となる一般ユーザー向けの基本コマンド(binaries)。例:cat、ls、cp。 |
/boot |
ブートローダー (boot loader) 関連のファイル群。例えば、カーネルや initrd(初期RAMディスク)。通常は別パーティション。 |
/dev |
基本デバイス(device)。例:/dev/null。 |
/etc |
システム全体に関わる固有設定ファイル群。 |
/etc/opt |
/opt/ のための設定ファイル群。 |
/home |
ユーザーのホームディレクトリ(home directory)群。セーブファイル、個人用設定など。別パーティションとすることが多い。 |
/lib |
/bin/ や/sbin/ にある実行ファイルの基本となるライブラリ(library)群。 |
/media |
CD-ROMなどのリムーバブル媒体(media)のマウントポイント(FHS2.3追加) |
/mnt |
ファイルシステムの一時マウントポイント(mount) |
/opt |
オプション(option)のアプリケーションソフトウェアパッケージのインストール用。 |
/proc |
カーネルやプロセス(process)の状態に関する情報を主にテキストで示す仮想ファイルシステム用。例えば、実行時間やネットワーク。procfsのマウントポイント。 |
/root |
rootユーザのホームディレクトリ。 |
/run |
実行時の可変データ。(FHS3.0追加)。 |
/sbin |
システム管理系コマンド(system binaries)。例:init、ip、mount。 |
/srv |
システムによって提供された(served)サイト固有のデータ |
/tmp |
一時ファイル置場(temporary files)。リブート時に内容が保持されない。 |
/usr |
User Services and Routines の略。ファイルシステムで二番目に主要なセクション。FHS準拠の様々なホスト間で共有可能であるべき。リードオンリーのデータで書込禁止にすべき。大部分の(マルチ)ユーザ・ユーティリティとアプリケーションを格納する。 |
/usr/bin |
一般ユーザ向けだが基本的ではないコマンドの実行ファイル(シングルユーザモードで必要としない)。 |
/usr/include |
標準includeファイル群 |
/usr/lib |
/usr/bin/ や/usr/sbin/ にある実行ファイルの基本となるライブラリ(library)群。 |
/usr/sbin |
基本的でないシステム実行ファイル群。例えば、各種ネットワークサービス用デーモンなど。 |
/usr/share |
アーキテクチャに依存しない共有(shared)データ |
/usr/src |
ソースコード (Source code)。例えば、カーネルのソースコードとそのヘッダファイル群など。 |
/usr/X11R6 |
X Window System, Version 11 Release 6 |
/usr/local |
ホスト固有のローカル (local) データを格納する第三階層。通常、さらにサブディレクトリとして bin/ 、lib/ 、share/ などを持つ。 |
/var |
可変 (Variable) なファイル群。内容が常に変化するようなファイル群を格納する。例えば、ログ、スプール、一時的電子メールファイルなど。別パーティションとすることもある。 |
/var/cache |
アプリケーションのキャッシュデータ。時間のかかるI/Oや計算によって生成されたデータなど。従って再度生成することも可能なので、削除してもデータが失われるわけではない(時間は無駄となる可能性がある)。 |
/var/lib |
状態情報。プログラムの実行によって更新された永続性データなど。例えばデータベース、パッケージングシステムのメタデータなど。 |
/var/lock |
ロック(Lock)ファイル群。使用中リソースを保持するファイル。 |
/var/log |
ログ(Log)ファイル。各種ログ。 |
/var/mail |
ユーザーのメールボックス(mail-box) |
/var/run |
最近のブート以降の走行中(runing)システムに関する情報。例えば現在ログイン中のユーザー、走行中のデーモンなど。FHS3.0 では/var/run は/run に置き換えられる。システムは後方互換性のために/var/run を提供するか、/var/run から/run へのシンボリックリンクを提供しなければならない[27]。 |
/var/spool |
処理待ち状態のタスクのスプール(spool)。例えばプリントキュー、未読メールなど。 |
/var/spool/mail |
互換のために残された、かつてのユーザーのメールボックス(mail-box)の場所。 |
/var/tmp |
一時ファイル置場(Temporary files)。/tmp と異なり、リブートしても内容が失われることはない。 |
Wikipediaから重要っぽいところを抜き出した。
勝手に分類してみた
分類 | ディレクトリ |
---|---|
ブート | /boot |
デバイス | /dev |
/mnt | |
/media | |
ユーザ | /home |
/root | |
サービス(常時実行) | /srv |
アプリケーション(一時実行) | /usr |
/bin | |
/lib | |
/sbin | |
設定 | /etc |
/opt | |
状態 | /run (/var/run ) |
/proc | |
データ | /var |
/tmp |
パーティション
ディレクトリ構成の説明をみると、結構パーティションを分けるらしい。
ディレクトリ | 理由 |
---|---|
/boot |
ブートローダーが読めるファイルシステムの種類が限られているため(FAT16等) |
/home |
システムとユーザデータを分離するため。データ量が多いため。 |
/var |
書込頻度が高いため。データ量が多いため。 |
所感
Windows XP ではC:/
がシステムドライブ、C:/WINDOWS/system32/
にシステムデータなどだった。
Linuxの構成が把握できたら理解が進みそう。
自分で作成したソースコードやテキストなどは/home
に保存するのだろうか。