こんにちは!「リナックス先生」です。前回の環境構築、無事に終わったかしら?
「黒い画面」が出せるようになったら、次はそこを自由に歩き回れるようにならないといけないわ。Windowsならマウスでフォルダをダブルクリックすれば済むけれど、Linuxでは自分の足(コマンド)で進む必要があるの。今回は、Linuxの地図にあたる「ディレクトリ構造」を叩き込むわよ!
先生、よろしくお願いします!WSL2でUbuntuを開いてみたんですけど……ここ、どこなんですか?Windowsみたいに『PC』を開いて『Cドライブ』があって、っていうのが全然見当たらなくて。迷子になりそうです。
ふふ、いい反応ねコウ君!Windowsユーザーが最初にぶつかる壁、それが「ドライブという概念がない」ことなの。Linuxはすべてが一本の大きな木(ツリー構造)になっているわ。今日でその地図を頭の中にインストールしてあげるから、しっかりついてきてね!
WindowsユーザーのためのLinux最短学習カリキュラム(全8回)
- 第1回:マウスからの脱却!Linuxの基本思想と「黒い画面」の環境構築
- 【今回】第2回:もう迷子にならない!ディレクトリ構造の理解とファイル操作
- 第3回:Windowsにはない壁!「ユーザー権限」と「パーミッション」を攻略
- 第4回:エクスプローラーより100倍速い!ファイル検索とテキスト閲覧
- 第5回:メモ帳は捨てなさい!最強エディタ「Vim」サバイバルガイド
- 第6回:ソフトの追加とネットワークの基礎!Webサーバーを立ち上げよう
- 第7回:Linux最大の魔法!「パイプ」と「リダイレクト」でコマンドを繋ぐ
- 第8回:手作業からの卒業!「シェルスクリプト」でサーバー構築を全自動化
目次
1. 全ての源は「/(ルート)」にあり:Windowsとの構造的な違い
① 概念と背景(Why)
Windowsでは、HDDやSSDといった物理的なデバイスごとに「Cドライブ」「Dドライブ」といった名前が付きます。いわば「複数の島」があるようなイメージね。一方、Linuxにはドライブレターという概念が存在しません。すべてのファイルやディレクトリ(フォルダ)は、「/(スラッシュ)」という名前のたった一つの根源から枝分かれしています。これを「ルートディレクトリ」と呼ぶわ。
なぜこの構造が必要なのか?それは、物理的なデバイスをユーザーに意識させないためよ。Linuxでは、新しくハードディスクを追加しても「Eドライブ」にはなりません。「/data」といった特定のディレクトリにそのディスクを「連結(マウント)」して使うの。この仕組みのおかげで、システム全体が一つの大きな木として管理され、プログラムからファイルを指定する際も非常にシンプルになるわ。Windowsのエクスプローラーで「PC」を開いてドライブを選ぶ感覚から、「巨大な一本の木を根っこから辿る」感覚へ、頭を切り替えることが最短学習のコツよ。
② 実践手順と完全なコード(How)
まずは、自分が今いる場所を確認し、一番上の「根っこ」に移動して中身を覗いてみましょう。前回の `ls` コマンドを応用するわよ。
# 1. 自分が今どこにいるか確認(カレントディレクトリ) pwd # 2. 全ての根源であるルートディレクトリ(/)に移動 cd / # 3. ルート直下にあるディレクトリ群を確認 ls -F
③ プロによるコードの「1行・1オプション」徹底解説
- pwd:”Print Working Directory” [cite: 1, 5]。自分の現在地をフルパスで表示するわ。作業を始める前の「指差し確認」ね。
- cd /:”change directory” の略 [cite: 1]。`/` はルートディレクトリを指すわ。どこにいても、これを打てば世界の中心に戻れるの。
- ls -F:`ls` は一覧表示ね。`-F` オプションを付けると、名前の末尾に「/」が付くものはディレクトリ、「*」が付くものは実行ファイル、と記号を付けてくれるわ。一目で種類が判別できるプロ好みのオプションよ。
④ 現場のリアル(失敗談とノウハウ)
新人がよくやるミスに「ルート(/)」と「rootユーザーのホーム(/root)」を混同するというのがあるわ。`/` はすべての階層の頂点。対して `/root` は管理者ユーザー専用の部屋。これを間違えてルート直下に個人のファイルを散らかすと、ベテランエンジニアに「掃除しろ!」って怒られるわよ。システム全体に関わる場所なのか、個人の場所なのか。この区別を最初につけることが、プロへの第一歩ね。
2. 迷宮を歩く三種の神器:pwd, cd, ls を使い倒す
① 概念と背景(Why)
Windowsならエクスプローラーの左側に常にフォルダツリーが見えているけれど、Linuxの「黒い画面」では、あなたが命じない限り何も見えないわ。だからこそ、自分の現在地を把握する `pwd`、場所を変える `cd`、周りを見渡す `ls` の3つは、呼吸をするように使いこなせなければならないの。
これらのコマンドは、ただ場所を移動するためだけのものではないわ。Linuxでは、あらゆる設定ファイルが特定のディレクトリに隠されている。例えば、ネットワークの設定を変えたいなら `/etc` へ、ログを見たいなら `/var/log` へ移動する必要があるの。この移動作業をスムーズに行えるかどうかが、実務での「調査スピード」に直結するわ。マウスでポチポチフォルダを辿るよりも、コマンド一発で `/var/log/nginx/` にジャンプする方が圧倒的に速い。このスピード感こそが、プロがCUIを手放さない理由よ。
② 実践手順と完全なコード(How)
少し複雑な移動と、ディレクトリの作成・削除を体験してみましょう。失敗してもいい、自分の学習環境(WSL2など)で思い切り試してね。
# 1. 自分のホームディレクトリ(自分の部屋)に一瞬で戻る cd ~ # 2. 学習用のディレクトリ「linux_study」を作成 mkdir linux_study # 3. 作成したディレクトリに入る cd linux_study # 4. 一つ上の階層(親ディレクトリ)に戻る cd .. # 5. 先ほど作ったディレクトリを削除 rmdir linux_study
③ プロによるコードの「1行・1オプション」徹底解説
- cd ~:`~`(チルダ)は、ログインしているユーザーの「ホームディレクトリ」を表す特殊な記号よ [cite: 1, 5]。どこで迷子になっても、`cd` とだけ打つか `cd ~` と打てば、自分の部屋に帰れるわ。
- mkdir:”make directory” の略 [cite: 1]。新しいフォルダを作るわ。
- cd ..:`..` は「一つ上の階層」を指す超重要記号よ。これを使わない日は一日たりともないわね。ちなみに `.` は「今の場所」を指すわ。
- rmdir:”remove directory” の略。ただし、中身が空でないとエラーになるわ。中身ごと消す方法は、もっと危険な `rm -r` があるけれど、それはまた別の回で教えるわね。
④ 現場のリアル(失敗談とノウハウ)
現場で一番怖いのは「今どこでコマンドを打っているか勘違いすること」よ。本番環境のサーバーで `/var/www/html`(公開用フォルダ)を消すつもりが、実は `/`(ルート)にいてシステム全部消しちゃった……なんて笑えない事故が実際に起きているの。対策として、プロは「プロンプト(入力待ちの左側の文字)」に常にカレントディレクトリを表示させる設定にするわ。でも過信は禁物。重要なコマンドを打つ前には、必ず `pwd` を打つ癖をつけて。その1秒の「指差し確認」が、あなたのエンジニア生命を救うわよ!
3. 「今どこ?」を定義する:絶対パスと相対パスの完全理解
① 概念と背景(Why)
目的地までの道順を説明する時、2通りの言い方があるわよね。「東京都千代田区1-1…」のように住所を最初から全部言うか、「ここから右に曲がって2つ目の角」のように現在地から言うか。Linuxの世界でも全く同じ。前者を「絶対パス」、後者を「相対パス」と呼ぶわ。
Linux教科書 LPICレベル1 Version5.0対応 (EXAMPRESS) [ 中島 能和 ] 価格:4180円 |
絶対パスは、常にルート `/` から書き始めるわ。どこから実行しても同じ場所を指すから、設定ファイルやプログラムの中でパスを指定する時に必須よ。一方、相対パスは現在地からの距離で指定する。「一つ上の隣のフォルダ」といった具合ね。作業中にサッと隣のディレクトリのファイルを見たい時に便利よ。この2つを混同すると、プログラムが動かなかったり、思わぬ場所のファイルを操作してしまったりする。プロのエンジニアは、状況に応じてこの2つの視点を脳内で瞬時に切り替えているのよ。
② 実践手順と完全なコード(How)
同じ目的地(`/var/log`)に対して、2つの方法でアプローチしてみましょう。
# 前提:現在は自分のホームディレクトリ (/home/user) にいるとする # 1. 絶対パスで移動(どこにいても確実) cd /var/log # 2. いったんホームに戻る cd # 3. 相対パスで移動(今いる場所から辿る) # /home/user から /var/log へ行くには、2つ上がってから下る cd ../../var/log
③ プロによるコードの「1行・1オプション」徹底解説
- /var/log:先頭に `/` が付いているから絶対パスね。世界の頂点(ルート)からの住所よ。
- ../../var/log:先頭が `/` 以外で始まっているから相対パスよ。
- ..:一つ上へ。
- ../..:二つ上へ。これで `/home/user` からルート `/` まで戻ったことになるわ。
- var/log:そこから `var` の中の `log` へ入れ、という意味ね。
④ 現場のリアル(失敗談とノウハウ)
シェルスクリプト(自動化プログラム)を書く時は、**「必ず絶対パスを使う」**のがプロの鉄則よ!相対パスで書いてしまうと、そのスクリプトをどこから実行するかによって、動作対象が変わってしまうから。逆に、手元の作業で `ls ../config.conf` みたいに打つのは、相対パスの方が圧倒的に速いわね。この「確実性の絶対パス」と「機動力の相対パス」を使い分けられるようになれば、あなたも立派なLinux使いの仲間入りよ。
4. 現場で役立つ!主要ディレクトリの役割一覧
① 概念と背景(Why)
Linuxのルート直下には、名前だけ見ても何が入っているか分からないディレクトリが並んでいるわ。Windowsなら `Program Files` や `Users` といった分かりやすい名前があるけれど、Linuxは歴史的な経緯で3文字程度の短い名前が多いの。
でも安心して。これらはバラバラに置かれているわけじゃなくて、「FHS(Filesystem Hierarchy Standard)」という世界共通のルールに基づいて配置されているわ。例えば「設定ファイルは必ずここ」「ログは必ずここ」と決まっているから、一度覚えてしまえばどんなLinuxサーバーを触っても迷わなくなる。これはWindowsにはない、Linuxの大きな強みね。主要な場所を覚えることは、サーバー管理という巨大なジグソーパズルの枠組みを作るようなものよ。
② 実践手順と完全なコード(How)
実際に主要なディレクトリを巡回してみましょう。見るだけなら壊れることはないから、安心して覗いてみて!
| ディレクトリ | 主な役割 |
|---|---|
| /bin | 基本コマンド(ls, cpなど)が入っている場所 |
| /etc | 【超重要】設定ファイルが詰まっている場所 |
| /home | 一般ユーザーの「自分の部屋」が並ぶ場所 |
| /var | ログ(履歴)やメールなど、変化するデータが入る場所 |
| /tmp | 一時的な作業場(再起動すると消えることが多い) |
| /root | 管理者(rootユーザー)専用のホームディレクトリ |
# 各ディレクトリを覗いてみる例 ls /etc ls /var/log
③ プロによるコードの「1行・1オプション」徹底解説
- ls /etc:ここを覗くと、システムがどう動くべきかという「ルール」がびっしり書かれたファイルが見えるわ。エンジニアが最も頻繁に訪れる聖地ね。
- ls /var/log:何かトラブルが起きた時、真っ先に駆け込むのがここよ。サーバーが吐き出した「叫び(エラー)」がここに記録されているわ。
④ 現場のリアル(失敗談とノウハウ)
「ディスク容量が100%になってサーバーが止まった!」というトラブル、現場ではよくあるの。その犯人のほとんどが `/var/log` よ。ログが肥大化して、ディスクを食いつぶしてしまうのね。だからプロは、`/var` だけを別のディスクに分けたり、定期的に古いログを圧縮して捨てる「ログローテーション」という設定を入れるわ。初心者のうちは、`/var` の中身が急に増えていないか時々チェックするだけでも、立派な運用監視の第一歩になるわよ!
先生、地図が見えてきました!`/etc` は設定、`/var` はログ、って呪文みたいに覚えます。相対パスの `..` も、最初ややこしかったけど、要は「戻るボタン」だと思えばいいんですよね?
その通り!飲み込みが早いわね、コウ君。でも、自由自在に歩き回れるようになると、今度は「他人の部屋に勝手に入っちゃいけない」とか「このファイルは書き換えちゃダメ」っていうルールが重要になってくるの。それが次回のテーマ、**『ユーザー権限とパーミッション』**よ。これを知らないと、いずれサーバーを壊しちゃうから、気合を入れて臨んでちょうだい!
▼ サーバー構築・開発を学ぶならVPSで ▼
エンジニア必須の環境
「おすすめVPS」
技術スキルを活かす
「ITエンジニア転職」

コメント