ディレクトリ構造の全体像 - Linuxファイルシステムを理解する
「cd /etc とか /var/log とか、いろんな場所が出てくるけど、これって全部何なの?」Linuxを触り始めると必ずぶつかる疑問です。この記事では、ライニー先輩とリナの対話を通じて、Linuxのディレクトリ構造の地図を一緒に頭に入れていきましょう。
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」とほぼ同じ場所にあります。ディストリビューションが違っても迷わないのはこの標準のおかげです。
3. 主要ディレクトリの地図
/ ← すべての出発点(ルート) ├── bin ← 基本コマンド(ls, cp など) ├── boot ← 起動に必要なファイル ├── dev ← デバイス(ディスク、USBなど) ├── etc ← システム全体の設定ファイル ├── home ← ユーザーごとの個人フォルダ │ └── yamada ← yamadaさんの「自分の部屋」 ├── lib ← 共有ライブラリ(プログラムの部品) ├── opt ← 追加で入れたソフト ├── proc ← 動作中のプロセス情報(仮想) ├── root ← 管理者(root)の個人フォルダ ├── tmp ← 一時ファイル(再起動で消える) ├── usr ← アプリやコマンド本体の置き場 └── var ← 変化するデータ(ログなど)
home と root って似てますけど、別物なんですか?/home/ユーザー名 は一般ユーザーの部屋、/root は管理者専用の部屋だよ。名前は似てるけど、ルートディレクトリ / とも、管理者の部屋 /root とも、全部別物。混同しやすいから後で整理するね。ざっくり3グループで覚える
| グループ | ディレクトリ | ひとことで言うと |
|---|---|---|
| 使う人のもの | /home, /root |
個人のファイル置き場 |
| システムのもの | /etc, /bin, /usr, /lib |
設定・プログラム本体 |
| 動いて変わるもの | /var, /tmp, /proc, /dev |
ログ・一時・実行中の情報 |
4. よく使うディレクトリを詳しく
/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ユーザー)の個人フォルダ。一般ユーザーは入れない(
Permission deniedになる)
5. 仮想的なディレクトリ /proc /dev /sys
/proc を ls したら数字のフォルダがいっぱい出てきて、不気味でした.../proc はディスク上に実在しないディレクトリなんだ。Linuxが「今動いている状態」をその場で見せてくれる、いわば情報の窓口だよ。| ディレクトリ | 中身 | イメージ |
|---|---|---|
/proc |
実行中プロセスの情報 | システムの「健康診断窓口」 |
/dev |
デバイス(ディスク・USBなど) | 機器への「接続口」 |
/sys |
カーネルやハードの情報 | 内部設定の「のぞき窓」 |
$ cat /proc/cpuinfo # CPUの情報が見られる $ ls /dev/sda* # ストレージのデバイス
これらは「ファイルのフリをした情報」です。仕組みを完全に理解する必要はまだありません。「実体のない特別な箱がある」とだけ知っておけば十分です。
6. 迷子にならないコツ
現在地確認の3点セット
$ pwd # 今どこにいる?(絶対パスで表示) $ ls # ここに何がある? $ cd / # ルートに戻ってやり直す
cd / でいちばん上に戻れるんですね。cd / でルートに戻って、そこから ls で枝を1つずつたどれば、必ず目的地にたどり着ける。木の根元に戻る感覚だよ。cd ~ なら自分の部屋(ホーム)に一発で戻れる。絶対パスと相対パス
| 種類 | 例 | 意味 |
|---|---|---|
| 絶対パス | /var/log/syslog |
/ から書いた完全な住所 |
| 相対パス | log/syslog |
今いる場所からの道順 |
迷ったときは絶対パス(/ から始まる書き方)を使うと確実です。「どこにいても同じ場所を指す」のが絶対パスの強みです。
ミニ課題
課題1: ルートを探検しよう
ls / を実行して、この記事に出てきたディレクトリ(etc, var, home など)が実際にあるか確認しよう。
課題2: 自分の部屋に戻ろう
cd /etc でいったん設定の倉庫に移動し、pwd で現在地を確認。そのあと cd ~ で自分のホームに戻り、もう一度 pwd で戻れたか確かめよう。
課題3: コマンドの正体を見よう
which ls を実行して、ls コマンドの本体がどのディレクトリにあるか確認しよう。/usr/bin か /bin のどちらだったかな?
/etc に行っても cd ~ で一瞬で部屋に帰れるから、もう怖くないです。/)か部屋(~)に戻る。これがディレクトリ移動の基本だよ。振り返り
/ が出発点で、そこから home や etc や var が枝分かれしてるんですね!/home」「設定は /etc」「ログは /var/log」。この3つだけでも実務でかなり戦えるよ。今日の3行まとめ
- Linuxは
/(ルート)を出発点にした1本の木。ドライブレターはない - 最重要は3つ —— 自分のものは
/home、設定は/etc、ログは/var/log - 迷ったら
pwdで現在地確認、cd /で根元、cd ~で自分の部屋に戻る