Linux の主要なディレクトリ構造とその由来・内容

Linux には、**ファイルシステム階層標準（FHS: Filesystem Hierarchy Standard）** というルールに従ったディレクトリ構造があります。  
これにより、どの Linux ディストリビューションでも **ほぼ同じディレクトリ構造** になっています。

それぞれのディレクトリの **由来（名前の意味）** と **何が入っているか** を詳しく解説します！



## **📌 1. `/bin`（Binary）**
**由来:** 「Binary（バイナリ）」の略  
**何が入ってる？**  
- **基本的なコマンドが入っているディレクトリ**
- システム管理者と一般ユーザーが使う **最低限の実行ファイル**（バイナリ）

📌 **具体的なコマンド例**
```bash
/bin/ls      # ディレクトリの内容を表示
/bin/cp      # ファイルをコピー
/bin/mv      # ファイルを移動
/bin/rm      # ファイルを削除
/bin/sh      # シェル（Bash など）
```
💡 **ポイント:**  
`/bin` にあるコマンドは **シングルユーザーモード**（トラブル時に最低限の機能だけで起動するモード）でも使える。



## **📌 2. `/dev`（Devices）**
**由来:** 「Devices（デバイス）」の略  
**何が入ってる？**  
- **デバイスファイル（仮想ファイル）が入っているディレクトリ**
- **すべてのハードウェア（HDD、USB、マウス、キーボードなど）がファイルとして管理される**

📌 **具体的なデバイス例**
```bash
/dev/sda     # 最初のHDD（SATAやSSD）
/dev/tty     # 端末（コンソール）デバイス
/dev/null    # 何でも捨てられるブラックホール
/dev/random  # ランダムデータを生成
```
💡 **ポイント:**  
デバイスは **すべてファイルとしてアクセスできる** のが Linux の特徴！



## **📌 3. `/etc`（Etcetera または Editable Text Configuration）**
**由来:**  
- 「Etcetera（その他）」の略と言われることが多いが、  
- 実際には「Editable Text Configuration（編集可能な設定ファイル）」の意味があるとも言われる。

**何が入ってる？**  
- **システム全体の設定ファイル**  
- 各種サービスの設定、ユーザー情報、ネットワーク設定など。

📌 **具体的な設定ファイル例**
```bash
/etc/passwd   # ユーザー情報
/etc/shadow   # パスワード情報
/etc/fstab    # マウント設定（ディスク管理）
/etc/hosts    # ホスト名設定
/etc/network/ # ネットワーク設定
```
💡 **ポイント:**  
`/etc` にあるファイルを変更すると **システムの挙動が変わる** ので、慎重に扱う！



## **📌 4. `/home`（Home）**
**由来:** 「Home（ホーム）」の意味  
**何が入ってる？**  
- **各ユーザーの個人データ（ドキュメント、設定、ダウンロードファイルなど）**  
- ユーザーごとに `/home/ユーザー名` のディレクトリが作られる。

📌 **具体的なファイル例**
```bash
/home/user/     # userさんのホームディレクトリ
/home/alice/    # aliceさんのホームディレクトリ
```
💡 **ポイント:**  
- **`root` ユーザーのホームディレクトリは `/root` にある！（`/home/root` ではない）**
- `/home` は **ユーザーの個人データを保存する場所** なので、バックアップの対象にすることが多い。



## **📌 5. `/sbin`（System Binaries）**
**由来:** 「System Binaries（システム用バイナリ）」の略  
**何が入ってる？**  
- **システム管理に必要なコマンドが入っているディレクトリ**
- `root`（管理者）しか使わないコマンドが多い。

📌 **具体的なコマンド例**
```bash
/sbin/shutdown  # システムのシャットダウン
/sbin/reboot    # システムの再起動
/sbin/ifconfig  # ネットワーク設定
/sbin/mount     # ディスクをマウント
```
💡 **ポイント:**  
`/bin` は一般ユーザーも使うが、`/sbin` のコマンドは **管理者(root)向け**！



## **📌 6. `/tmp`（Temporary）**
**由来:** 「Temporary（一時的な）」の意味  
**何が入ってる？**  
- **一時ファイルが置かれるディレクトリ**
- プログラムが **一時的にデータを保存する場所**（再起動すると消える）

📌 **具体的なファイル例**
```bash
/tmp/log123.tmp   # 一時的なログファイル
/tmp/sess_abc123  # セッションデータ
```
💡 **ポイント:**  
- `/tmp` にあるファイルは、システム再起動時に自動的に削除される。



## **📌 7. `/usr`（Unix System Resources）**
**由来:**  
- 「User」ではなく **「Unix System Resources（Unix システムリソース）」の略**！  
- 昔はユーザーのデータを置く場所だったが、今はシステムファイルも含まれる。

**何が入ってる？**  
- **システム全体で使うアプリやライブラリが入っている**
- **ユーザーがインストールするアプリケーションの実行ファイル**

📌 **サブディレクトリ**
```bash
/usr/bin/      # 一般ユーザー向けコマンド
/usr/sbin/     # システム管理者向けコマンド
/usr/lib/      # ライブラリ
/usr/share/    # ドキュメントやアイコン
```
💡 **ポイント:**  
- `/usr/bin` にあるコマンドは `/bin` にあるコマンドより追加的なもの。
- `/usr/sbin` は `/sbin` と似ているが、追加的な管理コマンドが入っている。



## **📌 8. `/var`（Variable）**
**由来:** 「Variable（変化する）」の意味  
**何が入ってる？**  
- **システムが生成するログや、一時的なデータが入る**
- 変化するデータ（ログファイル、メール、キャッシュなど）を保存

📌 **具体的なディレクトリ**
```bash
/var/log/       # システムログ
/var/tmp/       # 長期間の一時ファイル
/var/spool/     # メールキューや印刷ジョブ
```
💡 **ポイント:**  
- `/tmp` は再起動時に消えるが、`/var/tmp` は消えない。
- `/var/log` には **システムの動作ログ** が記録されるので、トラブル時に確認する。



## **📌 まとめ**
| ディレクトリ | 由来 | 何が入ってる？ |
|------------|------|-------------|
| `/bin`  | Binary | 基本的なコマンド |
| `/dev`  | Devices | デバイスファイル |
| `/etc`  | Editable Text Configuration | 設定ファイル |
| `/home` | Home | ユーザーの個人フォルダ |
| `/sbin` | System Binaries | システム管理用コマンド |
| `/tmp`  | Temporary | 一時ファイル（再起動で消える） |
| `/usr`  | Unix System Resources | システム全体のプログラムやライブラリ |
| `/var`  | Variable | 変化するデータ（ログ、キャッシュなど） |

**これで Linux のディレクトリ構造がバッチリ理解できるはず**