Linuxのディレクトリ構造を完全理解|/etc, /var, /homeなど主要パスを初心者向けに解説

kento_morota 12分で読めます

Linuxを使い始めると、まず戸惑うのがディレクトリ(フォルダ)構造ではないでしょうか。Windowsの「Cドライブ」「Dドライブ」とはまったく異なる構成で、「/etc」「/var」「/home」といった見慣れないディレクトリが並んでいます。

しかし、Linuxのディレクトリ構造にはきちんとした規則があり、それを理解するだけでサーバー管理やトラブルシューティングの効率が格段に上がります。設定ファイルがどこにあるか、ログはどこに出力されるか――こうした知識は、中小企業のIT担当者にとって実務に直結するスキルです。

本記事では、Linuxのディレクトリ構造の基本から各主要ディレクトリの役割、実務での活用方法までを初心者向けに解説します。Linuxの基本についてはLinuxとは?初心者向け解説もあわせてご覧ください。

Linuxディレクトリ構造の基本概念

Linuxのディレクトリ構造を理解するために、まず基本的な概念を押さえましょう。

ルートディレクトリ「/」とツリー構造

Linuxのファイルシステムは、「/」(ルート)を頂点としたツリー構造になっています。Windowsのように「C:」「D:」といったドライブの概念はなく、すべてのファイルとディレクトリは「/」の配下に配置されます。

USBメモリや外付けハードディスクを接続した場合も、独立したドライブとしてではなく、ツリー構造の中の特定のディレクトリ(マウントポイント)に「マウント」されて利用されます。

FHS(Filesystem Hierarchy Standard)とは

FHS(Filesystem Hierarchy Standard)は、Linuxのディレクトリ構造に関する標準規格です。どのディストリビューションでも基本的なディレクトリ構造が共通しているのは、このFHSに準拠しているためです。

FHSがあることで、UbuntuでもRocky Linuxでも、設定ファイルは/etcに、ログは/var/logにある、という共通認識が成り立ちます。

絶対パスと相対パス

ディレクトリ構造を扱う際に重要なのが、絶対パス相対パスの違いです。

  • 絶対パス:ルート「/」からの完全なパス(例:/home/user/documents/file.txt)
  • 相対パス:現在地からの相対的なパス(例:documents/file.txt)

サーバー設定では絶対パスを使うのが原則です。相対パスは実行場所によって結果が変わるため、設定ファイルやシェルスクリプトでは必ず絶対パスを指定しましょう。

ルート直下の主要ディレクトリ一覧

まずはルート「/」の直下にある主要ディレクトリの全体像を把握しましょう。以下のコマンドで確認できます。

ls -la /

コマンドの詳しい使い方はLinuxコマンド一覧を参考にしてください。

ディレクトリ 役割 利用頻度
/ ルートディレクトリ(すべての起点) -
/bin 基本コマンドの実行ファイル
/sbin システム管理用コマンド
/etc 設定ファイル 非常に高
/home 一般ユーザーのホームディレクトリ 非常に高
/root rootユーザーのホームディレクトリ
/var 可変データ(ログ、キャッシュなど) 非常に高
/tmp 一時ファイル
/usr ユーザー用プログラムとデータ
/opt 追加ソフトウェア
/dev デバイスファイル
/proc プロセス情報(仮想ファイルシステム)
/sys カーネル情報(仮想ファイルシステム)
/mnt, /media マウントポイント
/boot ブート関連ファイル

/etc:設定ファイルの中枢

/etcは、システムとアプリケーションの設定ファイルが格納される最も重要なディレクトリです。サーバー管理者が最も頻繁にアクセスする場所と言えるでしょう。

重要な設定ファイル

ファイル/ディレクトリ 内容
/etc/passwd ユーザーアカウント情報
/etc/shadow パスワードのハッシュ値(暗号化)
/etc/group グループ情報
/etc/hosts ホスト名とIPアドレスの対応表
/etc/hostname サーバーのホスト名
/etc/fstab ファイルシステムのマウント設定
/etc/crontab システム全体のcron設定
/etc/ssh/ SSH接続の設定ファイル
/etc/nginx/ Nginxの設定ファイル
/etc/systemd/ systemdのサービス設定

ユーザー管理に関わるファイルの詳細はユーザー・グループ管理ガイドを、cron設定はcronタスクスケジューリングを、SSH設定はSSHリモート接続ガイドをご覧ください。

設定ファイル編集の注意点

/etc配下のファイルを編集する際は、必ずバックアップを取ってから作業しましょう。設定ミスはシステム全体に影響を及ぼす可能性があります。

# 設定ファイルのバックアップ例
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# バックアップの日付付き
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.$(date +%Y%m%d)

ファイル編集にはVimやnanoエディタを使います。Vimの使い方は別記事で詳しく解説しています。

/var:ログとデータの保管場所

/var(variable)は、システム稼働中に変化する可変データが格納されるディレクトリです。ログファイル、メールデータ、キャッシュなどが保存されます。

重要なサブディレクトリ

ディレクトリ 内容
/var/log/ 各種ログファイル
/var/www/ Webサーバーの公開ディレクトリ
/var/lib/ アプリケーションの状態データ
/var/cache/ キャッシュデータ
/var/spool/ メールキューや印刷キュー
/var/tmp/ 再起動後も残る一時ファイル

/var/logの主要ログファイル

サーバーのトラブルシューティングでは、/var/logのログファイルが最も重要な情報源となります。

# システムログの確認
sudo tail -f /var/log/syslog          # Ubuntu/Debian系
sudo tail -f /var/log/messages        # CentOS/RHEL系

# 認証ログの確認
sudo tail -f /var/log/auth.log        # Ubuntu/Debian系
sudo tail -f /var/log/secure          # CentOS/RHEL系

# Webサーバーログの確認
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

ログ管理の詳細はLinuxログ管理ガイドで解説しています。また、/var/logが肥大化するとディスク容量を圧迫するため、ディスク管理の知識も合わせて身につけておきましょう。

/var/wwwとWebサーバー

/var/www/は、ApacheやNginxでWebサイトを公開する際のデフォルトのドキュメントルートです。Webサイトのファイル一式をここに配置します。Nginxの設定方法についてはNginx構築ガイドで詳しく説明しています。

/homeと/root:ユーザーの作業場所

ユーザーごとの作業ディレクトリも理解しておきましょう。

/homeディレクトリ

/homeは一般ユーザーのホームディレクトリが配置される場所です。ユーザー「tanaka」であれば/home/tanakaがホームディレクトリとなり、チルダ「~」で参照できます。

# ホームディレクトリへ移動
cd ~
# または
cd /home/tanaka

# ホームディレクトリの内容確認
ls -la ~

ホームディレクトリには、以下のような設定ファイル(ドットファイル)が存在します。

  • ~/.bashrc:Bashシェルの設定ファイル(環境変数の設定に関連)
  • ~/.ssh/:SSH鍵の格納場所
  • ~/.config/:各種アプリケーションの設定

/rootディレクトリ

/rootはrootユーザー(管理者)専用のホームディレクトリです。/homeの配下ではなく独立して配置されているのは、/homeが別パーティションにマウントされている場合でもrootユーザーが作業できるようにするためです。

rootユーザーの取り扱いについてはユーザー・グループ管理ガイドで詳しく解説しています。

/usr, /opt, /bin, /sbin:プログラムの格納場所

プログラム(実行ファイル)の格納場所についても整理しておきましょう。

/binと/sbin

/binはls、cp、mvなどの基本コマンドが格納されています。/sbinはfdisk、iptablesなどシステム管理用コマンドが格納されています。最近のディストリビューションでは、/binと/sbinは/usr/binと/usr/sbinへのシンボリックリンクになっているケースが多いです。

/usrディレクトリ

/usr(Unix System Resources)は、パッケージマネージャーでインストールしたプログラムやライブラリが格納されるディレクトリです。

  • /usr/bin/:一般ユーザー向けコマンド
  • /usr/sbin/:管理者向けコマンド
  • /usr/lib/:共有ライブラリ
  • /usr/local/:手動でインストールしたソフトウェア
  • /usr/share/:アーキテクチャ非依存のデータ

パッケージマネージャー(apt、yumなど)によるソフトウェアの管理はパッケージ管理入門で詳しく解説しています。

/optディレクトリ

/opt(optional)は、ディストリビューション標準のパッケージ管理外のサードパーティ製ソフトウェアを格納する場所です。Google ChromeやSlackなどの商用ソフトウェアがインストールされることがあります。

仮想ファイルシステム:/proc, /sys, /dev

Linuxにはディスク上に実体を持たない「仮想ファイルシステム」が存在します。これらはカーネルがリアルタイムで生成する情報で、システム状態の確認に活用されます。

/procディレクトリ

/procはプロセス情報やシステム情報を提供する仮想ファイルシステムです。

# CPU情報の確認
cat /proc/cpuinfo

# メモリ情報の確認
cat /proc/meminfo

# カーネルバージョンの確認
cat /proc/version

# 特定プロセスの情報(PID 1234の場合)
ls /proc/1234/

プロセス管理の詳細はプロセス管理ガイドを、パフォーマンスの監視にはパフォーマンス監視ガイドをご覧ください。

/devディレクトリ

/dev(device)はハードウェアデバイスをファイルとして表現するディレクトリです。Linuxの「すべてはファイル」という設計思想を体現した部分です。

  • /dev/sda:最初のSATAディスク
  • /dev/sda1:そのディスクの第1パーティション
  • /dev/null:出力を破棄する特殊デバイス
  • /dev/zero:ゼロを出力する特殊デバイス

ディスクデバイスの管理についてはディスク管理ガイドで詳しく解説しています。

実務で押さえるべきディレクトリ操作のポイント

最後に、実務でディレクトリ構造の知識を活かす際のポイントをまとめます。

トラブル時の確認手順

サーバーに問題が発生した際、確認すべきディレクトリの順序を覚えておきましょう。

  1. /var/log/でエラーログを確認する
  2. /etc/で設定ファイルの変更内容を確認する
  3. /proc/でシステムリソースの状態を確認する
  4. /tmp/や/var/tmp/で一時ファイルの肥大化を確認する

体系的なトラブル対応の手順についてはLinuxトラブルシューティングガイドを参考にしてください。

ディスク容量の管理

ディレクトリ構造を理解していると、ディスク容量の管理も効率的に行えます。

# ディスク使用量の概要
df -h

# ディレクトリ別の使用量を確認
du -sh /var/log/
du -sh /home/
du -sh /tmp/

# 大きなファイルの特定
find /var/log/ -type f -size +100M

パーミッションとの関係

各ディレクトリにはそれぞれ適切なパーミッション(アクセス権限)が設定されています。例えば、/etc/shadow(パスワード情報)は管理者のみが読める設定になっています。ディレクトリの権限設定を誤ると、セキュリティ上のリスクやアプリケーションの動作不良を引き起こす可能性があります。

バックアップ対象の判断

ディレクトリ構造を理解していれば、バックアップの対象を的確に判断できます。

  • 必ずバックアップ:/etc(設定)、/home(ユーザーデータ)、/var/www(Webコンテンツ)
  • 必要に応じて:/var/log(ログ)、/opt(追加ソフト)
  • 不要:/proc、/sys、/dev(仮想ファイルシステム)、/tmp(一時ファイル)

まとめ

Linuxのディレクトリ構造は、FHSという標準規格に基づいた合理的な設計になっています。各ディレクトリの役割を理解しておくことで、サーバー管理やトラブルシューティングの効率が大幅に向上します。

本記事のポイントを振り返ります。

  • Linuxは「/」を頂点としたツリー構造で、すべてのファイルがここに属する
  • /etcは設定ファイル、/varはログや可変データ、/homeはユーザーデータの格納場所
  • /proc、/sys、/devは仮想ファイルシステムでシステム情報をリアルタイムに提供する
  • ディレクトリ構造の知識は、トラブル時の原因調査やバックアップ計画に直結する

ディレクトリ構造を理解したら、次はファイル権限(パーミッション)の仕組みを学びましょう。また、日常的なファイル操作のコマンドはLinuxコマンド一覧で確認できます。

#Linux#ディレクトリ#ファイルシステム
共有:
無料メルマガ

週1回、最新の技術記事をお届け

AI・クラウド・開発の最新記事を毎週月曜にメールでお届けします。登録は無料、いつでも解除できます。

プライバシーポリシーに基づき管理します

AI活用のヒントをお探しですか?お気軽にご相談ください。

まずは話だけ聞いてもらう