はじめに

Linuxシステムでファイルを探したり、設定ファイルを編集したりする際に、「このファイルはどこにあるのか」「なぜこのディレクトリにあるのか」と疑問に思ったことはないでしょうか。Linuxには**Filesystem Hierarchy Standard(FHS)**という国際標準規格があり、ディレクトリ構造の意味と役割が明確に定義されています。

本記事では、FHS規格の概要から始め、ルートディレクトリ以下の主要ディレクトリの役割を解説します。さらに、ファイルパスの基本概念である絶対パス・相対パスの使い分け、リンクファイルの仕組み(シンボリックリンク・ハードリンク)まで、Linuxファイルシステムを理解するための知識を体系的に学べます。

この記事を読み終える頃には、「設定ファイルは/etc、ログファイルは/var/log」といった知識が自然と身につき、目的のファイルがどこにあるか推測できるようになります。

動作確認環境

本記事のコマンドは以下の環境で動作確認しています。

項目 内容
OS Ubuntu 24.04 LTS
シェル bash 5.3
カーネル Linux 6.8
FHS 3.0

WSL2やVirtualBox上のLinux環境、その他の主要ディストリビューション(AlmaLinux 9、Debian 12等)でも同様に動作します。

FHS(Filesystem Hierarchy Standard)とは

FHSの概要

**FHS(Filesystem Hierarchy Standard)**は、LinuxをはじめとするUNIX系オペレーティングシステムにおけるディレクトリ構造とファイル配置の標準規格です。Linux Foundationが管理しており、2015年にリリースされたFHS 3.0が2026年現在も最新版として広く採用されています。

FHSの主な目的は以下の通りです。

  • 互換性の確保: 異なるLinuxディストリビューション間でファイル配置を統一し、アプリケーションの互換性を高める
  • 管理の容易化: システム管理者が必要なファイルの場所を予測しやすくする
  • ドキュメントの統一: 各ディレクトリの役割を明確に定義し、ドキュメントの一貫性を保つ

FHSの基本設計思想

FHSは、ファイルを2つの軸で分類しています。

quadrantChart
    title FHSのファイル分類
    x-axis 静的(Static) --> 可変(Variable)
    y-axis 共有不可(Non-shareable) --> 共有可能(Shareable)
    quadrant-1 /var/mail, /var/spool/news
    quadrant-2 /usr, /opt
    quadrant-3 /etc, /boot
    quadrant-4 /var/run, /var/lock
分類 説明
静的(Static) 管理者による変更以外で内容が変わらないファイル /usr/opt/boot
可変(Variable) システム運用中に内容が変化するファイル /var/tmp/run
共有可能(Shareable) ネットワーク経由で複数ホスト間で共有できるファイル /usr/opt
共有不可(Non-shareable) 特定のホスト固有のファイル /etc/boot/var/run

この分類により、例えば/usrは読み取り専用でマウントでき、/varは書き込み用に別パーティションへ配置できます。

Linuxディレクトリ構造の全体像

ルートディレクトリ(/)

Linuxのディレクトリ構造は、**ルートディレクトリ(/)**を頂点とする単一のツリー構造になっています。WindowsのようにC:D:といったドライブ文字の概念はありません。すべてのファイルとディレクトリは、ルートディレクトリから始まる階層構造の中に存在します。

1
2
# ルートディレクトリ直下の内容を表示
ls -la /

実行結果の例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
total 68
drwxr-xr-x  20 root root  4096 Jan  1 00:00 .
drwxr-xr-x  20 root root  4096 Jan  1 00:00 ..
lrwxrwxrwx   1 root root     7 Jan  1 00:00 bin -> usr/bin
drwxr-xr-x   4 root root  4096 Jan  1 00:00 boot
drwxr-xr-x  18 root root  3700 Jan  7 10:00 dev
drwxr-xr-x 133 root root 12288 Jan  7 10:00 etc
drwxr-xr-x   3 root root  4096 Jan  1 00:00 home
lrwxrwxrwx   1 root root     7 Jan  1 00:00 lib -> usr/lib
drwxr-xr-x   2 root root  4096 Jan  1 00:00 media
drwxr-xr-x   2 root root  4096 Jan  1 00:00 mnt
drwxr-xr-x   3 root root  4096 Jan  1 00:00 opt
dr-xr-xr-x 298 root root     0 Jan  7 10:00 proc
drwx------   5 root root  4096 Jan  1 00:00 root
drwxr-xr-x  30 root root   880 Jan  7 10:00 run
lrwxrwxrwx   1 root root     8 Jan  1 00:00 sbin -> usr/sbin
drwxr-xr-x   2 root root  4096 Jan  1 00:00 srv
dr-xr-xr-x  13 root root     0 Jan  7 10:00 sys
drwxrwxrwt  12 root root  4096 Jan  7 10:30 tmp
drwxr-xr-x  14 root root  4096 Jan  1 00:00 usr
drwxr-xr-x  14 root root  4096 Jan  1 00:00 var

ディレクトリ構造の図解

graph TD
    ROOT["/(ルート)"] --> bin["/bin"]
    ROOT --> boot["/boot"]
    ROOT --> dev["/dev"]
    ROOT --> etc["/etc"]
    ROOT --> home["/home"]
    ROOT --> lib["/lib"]
    ROOT --> media["/media"]
    ROOT --> mnt["/mnt"]
    ROOT --> opt["/opt"]
    ROOT --> proc["/proc"]
    ROOT --> rootdir["/root"]
    ROOT --> run["/run"]
    ROOT --> sbin["/sbin"]
    ROOT --> srv["/srv"]
    ROOT --> sys["/sys"]
    ROOT --> tmp["/tmp"]
    ROOT --> usr["/usr"]
    ROOT --> var["/var"]
    
    usr --> usrbin["/usr/bin"]
    usr --> usrlib["/usr/lib"]
    usr --> usrlocal["/usr/local"]
    usr --> usrshare["/usr/share"]
    
    var --> varlog["/var/log"]
    var --> varcache["/var/cache"]
    var --> varlib["/var/lib"]
    var --> vartmp["/var/tmp"]

主要ディレクトリの役割

/bin - 基本コマンド

/binは、すべてのユーザーが使用できる基本的なコマンドのバイナリファイルが格納されるディレクトリです。システムの起動や復旧時にも必要不可欠なコマンドが配置されています。

FHS 3.0では、/binに必須とされるコマンドには以下があります。

コマンド 説明
cat ファイル内容の連結・表示
cp ファイルのコピー
ls ディレクトリ内容の一覧表示
mv ファイルの移動・リネーム
rm ファイルの削除
sh POSIXシェル
1
2
# /binディレクトリの内容を確認
ls /bin | head -20

実行結果の例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
bash
cat
cp
date
echo
grep
ls
mkdir
mv
pwd
rm
sh

現代のLinuxディストリビューション(Ubuntu 20.04以降、Fedora 17以降など)では、/bin/usr/binへのシンボリックリンクとなっていることが多いです。これは「usr merge」と呼ばれる仕様統合の結果です。

1
2
# /binがシンボリックリンクか確認
ls -la /bin

実行結果の例:

1
lrwxrwxrwx 1 root root 7 Jan  1 00:00 /bin -> usr/bin

/etc - システム設定ファイル

/etcは、ホスト固有のシステム設定ファイルが格納されるディレクトリです。“et cetera”(その他)が語源とされていますが、現在は"Editable Text Configuration"の略として解釈されることもあります。

このディレクトリには実行可能なバイナリを置くことは禁止されています。

主な設定ファイルとディレクトリ:

パス 説明
/etc/passwd ユーザーアカウント情報
/etc/shadow 暗号化されたパスワード情報
/etc/group グループ情報
/etc/hosts 静的なホスト名解決テーブル
/etc/fstab ファイルシステムのマウント設定
/etc/ssh/ SSH設定ファイル
/etc/apt/ APTパッケージ管理設定(Debian系)
/etc/nginx/ Nginx設定ファイル
/etc/systemd/ systemdサービス設定
1
2
# システム設定ファイルの例を表示
cat /etc/hostname

実行結果の例:

1
ubuntu-server
1
2
# /etc配下の設定ディレクトリを確認
ls -la /etc | grep "^d" | head -10

実行結果の例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
drwxr-xr-x   3 root root    4096 Jan  1 00:00 alternatives
drwxr-xr-x   2 root root    4096 Jan  1 00:00 apt
drwxr-xr-x   2 root root    4096 Jan  1 00:00 bash_completion.d
drwxr-xr-x   2 root root    4096 Jan  1 00:00 cron.d
drwxr-xr-x   2 root root    4096 Jan  1 00:00 cron.daily
drwxr-xr-x   2 root root    4096 Jan  1 00:00 default
drwxr-xr-x   4 root root    4096 Jan  1 00:00 dpkg
drwxr-xr-x   3 root root    4096 Jan  1 00:00 init.d
drwxr-xr-x   5 root root    4096 Jan  1 00:00 network
drwxr-xr-x   2 root root    4096 Jan  1 00:00 profile.d

/home - ユーザーホームディレクトリ

/homeは、一般ユーザーのホームディレクトリが配置される場所です。各ユーザーは自分専用のディレクトリ(/home/username)を持ち、個人のファイルや設定を保存します。

1
2
# ホームディレクトリの内容を確認
ls -la /home

実行結果の例:

1
2
3
4
total 12
drwxr-xr-x  3 root   root   4096 Jan  1 00:00 .
drwxr-xr-x 20 root   root   4096 Jan  1 00:00 ..
drwxr-xr-x 15 user   user   4096 Jan  7 10:00 user

ユーザーのホームディレクトリには、ドット(.)で始まる隠しファイル・ディレクトリとして個人設定が保存されます。

パス 説明
~/.bashrc bashシェルの設定ファイル
~/.profile ログイン時の環境設定
~/.ssh/ SSH鍵と設定
~/.config/ アプリケーション設定(XDG仕様)
~/.local/ ユーザーローカルデータ
1
2
# 環境変数HOMEでホームディレクトリを確認
echo $HOME

実行結果の例:

1
/home/user

~(チルダ)はシェルによって現在のユーザーのホームディレクトリに展開されます。

1
2
3
# チルダを使ったホームディレクトリへの移動
cd ~
pwd

実行結果:

1
/home/user

/var - 可変データ

/varは、システム運用中に変化する可変データが格納されるディレクトリです。ログファイル、キャッシュ、スプールデータなど、サイズや内容が常に変動するファイルがここに配置されます。

FHSでは、/usrを読み取り専用でマウントできるようにするため、運用中に書き込みが発生するファイルはすべて/varに配置するよう設計されています。

主なサブディレクトリ:

パス 説明
/var/log/ システムおよびアプリケーションのログファイル
/var/cache/ アプリケーションのキャッシュデータ
/var/lib/ アプリケーションの状態情報(データベースなど)
/var/spool/ 処理待ちデータ(印刷キュー、メールキューなど)
/var/tmp/ 再起動後も保持される一時ファイル
/var/run/ 実行時データ(現在は/runへのシンボリックリンク)
1
2
# ログディレクトリの内容を確認
ls -la /var/log | head -15

実行結果の例:

1
2
3
4
5
6
7
8
total 2048
drwxrwxr-x  12 root   syslog  4096 Jan  7 00:00 .
drwxr-xr-x  14 root   root    4096 Jan  1 00:00 ..
-rw-r-----   1 syslog adm    15234 Jan  7 10:30 auth.log
-rw-r-----   1 syslog adm    98234 Jan  7 10:30 syslog
-rw-r-----   1 syslog adm    45678 Jan  7 10:00 kern.log
drwxr-xr-x   2 root   root    4096 Jan  1 00:00 apt
drwxr-xr-x   2 root   root    4096 Jan  1 00:00 nginx

サーバー運用において、/var/logのディスク使用量は特に注意が必要です。ログローテーションの設定(/etc/logrotate.d/)を適切に行わないと、ディスクが逼迫する原因となります。

/usr - ユーザープログラム

/usrは、ユーザー向けプログラムとデータが格納される、ファイルシステムの中で最も大きなセクションです。“User System Resources"または"Unix System Resources"の略とされています。

/usrは読み取り専用データを格納するため、ネットワーク経由で複数のホスト間で共有することが可能です。

主なサブディレクトリ:

パス 説明
/usr/bin/ 大多数のユーザーコマンド
/usr/sbin/ システム管理用コマンド(非必須)
/usr/lib/ ライブラリファイル
/usr/include/ C言語ヘッダファイル
/usr/share/ アーキテクチャ非依存のデータ
/usr/local/ ローカルにインストールしたソフトウェア
/usr/src/ ソースコード
1
2
# /usr/binの容量を確認
du -sh /usr/bin

実行結果の例:

1
234M    /usr/bin

/usr/localは、システム管理者がパッケージマネージャを使わずに手動でインストールしたソフトウェアを配置する場所です。ディストリビューションが管理するファイルと明確に分離されます。

1
2
# /usr/localの構造
ls -la /usr/local

実行結果の例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
total 40
drwxr-xr-x 10 root root 4096 Jan  1 00:00 .
drwxr-xr-x 14 root root 4096 Jan  1 00:00 ..
drwxr-xr-x  2 root root 4096 Jan  1 00:00 bin
drwxr-xr-x  2 root root 4096 Jan  1 00:00 etc
drwxr-xr-x  2 root root 4096 Jan  1 00:00 include
drwxr-xr-x  3 root root 4096 Jan  1 00:00 lib
drwxr-xr-x  2 root root 4096 Jan  1 00:00 sbin
drwxr-xr-x  4 root root 4096 Jan  1 00:00 share
drwxr-xr-x  2 root root 4096 Jan  1 00:00 src

/tmp - 一時ファイル

/tmpは、すべてのユーザーとプログラムが使用できる一時ファイルの保存場所です。このディレクトリのファイルは、システム再起動時に削除されることが一般的です。

1
2
# /tmpディレクトリのパーミッションを確認
ls -ld /tmp

実行結果の例:

1
drwxrwxrwt 12 root root 4096 Jan  7 10:30 /tmp

パーミッションの最後のtスティッキービットを示しています。スティッキービットが設定されたディレクトリでは、ファイルの所有者とrootユーザーのみがそのファイルを削除できます。これにより、他のユーザーが作成した一時ファイルを勝手に削除されることを防いでいます。

一時ファイルの作成例:

1
2
# 一時ファイルを作成
mktemp

実行結果の例:

1
/tmp/tmp.Xk3jH9pL2m

/var/tmpとの違いは、データの永続性です。

ディレクトリ 再起動後のデータ 用途
/tmp 削除される 短期的な一時ファイル
/var/tmp 保持される 長期的な一時ファイル

その他の重要なディレクトリ

ディレクトリ 説明
/boot カーネルイメージ、ブートローダー設定など起動に必要なファイル
/dev デバイスファイル(ハードディスク、端末など)
/lib システム起動と/bin/sbinのコマンド実行に必要な共有ライブラリ
/media CD-ROM、USBメモリなどリムーバブルメディアのマウントポイント
/mnt 一時的なファイルシステムのマウントポイント
/opt アドオンアプリケーションパッケージ
/proc プロセスとカーネル情報の仮想ファイルシステム
/root rootユーザーのホームディレクトリ
/run 起動後の実行時データ
/sbin システム管理用の基本コマンド
/srv システムが提供するサービス用データ
/sys カーネルとデバイスの情報を提供する仮想ファイルシステム

絶対パスと相対パス

パスとは

**パス(path)**とは、ファイルやディレクトリの場所を示す文字列です。Linuxではディレクトリの区切りにスラッシュ(/)を使用します。

パスには絶対パス相対パスの2種類があります。

絶対パス

**絶対パス(absolute path)**は、ルートディレクトリ(/)から始まる完全なパスです。ファイルの場所を一意に特定できます。

1
2
# 絶対パスの例
cat /etc/hostname

絶対パスの特徴:

  • 必ず/から始まる
  • 現在の作業ディレクトリに関係なく同じファイルを指す
  • スクリプトや設定ファイルで推奨される

相対パス

**相対パス(relative path)**は、現在の作業ディレクトリを基準としたパスです。/から始まりません。

1
2
# 現在のディレクトリを確認
pwd

実行結果:

1
/home/user
1
2
# 相対パスでファイルを参照
cat Documents/memo.txt

相対パスでは、以下の特殊なディレクトリ表記を使用します。

表記 意味
. 現在のディレクトリ(カレントディレクトリ)
.. 1つ上の親ディレクトリ
1
2
# 現在位置を確認
pwd

実行結果:

1
/home/user/Documents
1
2
3
# 親ディレクトリに移動
cd ..
pwd

実行結果:

1
/home/user
1
2
# 2つ上のディレクトリを参照
ls ../../etc/hostname

実行結果:

1
/etc/hostname

絶対パスと相対パスの使い分け

graph TD
    A[パスの選択] --> B{スクリプト・設定ファイル?}
    B -->|はい| C[絶対パスを使用]
    B -->|いいえ| D{対話的な操作?}
    D -->|はい| E[相対パスが便利]
    D -->|いいえ| F{移植性が必要?}
    F -->|はい| G[相対パスを検討]
    F -->|いいえ| C
状況 推奨 理由
シェルスクリプト 絶対パス 実行ディレクトリに依存しない
設定ファイル 絶対パス 明確で誤解が生じにくい
対話的な操作 相対パス 入力が短くて済む
プロジェクト内参照 相対パス ディレクトリ移動に強い

シンボリックリンクとハードリンク

リンクとは

Linuxでは、1つのファイルに対して複数の名前(パス)を付けることができます。これをリンクと呼びます。リンクにはハードリンクと**シンボリックリンク(ソフトリンク)**の2種類があります。

inode(アイノード)の理解

リンクを理解するには、まず**inode(アイノード)**の概念を知る必要があります。

inodeは、ファイルシステム上の各ファイルに割り当てられる固有の識別番号メタデータの集合です。ファイル名はinodeへの参照として機能します。

graph LR
    subgraph "ディレクトリエントリ"
        A["file.txt"] --> I[inode 12345]
        B["backup.txt"] --> I
    end
    subgraph "inode 12345"
        I --> M[メタデータ<br/>所有者、権限、<br/>タイムスタンプ等]
        I --> D[データブロック<br/>実際のファイル内容]
    end
1
2
# ファイルのinode番号を確認
ls -i /etc/hostname

実行結果の例:

1
1234567 /etc/hostname

ハードリンク

ハードリンクは、同じinodeを参照する別のファイル名(ディレクトリエントリ)です。元のファイルとハードリンクは完全に対等で、どちらかを削除してももう一方は影響を受けません。

1
2
3
4
5
6
# ハードリンクを作成
echo "original content" > original.txt
ln original.txt hardlink.txt

# 両方のファイルを確認
ls -li original.txt hardlink.txt

実行結果の例:

1
2
12345678 -rw-r--r-- 2 user user 17 Jan  7 10:00 hardlink.txt
12345678 -rw-r--r-- 2 user user 17 Jan  7 10:00 original.txt

出力の12345678が同じinode番号を示し、2がリンクカウント(このinodeを参照するファイル名の数)を示しています。

1
2
3
# 片方を編集すると両方に反映される
echo "modified content" > original.txt
cat hardlink.txt

実行結果:

1
modified content
1
2
3
# 元ファイルを削除してもハードリンクは残る
rm original.txt
cat hardlink.txt

実行結果:

1
modified content

ハードリンクの制限:

  • 同一ファイルシステム内でのみ作成可能
  • ディレクトリに対しては作成できない(ループ防止のため)
  • リンク先がinodeなので、ファイルの移動や削除を追跡できない

シンボリックリンク(ソフトリンク)

シンボリックリンクは、別のファイルやディレクトリへのパス参照を格納する特殊なファイルです。Windowsの「ショートカット」に似た概念ですが、より透過的に動作します。

1
2
3
4
5
6
# シンボリックリンクを作成
echo "original content" > original.txt
ln -s original.txt symlink.txt

# リンクを確認
ls -l symlink.txt

実行結果の例:

1
lrwxrwxrwx 1 user user 12 Jan  7 10:00 symlink.txt -> original.txt

ファイルタイプのlがシンボリックリンクを示しています。

1
2
# inode番号を確認(異なるinodeを持つ)
ls -li original.txt symlink.txt

実行結果の例:

1
2
12345678 -rw-r--r-- 1 user user 17 Jan  7 10:00 original.txt
87654321 lrwxrwxrwx 1 user user 12 Jan  7 10:00 symlink.txt -> original.txt
1
2
# シンボリックリンク経由でファイル内容を読む
cat symlink.txt

実行結果:

1
original content

元ファイルを削除した場合:

1
2
3
4
5
# 元ファイルを削除
rm original.txt

# シンボリックリンクは壊れたリンク(dangling link)になる
cat symlink.txt

実行結果:

1
cat: symlink.txt: No such file or directory
1
2
# 壊れたリンクを確認
ls -l symlink.txt

実行結果の例:

1
lrwxrwxrwx 1 user user 12 Jan  7 10:00 symlink.txt -> original.txt

(多くのターミナルでは壊れたリンクは赤色で表示されます)

ハードリンクとシンボリックリンクの比較

特性 ハードリンク シンボリックリンク
参照先 inode ファイルパス
異なるファイルシステム 不可 可能
ディレクトリへのリンク 不可 可能
元ファイル削除時 データは保持される 壊れたリンクになる
ファイルサイズ 元ファイルと同じ パス文字列の長さ
識別方法 ls -iで同じinode ls -llタイプと->表示

実際の使用例

システム上でのシンボリックリンクの例:

1
2
3
4
5
6
7
8
# /bin が /usr/bin へのシンボリックリンク(usr merge)
ls -l /bin

# alternatives システム(複数バージョンの管理)
ls -l /usr/bin/python3

# ライブラリのバージョン管理
ls -l /usr/lib/x86_64-linux-gnu/libssl.so*

実行結果の例:

1
2
3
4
5
6
lrwxrwxrwx 1 root root 7 Jan  1 00:00 /bin -> usr/bin

lrwxrwxrwx 1 root root 10 Jan  1 00:00 /usr/bin/python3 -> python3.12

lrwxrwxrwx 1 root root 16 Jan  1 00:00 libssl.so -> libssl.so.3
-rw-r--r-- 1 root root 677K Jan  1 00:00 libssl.so.3

シンボリックリンクの作成コマンド早見表:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# ファイルへのシンボリックリンク
ln -s /path/to/original /path/to/link

# ディレクトリへのシンボリックリンク
ln -s /path/to/dir /path/to/link

# 相対パスでリンク作成(リンクのディレクトリからの相対パス)
ln -s ../relative/path /path/to/link

# 既存リンクを上書き
ln -sf /new/target /path/to/link

よくあるユースケース

ファイルの場所を推測する

FHSの知識を活用すると、目的のファイルがどこにあるか推測できます。

探しているもの 確認すべき場所
サービスの設定ファイル /etc/<サービス名>/
ログファイル /var/log/<サービス名>/
実行ファイル /usr/bin//usr/sbin//usr/local/bin/
ユーザーの個人設定 ~/.config/~/.<アプリ名>/
手動インストールしたソフトウェア /usr/local//opt/
データベースのデータ /var/lib/<データベース名>/
キャッシュファイル /var/cache/<アプリ名>/

ディスク容量が逼迫した場合の確認場所

1
2
# 各ディレクトリのディスク使用量を確認
du -sh /* 2>/dev/null | sort -rh | head -10

実行結果の例:

1
2
3
4
5
6
7
8
9
8.5G    /usr
3.2G    /var
1.5G    /home
500M    /opt
200M    /boot
50M     /etc
20M     /root
10M     /run
5M      /tmp

容量が大きくなりやすいディレクトリ:

ディレクトリ 原因 対策
/var/log ログの蓄積 logrotate設定の確認
/var/cache パッケージキャッシュ apt clean等で削除
/tmp 一時ファイル 再起動または手動削除
/home ユーザーデータ 不要ファイルの整理

まとめ

本記事では、Linuxのディレクトリ構造について以下の内容を解説しました。

  • FHS規格: LinuxディストリビューションでディレクトリUsage構造を標準化する規格
  • 主要ディレクトリ: /bin(基本コマンド)、/etc(設定)、/home(ユーザー)、/var(可変データ)、/usr(プログラム)、/tmp(一時ファイル)の役割
  • パスの種類: 絶対パスと相対パスの違いと使い分け
  • リンク: シンボリックリンクとハードリンクの仕組みと違い

FHS規格を理解することで、「設定ファイルは/etc」「ログは/var/log」といった知識が自然と身につき、トラブルシューティングやシステム管理の効率が大幅に向上します。

次のステップとして、実際にLinux環境で各ディレクトリを探索し、どのようなファイルが配置されているか確認してみることをお勧めします。

参考リンク