ディレクトリ構造の全体像 - Linuxファイルシステムを理解する
この記事でできるようになること
- 主要なディレクトリ(/、/home、/etc など)の役割を説明できる
- 目的のファイルがどこにありそうか見当をつけられる
前提知識(先に読むと理解しやすい記事)
「cd /etc とか /var/log とか、いろんな場所が出てくる。これ全部、何なの?」Linuxを触り始めると必ずぶつかる疑問です。この記事では、ライニー先輩とリナの対話を通じて、Linuxのディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。構造の地図を一緒に頭に入れていきましょう。
この記事でわかること
- Linux のファイルシステムが
/(ルート)から枝分かれする1本の木構造であること /etc/var/home/binなど主要ディレクトリの役割- FHS(ファイルシステム階層標準)という世界共通の決まり
/proc/dev/sysのような仮想ディレクトリの正体- 迷子になったときの現在地確認のコツ
1. 導入:ファイルシステムって何?
Documents フォルダが見当たりません。/etc や /usr など、知らない場所ばかりで迷子になります...ファイルシステムとは
Linuxでは、すべてのファイルとフォルダ(ディレクトリ)がたった1つの出発点から枝分かれする「木」のような構造になっています。この出発点をルートディレクトリと呼び、/(スラッシュ1文字)で表します。
/ から始まる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
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 ← 変化するデータ(ログなど)
home と root って似ています。別物なんですか?/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 - コマンドの本体
あなたが打つ ls や cp といったコマンドの「実体」がここにあります。
$ which ls /usr/bin/ls
ls ってコマンドだと思っていました。でも、ファイルなんですか?/usr/bin などに置かれたプログラムファイルなんだ。which コマンド名 でその場所を確認できるよ。最近のディストリでは /bin が /usr/bin への近道(シンボリックリンク、実体を指す“ショートカット”のようなもの)になっていることも多いよ。/tmp - 一時置き場
一時的なファイル置き場です。再起動すると中身が消えることが多いので、大事なファイルは置かないこと。
/tmp は「消えてもいいもの専用」。作業中の大事なデータをここに保存して再起動 → 消失、は初心者あるあるの事故です。保存先には必ず /home 以下を使いましょう。
/opt と /root(ひとことメモ)
- /opt: 後から追加でインストールした大きめのソフトが入ることがある場所
- /root: 管理者(rootユーザー)の個人フォルダ
/root の中を覗いてみます。...あれ、エラーになりました!$ cd /root bash: cd: /root: Permission denied
Permission denied って出ました。私、何か壊しちゃいましたか!?/root は管理者専用の部屋。一般ユーザーのリナは、その部屋の鍵を持っていないんだ。このエラーは「入れません」という合図にすぎないよ。5. 仮想的なディレクトリ /proc /dev /sys
結論:
/proc/dev/sysはディスク上に実在しない。システムの状態やハードウェア情報を見せる、特別な窓口だ。
/proc を ls したら数字のフォルダがいっぱい出てきて、不気味でした.../proc はディスク上に実在しないディレクトリなんだ。プロセス(今動いているプログラムのこと)の情報を、Linuxがその場で見せてくれる、いわば情報の窓口だよ。| ディレクトリ | 中身 | イメージ |
|---|---|---|
/proc |
実行中プロセスの情報 | システムの「健康診断窓口」 |
/dev |
デバイス(ディスク・USBなど) | 機器への「接続口」 |
/sys |
カーネルOS の中核となるプログラム。ハードウェアとソフトウェアの橋渡しをする。(Linuxの中核部分)やハードの情報 | 内部設定の「のぞき窓」 |
$ cat /proc/cpuinfo # CPUの情報が見られる $ ls /dev/sda* # ストレージのデバイス
出てくる内容はパソコンごとに違います。今は「読めなくても大丈夫」です。「こういう窓口がある」とだけ覚えておきましょう。
これらは「ファイルのフリをした情報」です。仕組みを完全に理解する必要はまだありません。「実体のない特別な箱がある」とだけ知っておけば十分です。
6. 迷子にならないコツ
結論: 迷ったら
pwdで現在地、cd /でルート、cd ~でホームに戻る。確実なのは絶対パス。
現在地確認の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
etc・var・home がちゃんとある。
課題2: 設定の倉庫に寄り道してから、自分の部屋に戻ろう
ヒント1(方向づけ)を見る
まず /etc に移動して現在地を確認する。そのあと、自分の部屋に一瞬で戻れる記号を使ってみよう。
ヒント2(コマンド名)を見る
cd /etc → pwd → cd ~ → 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 ~ で一瞬で部屋に帰れるから、もう怖くないです。/)か部屋(~)に戻る。これがディレクトリ移動の基本だよ。振り返り
/ が出発点で、そこから home や etc や var が枝分かれしてるんですね!/home」「設定は /etc」「ログは /var/log」。この3つだけでも実務でかなり戦えるよ。今日の3行まとめ
- Linuxは
/(ルート)を出発点にした1本の木。ドライブレターはない - 最重要は3つ —— 自分のものは
/home、設定は/etc、ログは/var/log - 迷ったら
pwdで現在地確認、cd /で根元、cd ~で自分の部屋に戻る