目次
- Linuxディレクトリ構造の基本概念
- ルートディレクトリ「/」とツリー構造
- FHS(Filesystem Hierarchy Standard)とは
- 絶対パスと相対パス
- ルート直下の主要ディレクトリ一覧
- /etc:設定ファイルの中枢
- 重要な設定ファイル
- 設定ファイル編集の注意点
- /var:ログとデータの保管場所
- 重要なサブディレクトリ
- /var/logの主要ログファイル
- /var/wwwとWebサーバー
- /homeと/root:ユーザーの作業場所
- /homeディレクトリ
- /rootディレクトリ
- /usr, /opt, /bin, /sbin:プログラムの格納場所
- /binと/sbin
- /usrディレクトリ
- /optディレクトリ
- 仮想ファイルシステム:/proc, /sys, /dev
- /procディレクトリ
- /devディレクトリ
- 実務で押さえるべきディレクトリ操作のポイント
- トラブル時の確認手順
- ディスク容量の管理
- パーミッションとの関係
- バックアップ対象の判断
- まとめ
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:ゼロを出力する特殊デバイス
ディスクデバイスの管理についてはディスク管理ガイドで詳しく解説しています。
実務で押さえるべきディレクトリ操作のポイント
最後に、実務でディレクトリ構造の知識を活かす際のポイントをまとめます。
トラブル時の確認手順
サーバーに問題が発生した際、確認すべきディレクトリの順序を覚えておきましょう。
- /var/log/でエラーログを確認する
- /etc/で設定ファイルの変更内容を確認する
- /proc/でシステムリソースの状態を確認する
- /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コマンド一覧で確認できます。
先行モニター企業 募集中|先着5社・2026年11月末まで 生成AIの利用費、「誰が・何のために・いくら」まで見えていますか?
株式会社カイダンと共同開発したAI利用ガバナンスSaaS「ManageAI」は、OpenAI・Azure OpenAI・Claude・AWS Bedrock・Google Vertex AIの費用と利用状況を、部署・利用者・プロジェクト別に可視化します。導入は読み取り専用キーの登録だけ。初期費用0円・月額5万円(税別)で先行モニター企業を募集しています。
ニュースリリースを読む関連記事
Related / 9 articles
Notes & Insights
- プログラミング
DDoS攻撃の仕組みと対策入門|レイヤー別の防御とCDN・クラウドの活用
DDoS攻撃をボリューム型・プロトコル型・アプリ層に分けて仕組みを解説し、自前サーバーで防げない理由、CloudflareやAWS Shieldの標準防御、オリジンIPの隠し方、レートリミットとBot対策、攻撃を受けたときの初動、費用が跳ね上がるDenial of Walletへの備えまでわかります。
- プログラミング
WAFとは?仕組み・導入パターン・誤検知対策|Webアプリを攻撃から守る実践ガイド
WAFがファイアウォールやIDSと何が違うのか、シグネチャとマネージドルールの仕組み、Cloudflare WAF・AWS WAF・ModSecurityの比較、フォーム送信がブロックされる誤検知の調査と例外設定、ログ監視、WAFが代替できないことまで実践的に解説します。
- プログラミング
セキュリティヘッダー入門|CSP・HSTS・X-Frame-Optionsの設定と効果を実践解説
CSP・HSTS・X-Frame-Options・X-Content-Type-Optionsなど主要セキュリティヘッダーが防ぐ攻撃と、CSPのReport-Onlyからの段階導入、nonce/hash、HSTS preloadの不可逆リスク、Nginx・Next.js・Astroでの設定例、確認方法を解説します。
- プログラミング
クラウドの通信費(Egress)入門|データ転送量課金の仕組みと転送コストを抑える設計
クラウドの「受信無料・送信有料」の原則、AZ間・リージョン間・インターネット向けの単価差、NATゲートウェイ処理料の罠、CDNで転送量を減らす方法、バックアップやログ転送の見落とし、請求書で転送料を特定する手順を解説。想定外の請求を防げます。
- プログラミング
秘密情報をGitに入れない仕組み|.gitignore・git-secrets・履歴から漏れた鍵の削除
APIキーや.envをGitにコミットしてしまう典型経路と、.gitignore・.env.exampleの運用、pre-commitでのgitleaks検知、GitHub secret scanningの活用、漏れた鍵の無効化と履歴書き換え(git filter-repo)の手順を解説。仕組みで再発を防げます。
- プログラミング
開発・ステージング・本番環境の分離設計|環境差分をなくす構成とアクセス制御
開発・ステージング・本番それぞれの目的と、構成をコードで揃える方法、環境別の設定注入、本番データを使わないテストデータ戦略、ステージングの保護(Basic認証・IP制限・noindex)、コストを抑える運用までを解説。環境差分による本番障害を防げます。
- プログラミング
ngrok・Cloudflare Tunnelでローカルを公開|Webhook開発とデモ環境の作り方
NAT内のローカル環境にStripeやLINEのWebhookを届けるトンネリングの仕組みを解説。ngrok・Cloudflare Tunnel・localtunnelの比較、固定ドメインと認証、リクエスト検査、公開時のセキュリティ、自宅サーバー公開への応用までわかります。
- プログラミング
ローカル開発環境のHTTPS化|mkcert・hostsファイル・自己署名証明書の正しい使い方
ローカル開発をHTTPS前提にすべき理由(Secure Cookie・Service Worker・OAuth)と、mkcertでローカルCAを作りhostsで独自ドメインを割り当ててVite・Next.js・Dockerで使う手順を解説。証明書警告を無視する癖の危険も理解できます。
- プログラミング
localhost・0.0.0.0・127.0.0.1の違い|ポートとUnixソケットを理解して「つながらない」を解決
localhost・127.0.0.1・0.0.0.0の意味の違い、Dockerで外から接続できない原因、host.docker.internal、ポート競合の調べ方、Unixソケットの利点と権限、1024未満ポートの制約を解説。「つながらない」を仕組みから解決できます。
先行モニター企業 募集中
生成AIのコストを「部署別」に、請求書より先に。
先着5社限定・2026年11月末まで。初期費用0円・月額5万円(税別)で、正式版と同等の機能に加え、開発者と伴走者による導入支援を追加費用なしで提供します。プロンプト原文は一切取得しません。
株式会社カイダン × Harmonic Society株式会社の共同事業|読み取り専用キーの登録だけで導入できます