やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Linuxのファイル構成について調べてみた

Linuxのファイル構成について調べてみた。

参考

FHS

Linuxディレクトリ構成が標準化されているらしい。

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に保存するのだろうか。