ディレクトリ構造の全体像 - Linuxファイルシステムを理解する

ディレクトリ構造の全体像 - Linuxファイルシステムを理解する

この記事でできるようになること

  • 主要なディレクトリ(/、/home、/etc など)の役割を説明できる
  • 目的のファイルがどこにありそうか見当をつけられる

前提知識(先に読むと理解しやすい記事)

cd /etc とか /var/log とか、いろんな場所が出てくる。これ全部、何なの?」Linuxを触り始めると必ずぶつかる疑問です。この記事では、ライニー先輩とリナの対話を通じて、Linuxのディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。構造の地図を一緒に頭に入れていきましょう。

この記事でわかること

  • Linux のファイルシステムが /(ルート)から枝分かれする1本の木構造であること
  • /etc /var /home /bin など主要ディレクトリの役割
  • FHS(ファイルシステム階層標準)という世界共通の決まり
  • /proc /dev /sys のような仮想ディレクトリの正体
  • 迷子になったときの現在地確認のコツ

1. 導入:ファイルシステムって何?

リナ: ライニー先輩、Linuxには Documents フォルダが見当たりません。/etc/usr など、知らない場所ばかりで迷子になります...
ライニー先輩: それはよく分かるよ。Windowsの「Cドライブ」みたいな感覚で探すと混乱するんだ。Linuxには1本の大きな木のような構造がある。まずその全体像をつかもう。

ファイルシステムとは

Linuxでは、すべてのファイルとフォルダ(ディレクトリ)がたった1つの出発点から枝分かれえだわかれする「木」のような構造になっています。この出発点をルートディレクトリと呼び、/(スラッシュ1文字)で表します。

リナ: Windowsだと「Cドライブ」「Dドライブ」に分かれていました。Linuxは違うんですか?
ライニー先輩: そう、そこが大きな違い。Linuxにはドライブレターがないんだ。USBメモリも外付けディスクも、ぜんぶ / から始まる1本の木の「どこかの枝」としてつながる。これを覚えておくと、あとで楽になるよ。

なぜ構造を知ると得なのか

  • 設定ファイルの場所が予想できる(だいたい /etc の中)
  • ログの場所が分かる(だいたい /var/log
  • エラーメッセージのパスファイルやディレクトリの場所を表す文字列。を見て「これはシステム領域だな」と当たりがつく
  • 「どこに何を置けばいいか」で迷わなくなる

2. すべての出発点「/」(ルート)

結論: /(ルート)はすべてのファイルの先祖にあたる最上位ディレクトリ。ここから全体が枝分かれする。

リナ: さっき出てきた / って、それ自体がフォルダなんですか?
ライニー先輩: その通り。/いちばん上のディレクトリで、すべてのファイルの先祖にあたる場所だよ。試しに中身を見てみよう。
$ ls /
bin   dev  home  lib    mnt  proc  run   srv  tmp  var
boot  etc  lib64  media  opt  root  sbin  sys  usr
リナ: わー、たくさんありますね。これ全部覚えるんですか...?
ライニー先輩: 安心して。全部を暗記する必要はないよ。最初に押さえるのは5〜6個だけ。残りは「そういう箱があるんだ」くらいでOK。この並び順には実はルールがあってね、**FHS(Filesystem Hierarchy Standard)**っていう世界共通の決まりに従っているんだ。

FHS(ファイルシステム階層かいそう標準)

どのディレクトリに何を置くかを決めた標準仕様です。これがあるおかげで、UbuntuでもCentOSでも「設定は /etc」「ログは /var/log」とほぼ同じ場所にあります。

なお、UbuntuやCentOSのような「Linuxの配布セット」をディストリビューション(略して「ディストリ」)と呼びます。ディストリが違っても迷わないのは、この標準のおかげです。

3. 主要ディレクトリの地図

結論: 主要ディレクトリは「使う人のもの」「システムのもの」「動いて変わるもの」の3グループで覚えると整理しやすい。

ライニー先輩: まずは全体マップを見てみよう。これが頭に入れば、もう迷子にはならないよ。
/                  ← すべての出発点(ルート)
├── bin            ← 基本コマンド(ls, cp など)
├── boot           ← 起動に必要なファイル
├── dev            ← デバイス(ディスク、USBなど)
├── etc            ← システム全体の設定ファイル
├── home           ← ユーザーごとの個人フォルダ
│   └── yamada     ← yamadaさんの「自分の部屋」
├── lib            ← 共有ライブラリ(プログラムの部品)
├── opt            ← 追加で入れたソフト
├── proc           ← プロセス(実行中のプログラム)の情報(仮想)
├── root           ← 管理者(root)の個人フォルダ
├── tmp            ← 一時ファイル(再起動で消える)
├── usr            ← アプリやコマンド本体の置き場
└── var            ← 変化するデータ(ログなど)
リナ: homeroot って似ています。別物なんですか?
ライニー先輩: いいところに気づいたね。/home/ユーザー名一般ユーザーの部屋だよ。/root管理者専用の部屋なんだ。
リナ: さっき出てきたルートディレクトリ / とも似ていて、ややこしいです...
ライニー先輩: そこは混同こんどうしやすいところだね。表に並べて、今すぐ整理しよう。

「ルート」と付く3つを区別する

書き方 呼び方 何を指すか
/ ルートディレクトリ いちばん上のディレクトリ。すべての出発点
/root 管理者のホーム 管理者(rootすべての操作が許可された特別な管理者ユーザー。ユーザー)の個人フォルダ
root rootユーザー 管理者アカウントの名前。を指す言葉

同じ「root」という言葉でも、指すものが3つに分かれます。/ は場所のてっぺん/root は管理者の部屋root は管理者という人の名前。この3つを分けて覚えれば混乱しません。

3つのグループで覚える

グループ ディレクトリ ひとことで言うと
使う人のもの /home, /root 個人のファイル置き場
システムのもの /etc, /bin, /usr, /lib 設定・プログラム本体
動いて変わるもの /var, /tmp, /proc, /dev ログ・一時・実行中の情報

4. よく使うディレクトリを詳しく

結論: 自分のものは /home、設定は /etc、ログは /var/log、コマンド本体は /usr/bin、一時置きは /tmp

リナ: それぞれ、もう少し具体的に知りたいです。
ライニー先輩: よく顔を出すものから順番に見ていこう。「いつ使うか」をセットで覚えると忘れにくいよ。

/home - あなたの作業場所

ユーザーごとの個人ディレクトリです。yamada というユーザーなら /home/yamada が割り当てられ、ターミナル入力したコマンドを解釈してコンピュータに実行させる対話プログラム。では ~(チルダ)で表せます。

$ cd ~
$ pwd
/home/yamada

普段ファイルを作ったり編集したりするのは、ほぼここの中です。自分のものは /home の下、と覚えておけば安全です。

/etc - 設定ファイルの倉庫

システム全体の設定ファイルが集まる場所です。読み方は「エトセ」や「エトシー」。

$ ls /etc
hostname  hosts  passwd  ssh  network  ...
リナ: passwd ってパスワードが書いてあるんですか!?
ライニー先輩: 名前は紛らわしい。でも /etc/passwd に書かれているのはユーザーの一覧情報だよ。パスワードそのものは入っていない(実際の暗号化パスワードは /etc/shadow にある)。/etc の中身は基本「読むだけ」と覚えておこう。編集には管理者権限けんげんが必要なものが多いよ。

/var - 変化し続けるデータ

「variable(変わる)」の略。サイズが増えたり減ったりするデータが入ります。初心者がいちばんお世話になるのはログです。

$ ls /var/log
syslog  auth.log  dpkg.log  ...

トラブル時に最初に見る場所が /var/log です。「何かおかしい」と思ったらここのログを確認する、というのは実務でも基本の動きになります。

/bin と /usr/bin - コマンドの本体

あなたが打つ lscp といったコマンドの「実体」がここにあります。

$ which ls
/usr/bin/ls
リナ: ls ってコマンドだと思っていました。でも、ファイルなんですか?
ライニー先輩: そう、コマンドの正体は /usr/bin などに置かれたプログラムファイルなんだ。which コマンド名 でその場所を確認できるよ。最近のディストリでは /bin/usr/bin への近道(シンボリックリンク、実体を指す“ショートカット”のようなもの)になっていることも多いよ。

/tmp - 一時置き場

一時的なファイル置き場です。再起動すると中身が消えることが多いので、大事なファイルは置かないこと。

/opt と /root(ひとことメモ)

  • /opt: 後から追加でインストールした大きめのソフトが入ることがある場所
  • /root: 管理者(rootユーザー)の個人フォルダ
リナ: ちょっと /root の中を覗いてみます。...あれ、エラーになりました!
$ cd /root
bash: cd: /root: Permission denied
リナ: Permission denied って出ました。私、何か壊しちゃいましたか!?
ライニー先輩: 壊れていないから安心して。/root は管理者専用の部屋。一般ユーザーのリナは、その部屋の鍵を持っていないんだ。このエラーは「入れません」という合図にすぎないよ。
リナ: よかった...!壊したのかと思って焦りました。

5. 仮想かそう的なディレクトリ /proc /dev /sys

結論: /proc /dev /sys はディスク上に実在じつざいしない。システムの状態やハードウェア情報を見せる、特別な窓口だ。

リナ: /procls したら数字のフォルダがいっぱい出てきて、不気味でした...
ライニー先輩: 怖がらなくて大丈夫。/procディスク上に実在しないディレクトリなんだ。プロセス(今動いているプログラムのこと)の情報を、Linuxがその場で見せてくれる、いわば情報の窓口だよ。
ディレクトリ 中身 イメージ
/proc 実行中プロセスの情報 システムの「健康診断窓口」
/dev デバイス(ディスク・USBなど) 機器への「接続口」
/sys カーネルOS の中核となるプログラム。ハードウェアとソフトウェアの橋渡しをする。(Linuxの中核部分)やハードの情報 内部設定の「のぞき窓」
$ cat /proc/cpuinfo   # CPUの情報が見られる
$ ls /dev/sda*        # ストレージのデバイス

出てくる内容はパソコンごとに違います。今は「読めなくても大丈夫」です。「こういう窓口がある」とだけ覚えておきましょう。

これらは「ファイルのフリをした情報」です。仕組みを完全に理解する必要はまだありません。「実体のない特別な箱がある」とだけ知っておけば十分です。

結論: 迷ったら pwd で現在地、cd / でルート、cd ~ でホームに戻る。確実なのは絶対パス。

リナ: 構造は分かってきました。でも実際に動いていると、やっぱり迷子になりそうで...
ライニー先輩: そんなときの「現在地確認3点セット」を教えるね。これさえあれば、どこにいても落ち着けるよ。

現在地確認の3点セット

$ pwd          # 今どこにいる?(絶対パスで表示)
$ ls           # ここに何がある?
$ cd /         # ルートに戻ってやり直す
リナ: cd / でいちばん上に戻れるんですね。
ライニー先輩: そう。迷ったら cd / でルートに戻ろう。そこから ls で枝を1つずつたどれば、必ず目的地にたどり着ける。木の根元に戻る感覚だよ。cd ~ なら自分の部屋(ホーム)に一発で戻れる。

絶対パスと相対パス

種類 意味
絶対パス /var/log/syslog / から書いた完全な住所
相対パス log/syslog 今いる場所からの道順

迷ったときは絶対パス/ から始まる書き方)を使うと確実です。「どこにいても同じ場所を指す」のが絶対パスの強みです。

ミニ課題

結論: 3つの課題で「ルートの中身」「自分の部屋への戻り方」「コマンドの本体の場所」を自分の手で確かめる。答えを見る前に、まず自分で打ってみよう。

ライニー先輩: それじゃあ、地図が頭に入ったか確認してみよう!

課題1: ルートを探検しよう。この記事に出てきたディレクトリ(etc, var, home など)が実際にあるか確認しよう

ヒント1(方向づけ)を見る

/ の直下に何があるか、一覧表示してみよう。第2章で一度使ったコマンドだよ。

ヒント2(コマンド名)を見る

ls / を実行しよう。

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

etcvarhome がちゃんとある。

課題2: 設定の倉庫に寄り道してから、自分の部屋に戻ろう

ヒント1(方向づけ)を見る

まず /etc に移動して現在地を確認する。そのあと、自分の部屋に一瞬で戻れる記号を使ってみよう。

ヒント2(コマンド名)を見る

cd /etcpwdcd ~pwd の順に実行しよう。

答えを見る
$ cd /etc
$ pwd
/etc
$ cd ~
$ pwd
/home/yamada

cd ~ で自分のホームに一瞬で戻れた。

課題3: コマンドの正体を見よう

ヒント1(方向づけ)を見る

ls コマンドの本体(実体)が、ディスク上のどのファイルなのかを調べるための専用コマンドがあったね。

ヒント2(コマンド名)を見る

which ls を実行しよう。

答えを見る
$ which ls
/usr/bin/ls

本体は /usr/bin の中にあった。

リナ: できました!/etc に行っても cd ~ で一瞬で部屋に帰れるから、もう怖くないです。
ライニー先輩: その感覚が大事。迷ったら根元(/)か部屋(~)に戻る。これがディレクトリ移動の基本だよ。

振り返り

リナ: 今日はLinuxのディレクトリ構造を学びました。/ が出発点で、そこから homeetcvar が枝分かれしてるんですね!
ライニー先輩: その通り。そして「自分のものは /home」「設定は /etc」「ログは /var/log」。この3つだけでも実務でかなり戦えるよ。
リナ: 知らない場所が出てきても、「これはシステム側だな」って当たりがつくようになりました。
ライニー先輩: 完璧だね。地図が頭にあると、エラーメッセージのパスを見ただけで状況が読めるようになる。次は実際にファイルを作って動かしてみよう!

今日の3行まとめ

  1. Linuxは /(ルート)を出発点にした1本の木。ドライブレターはない
  2. 最重要は3つ —— 自分のものは /home、設定は /etc、ログは /var/log
  3. 迷ったら pwd で現在地確認、cd / で根元、cd ~ で自分の部屋に戻る

次に読む

ディレクトリ構造の地図が頭に入ったら、実際に移動・操作して体に覚えさせましょう。

この記事を共有