Linuxのディレクトリ構造と歴史

· 820 words · 2 minute read

歴史的背景

昔はハードディスクの容量が小さかったので、起動時に必要なファイルと必要でないファイルでディレクトリを分けていた。その後「起動時に必要でないファイル」というざっくりした分け方からすこしずつ整理されて今に至る。

もともとUnix系OSには、ごく基本的な部分の共通するディレクトリ以外は慣習的な緩いルールと開発元ごとのルールがあるだけだった。このため各ディストリビューションの互換性を保つためにFHS(ファイルシステム・ヒエラルキー・スタンダード/ファイルシステム階層標準)が策定された。

現在はディレクトリごとに容量は変わらないことが多いのでどこにどんなデータをおいても理論上は問題ないが、FHSに従うのが望ましい(ファイルシステム階層 標準 なので)。

基本的なディレクトリ

/etc/profile.d

  • サーバ共通の環境変数を設定するファイル置き場
    • ログインしたときに/etc/profile.dの.shファイルが全て実行される
  • 全ユーザにPATHを追加するときは/etc/profile.dにshファイルを追加する
  • 特定のユーザにPATHを追加するときは/.bash_profileに追加する

/bin

  • システムで使う基本的なコマンドを格納

/sbin

  • システムで使う管理者用の基本的なコマンドを格納

/usr/bin

  • アプリケーションで使う基本的なコマンドを格納

/usr/sbin

  • アプリケーションで使う管理者用の基本的なコマンドを格納

/usr/local/bin

  • 追加したアプリケーションで使うコマンドを格納

/usr/local/sbin

  • 追加したアプリケーションで使う管理者用のコマンドを格納

systemd

/usr/lib/systemd/system

  • OSデフォルトで設定されているサービスや、yum などで提供されているソフトウェアをインストールした際のデフォルト設定

/etc/systemd/system/

  • サーバーの管理者が独自に変更・編集した設定ファイル
  • 同名の設定ファイルが設置された場合は、 /etc/systemd/system の設定ファイルが優先される

その他

/etc/default/

  • ブートローダー用
    • BIOS起動後、OSが起動する前に読み込まれるファイル群
    • デーモンが起動する前に読み込まれるので、デーモンの設定ファイルをここにおく