Linuxファイルシステムの基本構造とは?主要ディレクトリの役割を完全解説

Linux

「Linuxを使い始めたけど、フォルダの名前が全部英語で分からない…」
「/bin、/etc、/varって、何が入ってるの?」

Windowsに慣れている人がLinuxを初めて触ると、その独特なファイル構造に戸惑ってしまいますよね。

この記事では、Linuxファイルシステムの基本構造について、初心者の方にも分かりやすく解説します。

主要なディレクトリの役割から、Windowsとの違い、実際の使い方まで、具体例を交えながら説明していきますね。

この記事を読めば、Linuxのファイル構造が頭の中でスッキリと整理できるはずです!

スポンサーリンク
  1. Linuxファイルシステムとは?基本を理解しよう
    1. ファイルシステムの定義
    2. Windowsとの大きな違い
    3. ディレクトリツリー構造を視覚的に理解
  2. Linuxの標準的なディレクトリ構造
    1. 主要なトップレベルディレクトリ一覧
  3. 絶対に覚えておくべき重要ディレクトリ
    1. /(ルートディレクトリ)
    2. /home(ホームディレクトリ)
    3. /bin(基本コマンド)
    4. /etc(設定ファイル)
    5. /var(変動データ)
    6. /tmp(一時ファイル)
    7. /usr(ユーザープログラム)
    8. /root(管理者のホーム)
    9. /boot(起動ファイル)
    10. /dev(デバイスファイル)
    11. /proc(プロセス情報)
  4. Windowsとの対応関係
  5. 実際の使用例とコマンド
    1. ディレクトリの移動
    2. ファイル一覧の表示
    3. ファイルの場所を調べる
    4. ディスクの使用状況を確認
    5. パス(Path)の理解
  6. 初心者がよく間違えるポイント
    1. 間違い1:ルートユーザーと/rootを混同
    2. 間違い2:/binと/usr/binの違いが分からない
    3. 間違い3:すべてのファイルに触っていいと思う
  7. 知っておくと便利なディレクトリ
    1. /media と /mnt の違い
    2. /opt(オプショナルソフトウェア)
    3. /lib と /lib64
    4. /srv(サービスデータ)
  8. セキュリティとパーミッション(権限)
    1. パーミッションの基本
    2. なぜ権限が重要か
  9. よくある質問と回答
    1. Q. なぜCドライブやDドライブがないの?
    2. Q. Windowsのようにフォルダを作っていいですか?
    3. Q. 削除してはいけないディレクトリはどれですか?
    4. Q. ファイルがどこにあるか分からなくなりました
    5. Q. ディレクトリの容量が大きくなりすぎたら?
    6. Q. もっと詳しく学ぶには?
  10. まとめ:Linuxファイルシステムは一本の木

Linuxファイルシステムとは?基本を理解しよう

ファイルシステムの定義

ファイルシステムとは、コンピューター上でファイルやフォルダを管理する仕組みのことです。

もっと簡単に言うと、データをどこに、どうやって保存するかのルールですね。

Linuxでは、すべてのファイルとディレクトリ(フォルダ)が一つの大きな木構造(ツリー構造)で管理されています。

Windowsとの大きな違い

WindowsとLinuxでは、ファイル構造の考え方が根本的に違います。

Windowsの場合:

  • Cドライブ(C:\)、Dドライブ(D:\)など、ドライブごとに分かれている
  • USBメモリを挿すと「Eドライブ」などが追加される
  • それぞれが独立した「ルート(起点)」を持つ

Linuxの場合:

  • すべてがルートディレクトリ(/)から始まる一つの木構造
  • ドライブという概念がない(正確には「マウント」という形で統合される)
  • USBメモリも木構造の一部に組み込まれる

つまり、Linuxでは「/」が全ての始まりなんです。

ディレクトリツリー構造を視覚的に理解

家系図のような構造をイメージしてください。

/(ルート)
├── bin(実行ファイル)
├── etc(設定ファイル)
├── home(ユーザーのホーム)
│   ├── user1
│   └── user2
├── var(変動データ)
└── tmp(一時ファイル)

全ての道は「/」から始まり、枝分かれしていくわけですね。

Linuxの標準的なディレクトリ構造

Linuxでは、FHS(Filesystem Hierarchy Standard)という標準規格に基づいて、ディレクトリ構造が決められています。

どのLinuxディストリビューション(Ubuntu、CentOS、Fedoraなど)でも、基本的には同じ構造になっています。

主要なトップレベルディレクトリ一覧

ルート直下にある主なディレクトリを一覧で見てみましょう。

ディレクトリ読み方主な役割
/ルートすべての起点
/binビン基本的なコマンド
/bootブート起動に必要なファイル
/devデブデバイスファイル
/etcエトセ設定ファイル
/homeホームユーザーのデータ
/libリブ共有ライブラリ
/mediaメディアリムーバブルメディア
/mntマウント一時的なマウントポイント
/optオプト追加ソフトウェア
/procプロックプロセス情報
/rootルート管理者のホーム
/sbinエスビンシステム管理コマンド
/tmpテンプ一時ファイル
/usrユーザーユーザー向けプログラム
/varバー変動データ

それぞれの詳細を見ていきましょう。

絶対に覚えておくべき重要ディレクトリ

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

すべてのディレクトリの最上位です。

特徴:

  • Linuxシステム全体の起点
  • 他のすべてのディレクトリはここから派生
  • スラッシュ「/」一つで表される

注意点:

  • ルートディレクトリ自体に直接ファイルを置くことはほとんどない
  • システムが正常に動作するために必要不可欠

/home(ホームディレクトリ)

各ユーザーの個人データが保存される場所です。

構造:

/home/
├── tanaka/(田中さん専用)
│   ├── Documents/(ドキュメント)
│   ├── Downloads/(ダウンロード)
│   └── Pictures/(写真)
└── suzuki/(鈴木さん専用)
    ├── Documents/
    └── Music/(音楽)

Windowsとの比較:

  • Windows:C:\Users\(ユーザー名)
  • Linux:/home/(ユーザー名)

重要なポイント:

  • ユーザーごとに完全に独立している
  • 自分のホームディレクトリには自由にファイルを作成できる
  • 他のユーザーのホームには基本的にアクセスできない

/bin(基本コマンド)

システムの起動や基本操作に必要なコマンドが入っています。

主な内容:

  • ls(ファイル一覧表示)
  • cp(コピー)
  • mv(移動)
  • rm(削除)
  • cat(ファイル内容表示)
  • bash(シェル)

特徴:

  • 「bin」は「binary(バイナリ)」の略
  • すべてのユーザーが使える基本的なコマンド
  • システム起動時でも使える必要があるため、/binに配置

/etc(設定ファイル)

システムやアプリケーションの設定ファイルが集まっている場所です。

主な内容:

  • /etc/passwd(ユーザー情報)
  • /etc/hosts(ホスト名とIPアドレスの対応)
  • /etc/fstab(ファイルシステムのマウント情報)
  • /etc/network/(ネットワーク設定)
  • /etc/ssh/(SSH設定)

特徴:

  • 「et cetera(エトセトラ)」が由来という説がある
  • ほとんどがテキストファイル
  • 編集には管理者権限が必要なものが多い

注意点:

  • 重要な設定ファイルが多いので、編集前には必ずバックアップを
  • 間違えるとシステムが起動しなくなることも

/var(変動データ)

頻繁に変更されるデータが保存される場所です。

主な内容:

  • /var/log/(ログファイル)
  • /var/mail/(メール)
  • /var/www/(Webサーバーのコンテンツ)
  • /var/cache/(キャッシュデータ)
  • /var/tmp/(一時ファイル)

特徴:

  • 「variable(変動する)」が由来
  • システムやアプリが動作中に書き込む
  • ログファイルが大きくなりがち

実用例:

  • システムのエラーを調べる時は/var/log/を確認
  • Webサイトのファイルは/var/www/に配置することが多い

/tmp(一時ファイル)

一時的なファイルが保存される場所です。

特徴:

  • 「temporary(一時的な)」の略
  • すべてのユーザーが読み書きできる
  • 再起動すると中身が削除されることが多い

用途:

  • プログラムの一時作業ファイル
  • ダウンロード中のファイル
  • 圧縮ファイルの展開先

注意点:

  • 重要なファイルは置かない
  • 定期的に自動でクリーンアップされる

/usr(ユーザープログラム)

ユーザーが使うプログラムやデータが保存される場所です。

主な構造:

/usr/
├── bin/(一般ユーザー向けコマンド)
├── sbin/(システム管理コマンド)
├── lib/(ライブラリ)
├── share/(共有データ)
└── local/(ローカルにインストールしたソフト)

特徴:

  • 「Unix System Resources」の略
  • 最も大きなディレクトリの一つ
  • ソフトウェアの大部分がここに入る

実用的な話:

  • アプリをインストールすると、実行ファイルは/usr/binに入る
  • 手動でインストールしたソフトは/usr/local/に入れることが多い

/root(管理者のホーム)

管理者(root)専用のホームディレクトリです。

特徴:

  • /homeではなく/直下にある
  • 一般ユーザーはアクセスできない
  • システムの最高権限を持つユーザー専用

注意点:

  • 日常的な作業でrootユーザーを使うのは危険
  • 必要な時だけsudoコマンドで一時的に権限を得る

/boot(起動ファイル)

システムの起動に必要なファイルが入っています。

主な内容:

  • カーネル(Linuxの中核プログラム)
  • ブートローダー(起動プログラム)
  • 初期RAMディスク

特徴:

  • システムが起動する前に読み込まれる
  • 非常に重要なディレクトリ
  • 通常はあまり触らない

/dev(デバイスファイル)

ハードウェアデバイスを表すファイルが入っています。

主な内容:

  • /dev/sda(ハードディスク)
  • /dev/sda1(ハードディスクの1番目のパーティション)
  • /dev/null(何も出力しない特殊ファイル)
  • /dev/zero(ゼロを無限に出力する特殊ファイル)

Linuxの特徴:

  • Linuxでは「すべてはファイル」という哲学
  • ハードウェアもファイルとして扱える

/proc(プロセス情報)

実行中のプログラム情報が見られる特殊なディレクトリです。

特徴:

  • 実際にはディスクに保存されていない(仮想的なファイルシステム)
  • システムの動作状況をリアルタイムで表示
  • /proc/cpuinfo(CPU情報)
  • /proc/meminfo(メモリ情報)

使い方の例:

cat /proc/cpuinfo  # CPU情報を表示

Windowsとの対応関係

Windowsユーザーが分かりやすいように、対応表を作りました。

WindowsLinux内容
C:\/システムのルート
C:\Windows/etc, /boot, /libシステムファイル
C:\Program Files/usr, /optインストールしたソフト
C:\Users\(ユーザー名)/home/(ユーザー名)ユーザーデータ
C:\Windows\System32/bin, /sbin実行ファイル
C:\Users\(ユーザー名)\Desktop/home/(ユーザー名)/Desktopデスクトップ
C:\Temp/tmp一時ファイル
Dドライブ/mnt/d など追加のドライブ

ただし、完全に1対1対応しているわけではないので、参考程度に考えてください。

実際の使用例とコマンド

理論だけでなく、実際にどう使うかを見てみましょう。

ディレクトリの移動

cdコマンドで移動できます。

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

# ルートディレクトリへ移動
cd /

# 一つ上のディレクトリへ移動
cd ..

# 特定のディレクトリへ移動
cd /var/log

ファイル一覧の表示

lsコマンドで確認できます。

# 現在のディレクトリの内容を表示
ls

# 詳細情報付きで表示
ls -l

# 隠しファイルも含めて表示
ls -a

# ルート直下のディレクトリを表示
ls /

ファイルの場所を調べる

whichコマンドやwhereisコマンドを使います。

# lsコマンドがどこにあるか調べる
which ls
# 結果:/bin/ls

# pythonがどこにインストールされているか
which python3
# 結果:/usr/bin/python3

ディスクの使用状況を確認

dfコマンドで確認できます。

# ディスクの使用状況
df -h

# 特定のディレクトリのサイズ
du -sh /var/log

パス(Path)の理解

Linuxでは、ファイルやディレクトリの場所をパスで表します。

絶対パス:

  • ルート(/)から始まる完全な道筋
  • 例:/home/tanaka/Documents/report.txt

相対パス:

  • 現在いる場所から見た道筋
  • 例:./Documents/report.txt(現在のディレクトリから)
  • 例:../Pictures/photo.jpg(一つ上のディレクトリから)

初心者がよく間違えるポイント

間違い1:ルートユーザーと/rootを混同

ルートユーザー(root user):

  • システムの管理者アカウント
  • 最高権限を持つ

/root:

  • ルートユーザーのホームディレクトリ
  • 単なるフォルダの一つ

別物なので注意しましょう。

間違い2:/binと/usr/binの違いが分からない

簡単な違い:

  • /bin:システム起動に必要な最小限のコマンド
  • /usr/bin:一般的なアプリケーション

実際には:

  • 最近のLinuxでは、/binは/usr/binへのシンボリックリンク(ショートカット)になっていることが多い
  • 初心者は気にしなくてOK

間違い3:すべてのファイルに触っていいと思う

触ってはいけないもの:

  • /etc/の重要な設定ファイル
  • /boot/の起動ファイル
  • /proc/、/sys/などの仮想ファイルシステム

基本ルール:

  • 自分のホームディレクトリ(/home/ユーザー名)は自由に使える
  • それ以外は管理者権限が必要
  • よく分からないファイルは触らない

知っておくと便利なディレクトリ

/media と /mnt の違い

どちらも「外部ストレージをマウント(接続)する場所」ですが、使い分けがあります。

/media:

  • USBメモリ、CD/DVDなど、自動マウントされるもの
  • 例:/media/ユーザー名/USB001

/mnt:

  • 手動でマウントする一時的なもの
  • ネットワークドライブなど

/opt(オプショナルソフトウェア)

パッケージ管理外のソフトウェアを入れる場所です。

用途:

  • 商用ソフトウェア
  • 手動でインストールした大規模アプリ
  • 例:/opt/google/chrome

/lib と /lib64

プログラムが使う共有ライブラリが入っています。

違い:

  • /lib:32ビット用ライブラリ
  • /lib64:64ビット用ライブラリ

Windowsでいう「.dll」ファイルのようなものですね。

/srv(サービスデータ)

サーバーが提供するデータを置く場所です。

用途:

  • Webサーバーのコンテンツ(/srv/www/)
  • FTPサーバーのデータ(/srv/ftp/)

ただし、実際には/varを使うことの方が多いです。

セキュリティとパーミッション(権限)

Linuxのディレクトリには、それぞれアクセス権限が設定されています。

パーミッションの基本

ls -l /

を実行すると、こんな表示が出ます:

drwxr-xr-x  2 root root  4096 10月 1 10:00 bin
drwxr-xr-x  3 root root  4096 10月 1 10:00 boot

意味:

  • d:ディレクトリ
  • rwx:所有者の権限(読み・書き・実行)
  • r-x:グループの権限(読み・実行のみ)
  • r-x:その他のユーザーの権限(読み・実行のみ)

なぜ権限が重要か

セキュリティの観点:

  • 一般ユーザーが重要なファイルを削除できないようにする
  • 他のユーザーのデータを見られないようにする
  • システムを誤って壊さないようにする

よくある質問と回答

Q. なぜCドライブやDドライブがないの?

Linuxの設計思想が違うからです。

Linuxでは、すべてのストレージを一つの木構造に統合します。

例えば:

  • Cドライブ → /(ルート)にマウント
  • Dドライブ → /mnt/d にマウント
  • USBメモリ → /media/usb にマウント

全てが「/」から始まる一つの構造になります。

Q. Windowsのようにフォルダを作っていいですか?

場所によります。

自由に作れる場所:

  • 自分のホームディレクトリ(/home/ユーザー名)
  • /tmp

作ってはいけない場所:

  • /直下(ルート直下)
  • /etc、/bin、/bootなどのシステムディレクトリ

基本ルール:

  • 個人のデータは/home/ユーザー名の中に
  • システム全体で使うものは適切な場所に(要管理者権限)

Q. 削除してはいけないディレクトリはどれですか?

基本的にすべてのシステムディレクトリは重要です。

特に危険:

  • /bin、/sbin(コマンドが使えなくなる)
  • /etc(設定が全て消える)
  • /boot(起動できなくなる)
  • /lib(プログラムが動かなくなる)

削除しても大丈夫:

  • /tmp(一時ファイル)
  • 自分のホームディレクトリ内のファイル

Q. ファイルがどこにあるか分からなくなりました

findコマンドやlocateコマンドで検索できます。

# ファイル名で検索
find / -name "ファイル名" 2>/dev/null

# より高速に検索(データベース使用)
locate ファイル名

# ホームディレクトリ内を検索
find ~ -name "*.txt"

Q. ディレクトリの容量が大きくなりすぎたら?

原因を特定して対処しましょう。

# 容量の大きいディレクトリを探す
du -sh /* | sort -h

# /var/logが大きい場合
sudo du -sh /var/log/*

# 古いログを削除
sudo journalctl --vacuum-size=100M

よくある原因:

  • /var/log/のログファイルが肥大化
  • /home/のユーザーデータが増えた
  • /tmp/が掃除されていない

Q. もっと詳しく学ぶには?

おすすめの学習方法:

1. manコマンドで公式マニュアルを読む

man hier  # ディレクトリ階層の説明

2. 実際に探索してみる

ls /
cd /etc
ls -la

3. 書籍やオンライン講座で体系的に学ぶ

4. 練習用の仮想環境を作る

  • VirtualBoxなどで練習用Linux環境を構築
  • 失敗しても大丈夫な環境で実験

まとめ:Linuxファイルシステムは一本の木

Linuxファイルシステムの基本構造について解説してきました。

この記事のポイント:

✓ Linuxのファイルシステムは「/」(ルート)から始まる一つの木構造

✓ Windowsのようなドライブの概念はなく、すべてが統合されている

✓ /home はユーザーデータ、/etc は設定ファイル、/var は変動データ

✓ /bin や /usr/bin には実行ファイル(コマンド)が入っている

✓ ディレクトリごとにアクセス権限が設定されている

✓ 自分のホームディレクトリ以外は基本的に触らない

✓ FHS(Filesystem Hierarchy Standard)という標準規格に従っている

最も大切なこと:

Linuxのファイルシステムは、最初は複雑に見えるかもしれません。

でも、「すべては/から始まる一本の木」という基本を理解すれば、意外とシンプルなんです。

今日から実践すること:

  1. ls / でルート直下のディレクトリを確認してみる
  2. 自分のホームディレクトリ(cd ~)で練習する
  3. /etc や /var を見学してみる(触らずに見るだけ)
  4. man hier でディレクトリ構造の公式説明を読む

最初は迷うこともあると思いますが、使っているうちに自然と体に馴染んできます。

焦らず、少しずつLinuxのファイルシステムに慣れていってくださいね!

コメント

タイトルとURLをコピーしました