#はじめに
LinuxのFHSの構造について曖昧だったので、自分用にまとめました。
Linuxの勉強を始めた初心者の方にも参考にしていただければと思います。
#FHSの構造
Linuxにおけるディレクトリ構成の基本ルールをFile Hierarchy Standard(FHS)と呼びます。
FHSにおいて、/
ディレクトリ直下のディレクトリ構造は以下のように定義されています。
ディレクトリ名 | 用途 | 静的 | 共有可能 |
---|---|---|---|
/ | ルートディレクトリ | ||
/bin | 基本コマンド | ||
/boot | システムを起動するために必要なファイル | × | |
/dev | デバイスファイル | × | |
/etc | システムやミドルウェアに関する設定ファイル | ○ | × |
/home | ユーザのホームディレクトリ | ○ | |
/lib | /binや/sbinにあるコマンドを実行するのに必要なライブラリ | ||
/media | リムーバブルメディアのマウント場所 | ||
/mnt | 一時的なファイルシステムのマウント場所 | ||
/opt | パッケージ管理システムでインストールされたプログラム | ○ | |
/proc | プロセスの実行状況(CPU, メモリ, FSの使用状況など)を記載したファイル | ||
/root | rootユーザのホームディレクトリ | ||
/run | 実行中プロセスのデータ | ||
/sbin | システム管理者用のコマンド(起動・停止・再起動) | ||
/srv | システムで動くサーバ用のデータ | ||
/sys | カーネル・システム情報の疑似ファイルシステム | ||
/tmp | 仮想メモリ上の一時ファイル | ||
/usr | 第2の階層、ユーザが共通的に利用するプログラムやライブラリ | ○ | ○ |
/var | 可変データ(ログ /var/log、ロックファイル /var/lock、キャッシュ /var/cacheなど) | × | △ |
ディレクトリによって、以下の性質が異なります。
- ディレクトリ下の階層が静的(書き換わらない)かどうか
- ディレクトリを複数のマシン間で共有できるかどうか
また、/usr
には、/
と同様に/bin
/sbin
lib
のディレクトリがあり、コマンドやライブラリが置かれます。
FHSの定義では、/
直下のディレクトリ側には、システムの起動・復元・復旧・修復するのに必要なコマンド群を置くべきだとされているみたいです。