
新Linux入門|FHS準拠で理解するLinuxディレクトリ構造と管理の基本
Linuxを触っていると、「/bin」や「/etc」、「/usr」など、いろいろなディレクトリがあってちょっと混乱しますよね。
でも実は、これらのディレクトリにはきちんとしたルールがあるんです。
そのルールを定めているのが、FHS(Filesystem Hierarchy Standard) です。
これは「Linuxでファイルやディレクトリをどの場所に配置するか」を標準化した規格で、
多くのLinuxディストリビューション(AlmaLinux、Ubuntu、Debianなど)がこれに準拠しています。
このFHSを理解することで、システムの構造がスッキリ見えるようになります✨

🗂️ FHSとは?
FHS(Filesystem Hierarchy Standard)は、Linuxシステムで「どのファイルをどのディレクトリに置くか」を定義した標準仕様です。
目的は、どのディストリビューションでも共通した構成を持たせることで、管理や移行をしやすくすることです。
| 項目 | 内容 |
|---|---|
| 名称 | Filesystem Hierarchy Standard(ファイルシステム階層標準) |
| 主な目的 | Linuxシステム内のディレクトリ構造を統一する |
| メリット | 管理者がシステムを理解しやすく、スクリプトやアプリの互換性が高まる |
| 適用対象 | AlmaLinux、Rocky、Debian、Ubuntu など主要ディストリビューション |
💬 つまり、「どのLinuxでも /etc に設定ファイルがある」「/home にユーザーのデータがある」というように、共通のルールで整理されているんです。
🗃️ 主なディレクトリ構造とその役割
FHSに基づいたLinuxのディレクトリ構造はツリー型になっています。
最上位にはルートディレクトリ / があり、そこから各種ディレクトリが枝分かれしています。
| ディレクトリ | 役割 |
|---|---|
| / | ルートディレクトリ。すべてのファイルシステムの出発点(親ディレクトリ)。 |
| /bin | 一般ユーザーや管理者が使う基本的なコマンド(cat, cp, mv, lsなど)を格納。 |
| /boot | システム起動に必要なカーネルやGRUBなどのブートローダ関連ファイルを格納。 |
| /dev | デバイスファイルを格納(ディスクやUSBなどの仮想デバイス表現)。 |
| /etc | システム全体の設定ファイルを格納(例:/etc/passwd, /etc/fstab)。 |
| /home | 一般ユーザー(suzukiなど)のホームディレクトリを格納。 |
| /lib | プログラム実行に必要な共有ライブラリを格納。 |
| /media | USBメモリやDVDなどリムーバブルメディアのマウント先。 |
| /mnt | 一時的なマウントポイント(テストや手動マウントに利用)。 |
| /opt | サードパーティ製アプリケーションをインストールする場所。 |
| /proc | カーネルやプロセス情報を提供する仮想ファイルシステム。 |
| /root | rootユーザーのホームディレクトリ。 |
| /run | 起動中のシステムやサービスのランタイムデータを格納。 |
| /sbin | システム管理用のコマンド(shutdown, fdisk, mkfsなど)を格納。 |
| /srv | サーバーで提供するデータを格納(例:/srv/www)。 |
| /sys | カーネルパラメータやデバイス情報を表示する仮想ファイルシステム。 |
| /tmp | 一時ファイルを格納(再起動時に削除される)。 |
| /usr | システム全体で利用するプログラムやライブラリを格納。詳細は下記参照。 |
| /var | 変動するデータ(ログ、メール、キャッシュなど)を格納。 |
📂 /usr ディレクトリの構成(ユーザープログラム関連)
| ディレクトリ | 役割 |
|---|---|
| /usr/bin | 一般ユーザーが利用するアプリケーションを格納。 |
| /usr/sbin | 管理者が利用するシステムコマンドを格納。 |
| /usr/lib | /usr/bin 内の実行ファイルが利用する共有ライブラリ。 |
| /usr/local | 管理者が手動で追加インストールしたプログラムを格納。 |
| /usr/share | 共通データ(ドキュメント・ヘルプ・言語リソースなど)を格納。 |
| /usr/src | ソースコードやカーネルソースを格納。 |
📦 /var ディレクトリの構成(可変データ関連)
| ディレクトリ | 役割 |
|---|---|
| /var/log | システムログを格納(例:/var/log/messages, /var/log/secure)。 |
| /var/cache | アプリケーションのキャッシュデータを格納。 |
| /var/spool | メールや印刷ジョブの一時データを格納。 |
| /var/tmp | 長期的な一時ファイルを格納(再起動後も残ることがある)。 |
💡ポイント
/usr は「静的データ(プログラム本体)」、/var は「動的データ(ログやキャッシュ)」を扱う、という違いを覚えておくと整理しやすいですよ!
🧰 ディレクトリの確認に使えるコマンド
① lsコマンド
ファイルやディレクトリの一覧を表示します。
[suzuki@AlmaLinux ~]$ ls /
afs boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var| オプション | 説明 |
|---|---|
| -l | 詳細表示(権限・所有者・サイズなど) |
| -a | 隠しファイルも表示 |
| -h | サイズを人が読みやすい単位で表示 |
| -R | サブディレクトリも再帰的に表示 |
② treeコマンド
ディレクトリ構造をツリー形式で表示します(dnf install tree でインストール可能)。
[suzuki@AlmaLinux ~]$ tree -L 1 /
/
├── afs
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
20 directories, 0 files💬 -L 1 は階層の深さを指定するオプション。1にすると最上位のみ表示します。
🌈 まとめ
- FHS(Filesystem Hierarchy Standard)は、Linuxディレクトリ構造を統一するための標準規格。
- / をルートとして、役割ごとに細かくディレクトリが分類されている。
- /usr や /var などの構成を理解することで、トラブルシューティングや管理がスムーズになる。
- AlmaLinux 9.6 もFHSに準拠しており、他のディストリビューションと共通の理解が通用する。
FHSを理解すると、Linuxの世界がぐっとシンプルに見えるようになりますよ😊
次からは、「どのディレクトリに何があるのか」を意識してシステムを眺めてみましょう!
