Linuxのディレクトリ構造を一覧で理解する|/etc・/var・/usr・/homeの役割と使い分け

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > Linuxのディレクトリ構造を一覧で理解する|/etc・/var・/usr・/homeの役割と使い分け
「ls / を実行したら見慣れないディレクトリが並んで、どれが何なのかわからない」
「/etc と /var と /usr、それぞれ何を入れる場所なの?」

Linuxを使い始めると、ルート直下に大量のディレクトリが並んでいることに気づきます。
Windowsとは全く異なる構造で、最初は戸惑うのが普通です。

この記事では、Linuxのディレクトリ構造を規定するFHS(Filesystem Hierarchy Standard)の概念から、
実際にどのディレクトリに何が入っているかを、コマンド実行例つきで解説します。
RHEL 9.4 / Ubuntu 24.04 LTS で動作確認済みの内容です。

この記事のポイント

・LinuxのディレクトリはFHS(国際標準規格)で役割が決まっている
・/etc=設定ファイル、/var=可変データ、/usr=ユーザープログラムが三大基本
・/proc と /dev はファイルに見えてカーネルへのインタフェース
・ls / でルート直下の構造を一度確認しておくと全体把握が速い


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

FHS(Filesystem Hierarchy Standard)とは

1. ディレクトリ構造に「ルール」がある理由

Linuxのディレクトリ配置は、FHS(Filesystem Hierarchy Standard)という国際標準に従っています。
これは「どのLinuxディストリビューションを使っても、同じ場所に同じ種類のファイルが置かれる」
ことを保証するための取り決めです。

FHSがあるおかげで、Ubuntu で覚えた場所が Rocky Linux でも通用します。
サーバー管理の現場でも「設定ファイルは /etc」「ログは /var/log」という知識が共通言語になっています。

2. ls / で全体を俯瞰する

まずは実際に ls / を実行してみましょう。

$ ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

これがLinuxのルートディレクトリ直下の全ディレクトリです。
次のセクションから、各ディレクトリの役割を詳しく見ていきます。

主要ディレクトリの役割と代表ファイル

1. /etc — 設定ファイルの格納庫

サーバー管理で最もよく触れるディレクトリです。
各サービスの設定ファイルが集中しています。

# /etc の代表的なファイル $ ls /etc/ | head -20 adjtime aliases apache2/ # Apacheの設定(Ubuntu系) bash.bashrc crontab # cronの設定 fstab # ファイルシステムマウント設定 hostname # ホスト名 hosts # ホスト名とIPの対応 httpd/ # Apacheの設定(RHEL系) passwd # ユーザーアカウント情報 resolv.conf # DNS設定 shadow # パスワードハッシュ(root権限で読む) ssh/ # SSHデーモン設定 sudoers # sudo権限設定 # ホスト名の確認 $ cat /etc/hostname server01.example.com # DNS設定の確認 $ cat /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4

2. /var — 変化するデータの置き場

「variable(可変)」の略です。
ログファイル、キャッシュ、メールスプール、データベースのデータファイルなど、
運用中に増減するファイルが置かれます。

# ログの確認(システムログ) $ tail -20 /var/log/messages Apr 07 09:12:34 server01 kernel: eth0: renamed from veth3a2b1c Apr 07 09:15:01 server01 CROND[12345]: (root) CMD (/usr/lib/sa/sa1 1 1) Apr 07 09:25:01 server01 systemd[1]: Started Session 42 of User tanaka. # /var のサブディレクトリ $ ls /var/ cache lib lock log mail run spool tmp www # Webサーバーのドキュメントルート(Ubuntu) $ ls /var/www/html/ index.html css/ js/ images/ # ディスク使用量確認(varが肥大化しやすい) $ du -sh /var/log/ 1.2G /var/log/

3. /usr — ユーザー向けプログラムとライブラリ

「Unix System Resources」の略です。
パッケージマネージャでインストールしたプログラム・ライブラリが格納されます。

/usr/bin:一般ユーザーが使うコマンド(ls, cp, grep など)
/usr/sbin:管理者向けコマンド(useradd, sshd など)
/usr/lib:共有ライブラリ(.so ファイル)
/usr/local:手動インストールしたソフトウェアの置き場
/usr/share:アーキテクチャ非依存のデータ(マニュアル、アイコンなど)

# which コマンドで実行ファイルの場所を確認 $ which ls /usr/bin/ls $ which useradd /usr/sbin/useradd # /usr/local は手動インストールの場所 $ ls /usr/local/ bin etc include lib sbin share src

4. /home — 一般ユーザーのホームディレクトリ

一般ユーザーの個人ファイルが置かれます。
ユーザー tanaka のホームは /home/tanaka です。

# ホームディレクトリの確認 $ ls /home/ tanaka yamada suzuki # 自分のホームディレクトリへ移動 $ cd ~ $ pwd /home/tanaka # ドットファイル(設定ファイル)もホームに置かれる $ ls -a ~ . .. .bash_history .bash_profile .bashrc work documents

5. /tmp — 一時ファイルの置き場

プログラムが一時的に使うファイルを置く場所です。
再起動時にクリアされることが多いため、永続保存が必要なものは置かないでください。

# /tmp の内容確認(再起動後は消える) $ ls /tmp/ systemd-private-xxx tmux-1000 .X0-lock # 一時ファイルの作成例 $ echo "test data" > /tmp/work.txt $ cat /tmp/work.txt test data

6. /proc — カーネル情報へのインタフェース

/proc はディスクには存在しない仮想ファイルシステムです。
カーネルがリアルタイムに生成する情報を「ファイル」として読み出せます。

# CPUの詳細情報 $ cat /proc/cpuinfo | head -10 processor : 0 model name : Intel(R) Core(TM) i7-10700K @ 3.80GHz cpu MHz : 3800.000 cache size : 16384 KB # メモリの詳細情報 $ cat /proc/meminfo | head -5 MemTotal: 16384000 kB MemFree: 8192000 kB MemAvailable: 10240000 kB # 動作中のプロセス数確認 $ ls /proc/ | grep -E '^[0-9]+$' | wc -l 234

7. /dev — デバイスファイル

ハードディスク、端末、ランダムデバイスなどがファイルとして表現されます。

# ブロックデバイス(ストレージ)の確認 $ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 # /dev/null: 出力を捨てる際に使う $ command_that_outputs_too_much 2>/dev/null # /dev/random: ランダムなバイト列を生成 $ dd if=/dev/urandom bs=16 count=1 2>/dev/null | xxd 00000000: a3f2 7b1c 8e40 d9b5 6a2c e371 4f80 12c9 ..{..@..j,.qO...

8. /opt — サードパーティアプリの置き場

パッケージマネージャを使わず、独自にインストールしたアプリが置かれます。
Oracle JDK、Chrome、カスタムアプリなどが典型例です。

# /opt の確認例 $ ls /opt/ google/ oracle/ myapp/

ディレクトリ間の関係を理解する

1. /bin と /usr/bin の違い

歴史的に /bin はシングルユーザーモードでも使える最低限のコマンドを置く場所でした。
現代の多くのディストリビューション(RHEL 9、Ubuntu 22以降)では、
/bin/usr/bin へのシンボリックリンクになっています。

# RHEL 9 での確認 $ ls -la / | grep "bin\|sbin\|lib" lrwxrwxrwx 1 root root 7 /bin -> usr/bin lrwxrwxrwx 1 root root 9 /lib -> usr/lib lrwxrwxrwx 1 root root 11 /lib64 -> usr/lib64 lrwxrwxrwx 1 root root 8 /sbin -> usr/sbin

本記事のまとめ

ルート直下のディレクトリを役割別に整理します。
ディレクトリ 主な役割 代表的なファイル・用途
/etc 設定ファイル fstab, hostname, httpd/, ssh/, passwd
/var 可変データ(ログ等) /var/log/, /var/www/, /var/lib/
/usr ユーザープログラム /usr/bin/, /usr/lib/, /usr/local/
/home ユーザーホーム /home/ユーザー名/
/tmp 一時ファイル 再起動で削除される一時データ
/proc カーネル情報 /proc/cpuinfo, /proc/meminfo
/dev デバイスファイル /dev/sda, /dev/null, /dev/random
/opt 追加アプリ サードパーティソフトのインストール先
/boot ブートローダー vmlinuz, initramfs, grub/
/root rootユーザーのホーム rootアカウントの個人ファイル
/etc/var/usr の3つを押さえておけば、
Linuxの日常的なサーバー管理作業の9割はカバーできます。

関連記事:Linuxの絶対パスと相対パスの違い
関連記事:Linuxのネットワーク設定を確認する

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。