各ディレクトリの役割(FHS)

 Linuxシステムは多くのディレクトリで構成されていますが、すべてを紹介するのは困難です。そこで、本章では特に重要なディレクトリを取り上げて、その役割を簡潔に解説します。ディストリビューションによってディレクトリ構造に若干の違いはありますが、ここで紹介するディレクトリはどのシステムでも同じ役割を持つ代表的なものばかりです。

 Linuxのディレクトリ構成は、FHS(Filesystem Hierarchy Standard)という標準化仕様に基づいています。FHSはファイルシステムの階層構造と各ディレクトリの役割を定めており、異なるディストリビューション間でも一貫性を保つためのガイドラインとなっています。より詳しく知りたい方は、以下のFHSのWebページから仕様書のPDFファイルをダウンロードできます。

主なディレクトリとその役割

以下に、FHSで定義されている主なディレクトリとその役割を表にまとめます。

ディレクトリ役割
/ルートディレクトリ。ファイルシステムの最上位に位置し、すべてのファイルがここから始まる。
/bin基本的なコマンドが格納される。一般ユーザーと管理者が使用する必須コマンドを含む。
/bootシステムの起動に必要なファイルが格納される。カーネルやブートローダの設定ファイルなど。
/devデバイスファイルが配置される。ハードウェアデバイスをファイルとして扱う。
/etcシステム全体の設定ファイルが格納される。各種サービスやアプリケーションの設定を含む。
/home一般ユーザーのホームディレクトリが格納される。ユーザーデータや個人設定を保存。
/libシステムの基本的な共有ライブラリが格納される。プログラムの動作に必要なライブラリを含む。
/mediaリムーバブルメディアのマウントポイント。USBやCD/DVDなどをマウントして利用する。
/mnt一時的なマウントポイント。システム管理者が一時的にファイルシステムをマウントする際に使用。
/optサードパーティ製の追加アプリケーションが格納される。独立したディレクトリ構成を持つ。
/procカーネルやプロセス情報を扱う仮想ファイルシステム。システムの動的な情報を提供。
/rootシステム管理者(rootユーザー)のホームディレクトリ。一般ユーザーの/homeとは別。
/runシステム起動時に作成される一時ファイルを格納。PIDファイルやソケットファイルなど。
/sbinシステム管理用の基本コマンドが格納される。管理者が使用するコマンドを含む。
/srvサーバーが提供するデータが格納される。ウェブやFTPなどのデータを配置。
/sysシステムやデバイス情報を提供する仮想ファイルシステム。ハードウェア情報にアクセス。
/tmp一時ファイルが格納される。再起動時に内容が消去されることが多い。
/usrユーザーが共通して使用するプログラムやライブラリが格納される。多くのアプリケーションがここに配置。
/var可変データが格納される。ログファイルやメールキュー、スプールなど。
主なディレクトリとその役割

各ディレクトリの詳細

/ (ルートディレクトリ)

  • 役割: ファイルシステムの最上位ディレクトリで、すべてのファイルやディレクトリがこの下に存在します。
  • 特徴: システムの基盤となるディレクトリであり、他のすべてのディレクトリがここから枝分かれしています。

/bin

  • 役割: 一般ユーザーとシステム管理者が共通して使用する基本的なコマンドを格納します。
  • ls, cp, mv, cat, bash など。

/boot

  • 役割: システムの起動に必要なファイルを格納します。
  • 特徴: カーネルイメージ(vmlinuz)やブートローダの設定ファイル(grubディレクトリ)が含まれます。

/dev

  • 役割: ハードウェアデバイスをファイルとして表現したデバイスファイルが格納されます。
  • 特徴: 例えば、/dev/sda はハードディスクを表し、/dev/tty はターミナルデバイスを表します。

/etc

  • 役割: システム全体の設定ファイルや起動スクリプトが格納されます。
  • 特徴: ユーザーやグループの情報を持つ passwd ファイルや、ネットワーク設定ファイルなどが含まれます。

/home

  • 役割: 一般ユーザーのホームディレクトリが配置されます。
  • 特徴: 各ユーザーは /home/ユーザー名 のディレクトリを持ち、個人のデータや設定ファイルを保存します。

/lib

  • 役割: システムの基本的な共有ライブラリが格納されます。
  • 特徴: プログラムの実行時に必要なライブラリ(libc.so など)が含まれます。

/media

  • 役割: リムーバブルメディア(USBメモリ、CD/DVDなど)のマウントポイントとして使用されます。
  • 特徴: メディアを挿入すると、自動的にサブディレクトリが作成され、そこにマウントされます。

/mnt

  • 役割: 一時的にファイルシステムをマウントするためのディレクトリです。
  • 特徴: システム管理者が手動でディスクやネットワークストレージをマウントする際に使用します。

/opt

  • 役割: サードパーティ製の追加アプリケーションを格納します。
  • 特徴: 独立したディレクトリ構成を持つアプリケーションを配置し、システムの他の部分に影響を与えないようにします。

/proc

  • 役割: カーネルやプロセス情報を提供する仮想ファイルシステムです。
  • 特徴: システムの状態やプロセス情報をファイルとして参照できます。

/root

  • 役割: システム管理者(rootユーザー)のホームディレクトリです。
  • 特徴: 一般ユーザーのホームディレクトリ /home とは別に設けられています。

/run

  • 役割: システムの起動時に作成される一時的なランタイムデータを格納します。
  • 特徴: PIDファイルやソケットファイルなど、一時的なデータが含まれます。

/sbin

  • 役割: システム管理用の基本コマンドが格納されます。
  • 特徴: システムの起動、修復、復旧に必要なコマンド(fsck, ifconfig など)が含まれます。

/srv

  • 役割: サーバーが提供するデータやサービスに関連するファイルを格納します。
  • 特徴: ウェブサーバーのデータやFTPサーバーのデータなどが配置されます。

/sys

  • 役割: システムやデバイスの情報を提供する仮想ファイルシステムです。
  • 特徴: ハードウェアの状態や設定を確認・変更できます。

/tmp

  • 役割: 一時ファイルを格納します。
  • 特徴: システムやアプリケーションが一時的に使用するファイルを保存し、再起動時に削除されることが多いです。

/usr

  • 役割: ユーザーが共通して使用するプログラムやライブラリ、ドキュメントなどが格納されます。
  • 特徴/usr/bin(追加のコマンド)、/usr/lib(ライブラリ)、/usr/share(共有データ)など、多くのサブディレクトリを持ちます。

/var

  • 役割: 可変データファイルが格納されます。
  • 特徴: ログファイル(/var/log)、メールキュー(/var/mail)、印刷キュー(/var/spool)などが含まれます。

まとめ

 Linuxのディレクトリ構成は、FHS(Filesystem Hierarchy Standard)によって標準化されており、システム管理者やユーザーがどのディレクトリにどのようなファイルが存在するかを理解しやすくなっています。主要なディレクトリとその役割を把握することで、システムの管理やトラブルシューティングが容易になります。

 Linuxシステムを効果的に利用するためには、これらのディレクトリの役割を正しく理解し、適切に活用することが重要です。特に設定ファイルやログファイルの場所を知っておくことで、問題解決の際に大いに役立ちます。