新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プログラム実行に必要な共有ライブラリを格納。
/mediaUSBメモリやDVDなどリムーバブルメディアのマウント先。
/mnt一時的なマウントポイント(テストや手動マウントに利用)。
/optサードパーティ製アプリケーションをインストールする場所。
/procカーネルやプロセス情報を提供する仮想ファイルシステム。
/rootrootユーザーのホームディレクトリ。
/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の世界がぐっとシンプルに見えるようになりますよ😊
次からは、「どのディレクトリに何があるのか」を意識してシステムを眺めてみましょう!