Linuxのディレクトリ配置は、一見すると複雑だが、実はFHS(Filesystem Hierarchy Standard)という世界共通のルールに沿って整理されている。この規格のおかげで、異なる種類のディストリビューションを使っても、設定ファイルや実行プログラムの場所に迷わずに済む。
FHSを意識してファイルを管理すると、システム全体のバックアップが取りやすくなる。また、トラブルが起きた際の原因特定もスムーズに進む。OS自体のデータとユーザーが作成したデータを切り分けて管理できるため、万が一システムが壊れても大切な書類を守りやすくなる。
Linux ファイル構造

これはmanjaro KDEの画像だが、このファイル管理ソフトの左側下rootを選ぶと、複数のフォルダが表示される。ディストリビューションによって名称が異なり、『コンピューター』などと表示されていることもある。
Linuxのファイル構造は、木が枝分かれするような「ツリー構造」で整理されている。この木の根元にあたる最上位の階層をルートディレクトリと呼び、記号の「 / 」で表す。
普段、私たちが作成する書類や画像などのデータは、すべて /home というディレクトリの中に保存される。実は、日常的なパソコン操作で触れているのは、この /home の中身がほとんどだ。
自分の作業スペース以外、つまり /home 以外のディレクトリにあるファイルを変更するには、管理者権限(sudoコマンド)が必要になる。システムの動作に関わる重要なファイルが不用意に書き換えられ、OSが動かなくなるトラブルを防ぐためだ。
Windowsではデータの入れ物を『フォルダ』と呼ぶのが一般的だが、Linuxを含むUNIX系のOSでは伝統的に『ディレクトリ』と呼ぶ。呼び方は異なるが、書類を分類して保管する場所という役割に違いはない。Windowsでは明確に『フォルダ』と呼び『ディレクトリ』とは呼ばない。
LinuxのLinuxなどのUNIX系のOSのディレクトリ配置には、FHS(Filesystem Hierarchy Standard)という標準仕様が存在する。これは「どのディレクトリに何を置くか」を定めた世界共通のルールだ。
Filesystem Hierarchy Standard(ファイルシステム・ハイアラーキー・スタンダード、FHS、ファイルシステム階層標準)は、Linuxを含むUnix系オペレーティングシステム (OS) での主なディレクトリとその内容を定めたものである。大部分において、BSD系のディレクトリ階層を基にして拡張し定式化している。
https://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
ホームは/homeで、システム管理コマンドは/sbinに収められているのが原則だ。
ls /
出力:
./ ../ bin@ boot/ dev/ etc/ home/ lib@ lib32@ lib64@ lost+found/ media/ mnt/ opt/ proc/ root/ run/ sbin@ sys/ tmp/ usr/ var/
このコマンドを打つと、/bin や /etc といった多くのディレクトリが表示される。これらは無秩序に配置されているわけでなく、どのディストリビューションでも似たような構成だ。これはFHSという指針があるからだ。このルールのおかげで、特定のディレクトリが何のための場所なのかを推測でき、メンテナンスの効率が良くなる。
FHSと標準にしているとはいえ、すべてのOSが全く同じ構造ではなくディストリビューションにより少し異なる。FHSとは全く異なるディレクトリ階層のLinuxも存在する。
主要ディレクトリと用途
Linuxのディレクトリ名は、その役割を英語で略したものが多い。名前の由来を知れば、どこに何があるのかを自然に連想できるようになる。
| ディレクトリ | 語源・由来 | 具体的な役割と用途 |
|---|---|---|
/bin | binary(バイナリ) | 全ユーザーが使う基本コマンド(ls, cp など)の実行ファイルがある |
/boot | boot(起動) | OS起動に必要なカーネルや初期RAMディスク(initramfs)を配置 |
/dev | device(デバイス) | ディスクやキーボードなどのデバイスをファイルとして扱う窓口 |
/etc | etcetera(その他 / 編集可能設定) | システム全体の設定ファイル群(ネットワーク・ユーザー設定など) |
/home | home(家) | 一般ユーザーの個人データ保存領域 |
/lib | library(ライブラリ) | 実行に必要な共有ライブラリ(WindowsのDLL相当) |
/media | media(媒体) | USBメモリ等のリムーバブルメディア自動マウント先 |
/mnt | mount(マウント) | 管理者が手動で一時マウントするための領域 |
/opt | optional(オプション) | 追加インストールする大規模アプリの配置場所 |
/proc | process(プロセス) | プロセス情報やメモリ状態を提供する仮想ファイルシステム |
/root | root(根) | 管理者(rootユーザー)専用ホームディレクトリ |
/sbin | system binary | システム管理用の重要コマンドを格納 |
/srv | service(サービス) | Web/FTPなど外部提供サービスのデータ置き場 |
/tmp | temporary(一時的) | 一時ファイル保存場所(再起動で消える設定が多い) |
/usr | user service resources | 共有読み取りデータ・アプリ本体・マニュアル等を格納 |
/usr/bin | usr binary | 追加アプリの実行ファイル(一般ユーザー用) |
/usr/local | usr local | 管理者が手動インストールしたソフト用領域 |
/usr/share | usr share | 環境非依存の共有データ(アイコン・文書など) |
/var | variable(可変) | ログ・メール・キャッシュなど増え続けるデータ |
/sys | system(システム) | カーネルが認識するハードウェア情報を提供する仮想領域 |
似た名前のディレクトリを区別するコツ
Linuxには /bin、/usr/bin、/usr/local/bin など、似たような名前が複数存在する。これらは「重要度」や「誰が用意したか」で分かれている。
- 直下のディレクトリ(/binなど):システムの起動に最低限必要なもの。
- usrの下(/usr/binなど):パッケージ管理ソフト(aptやpacman)が後から入れたもの。
- localの下(/usr/local/binなど):ユーザーが自分でソースからビルドして入れたもの。
このように分類を理解すると、ソフトをインストールした際に「実行ファイルがどこに消えたか」と慌てることもなくなる。まずは自分のPCで ls / と打ちこの表と見比べてみよう。



