Lv1 では、自分のホームディレクトリ(~)の中で、作る・コピーする・消す・見る・編集する、をひと通り練習しました。ここからは Lv2 です。少しだけ視野を広げて、Linux 全体のフォルダ構成を見ていきましょう。
ネットの手順書を読んでいると、「/etc の設定ファイルを開いて」「ログは /var/log にあります」のように、見慣れない場所が急に出てきますよね。私も最初は、/etc と /usr の違いがさっぱりわからず、手順書をコピーして貼るだけになっていました。
でも、それぞれの場所の役割がわかると、「設定なら /etc かな」「ログなら /var/log かな」と、自分で当たりをつけられるようになります。この記事では、よく出てくるディレクトリの役割と、ショートカットのような「リンク」を、実際に見ながら確認していきます。
- Linux のいちばん上の場所(
/)にある、主なディレクトリの役割 -
/etc・/home・/var・/usr・/tmpをのぞいてみる方法 - コマンドの本体がどこにあるかを調べる
which - ショートカットのような「シンボリックリンク」と
ln -sの使い方
-
pwd・ls・cdと、絶対パス(/から始まるパス)がわかる -
cat・lessでファイルの中身を表示できる
まだの方は「Linuxのパス入門|絶対パス・相対パス・~(チルダ)と ..(ドットドット)をやさしく解説」から読むのがおすすめです。前の記事は「ターミナルでファイルを編集する|nano入門とvimの「保存して終了」だけ覚える」です。
- IPアドレス:ネットワーク上のコンピューターの住所にあたる番号
- ディスク:データをしまっておく部品(SSD など)。電源を切っても消えません
- コマンド:パソコンへの指示の言葉。ターミナルに打って Enter で実行します
- ログ:プログラムが残す「いつ、何が起きたか」の記録
用語で迷ったら、連載のまとめ記事の「よく出てくる用語ミニ辞典」でも確かめられます。
結論:まずはこの6か所だけ覚えればOK
| 場所 | 役割(ひとことで) | たとえるなら |
|---|---|---|
/ | すべての出発点(ルート) | 建物の入り口 |
/home | ユーザーごとの部屋(/home/kaito など) | 自分の部屋 |
/etc | システムやソフトの設定ファイル | 設定の書類棚 |
/var | 増えたり変わったりするデータ。特に /var/log はログ | 日誌・記録の棚 |
/usr | 入れたソフトやコマンドの本体 | 道具箱 |
/tmp | 一時的なファイル置き場 | 作業台(片付けられることがある) |
全部を覚える必要はありません。自分のファイルは /home、設定は /etc、ログは /var/log。まずはこの3つを押さえておけば、手順書がぐっと読みやすくなります。
いちばん上の場所「/」をのぞいてみる
Linux のファイルは、すべて /(ルート)から始まる1本の木のような形でつながっています。Windows のように「C ドライブ」「D ドライブ」と分かれてはいません。まずは、いちばん上を見てみましょう。
- 1
ls /ここから先の出力例は、Debian 13での実行例です(ユーザー名 kaito・パソコン名 demo のダミー環境)。UbuntuやWSL(=Windows の中で Linux を動かせる、Microsoft のしくみ)では、表示が少し違うことがあります。
(例)
- 1
- 2
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr今回の検証は、確認用に最小限の構成にした Debian 13 で行いました。インストーラーで入れた普通の Debian では、ほかに lost+found や vmlinuz・initrd.img などが並ぶこともあります。また、ふつうの ls では、どれがリンクなのかは文字だけでは見分けられません(色が付いて表示されるだけです)。リンクの見分け方は、この記事の後半で紹介します。
たくさん出てきますが、ほとんどはシステムが使う場所です。ふだん私たちが触るのは、ほんの一部だけ。ここからは、よく出てくる場所を順番に見ていきます。
/ の下にあるディレクトリは、システムが動くために必要なものばかりです。この記事では ls・cat・less でのぞくだけにして、作る・消す・書き換えるのは、これまでどおり ~/linux-practice の中だけで行いましょう。
/home:ユーザーごとの部屋
/home の中には、ユーザーごとのディレクトリがあります。ふだん ~ と書いている場所の正体は、ここです。
- 1
- 2
ls /home
echo ~(例)
- 1
- 2
- 3
- 4
kaito@demo:~$ ls /home
kaito
kaito@demo:~$ echo ~
/home/kaito~ は「/home/kaito」の省略形だった、というわけですね。自分の部屋の中なら、自由に作ったり消したりできます。
/root:管理者の部屋
ちなみに、管理者(root)の部屋だけは /home の中ではなく、/root という別の場所にあります。ふつうのユーザーは中をのぞけません。
- 1
ls /root(例)
- 1
ls: cannot open directory '/root': Permission denied「cannot open directory(ディレクトリを開けません)」「Permission denied(許可がありません)」と出たら、それが正常です。誰が何をできるかの決まり(パーミッション)は、次の記事でくわしく見ていきます。
/etc:設定ファイルの書類棚
/etc には、システムやソフトの設定ファイルが集まっています。読み方は「エトセ」「イーティーシー」など、人によっていろいろです。
- 1
ls /etc(例)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
X11 deluser.conf ld.so.conf opt shadow-
adduser.conf depmod.d ld.so.conf.d os-release shells
aliases dhcp libaudit.conf pam.conf skel
alternatives dhcpcd.conf lighttpd pam.d ssh
apache2 dpkg locale.alias passwd ssl
apparmor.d e2scrub.conf locale.conf passwd- subgid
apt email-addresses locale.gen perl subgid-
bash.bashrc environment localtime ppp subuid
bash_completion ethertypes login.defs profile subuid-
bash_completion.d exim4 logrotate.conf profile.d sudo.conf
bindresvport.blacklist fstab logrotate.d protocols sudo_logsrvd.conf
binfmt.d gai.conf machine-id python3 sudoers
ca-certificates gprofng.rc mail.rc python3.13 sudoers.d
ca-certificates.conf groff mailname rc0.d supercat
ca-certificates.conf.dpkg-old group manpath.config rc1.d sysctl.d
credstore group- mime.types rc2.d systemd
credstore.encrypted gshadow mke2fs.conf rc3.d terminfo
cron.d gshadow- modprobe.d rc4.d timezone
cron.daily gss modules rc5.d tmpfiles.d
cron.hourly host.conf modules-load.d rc6.d udev
cron.monthly hostname motd rcS.d update-motd.d
cron.weekly hosts mtab resolv.conf vconsole.conf
cron.yearly init.d nanorc rmt vim
crontab inputrc netconfig rpc xattr.conf
dbus-1 issue network security xdg
debconf.conf issue.net networks selinux
debian_version kernel nftables.conf services
default ld.so.cache nsswitch.conf shadow中身は環境によって違います(今回の検証環境には、apache2 や exim4 など、検証用の都合で入っているものも並んでいます)。名前を全部覚える必要はありません。
数が多いので、ひとつだけ開いてみましょう。/etc/os-release には、使っている Linux の種類やバージョンが書かれています。
- 1
cat /etc/os-release(例)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.7
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"PRETTY_NAME の行を見ると、「Debian」なのか「Ubuntu」なのか、どのバージョンなのかがわかります。AI に質問するときも、この情報を添えると答えが正確になりますよ。
/etc の設定ファイルの多くは、ふつうのユーザーでは読めても書き換えられないようになっています。書き換えるには sudo(管理者の権限を借りるコマンド)が必要です。sudo は、この Lv2 の記事でくわしく扱います。
/var:ログなど、増えていくデータ
/var は「variable(変わるもの)」の略です。使っているうちに増えたり変わったりするデータが置かれます。中でもよく使うのが、ログが集まる /var/log です。
- 1
ls /var/log(例)
- 1
- 2
README apt btmp exim4 lastlog wtmp
alternatives.log bootstrap.log dpkg.log journal privateapt というディレクトリや dpkg.log には、ソフトを入れたり消したりした記録が残ります(並ぶものは環境によって違います)。
ログの中には、管理者しか読めないものもあります。自動化のスクリプト(=やりたい処理を順番に書いておき、まとめて実行できるファイル)がうまく動かないときは、こうしたログが手がかりになります。ログの読み方は、Lv4 でくわしく扱います。
/usr:コマンドやソフトの本体
/usr には、入れたソフトやコマンドの本体が置かれています。ふだん使っている ls や cat も、実はここにあるファイルです。which で、コマンドの本体がどこにあるか調べてみましょう。
- 1
- 2
- 3
which ls
which cat
which python3(例)
- 1
- 2
- 3
- 4
- 5
- 6
kaito@demo:~$ which ls
/usr/bin/ls
kaito@demo:~$ which cat
/usr/bin/cat
kaito@demo:~$ which python3
/usr/bin/python3今回の環境には Python 3 が入っていたので /usr/bin/python3 と表示されました。入っていない環境では、何も表示されずに次のプロンプトに戻ります。
/usr/bin の bin は「binary(実行できるファイル)」の略です。「コマンドを打つと、このファイルが動いているんだ」と思っておけば大丈夫です。
which で何も表示されないときは、そのコマンドが入っていないか、見つけられない場所にあります。「command not found」の正体と、コマンドを探す場所(PATH)の話は、Lv3 の記事で扱います。
/tmp:一時的なファイル置き場
/tmp は、一時的なファイルを置く場所です。誰でも書き込めますが、再起動などのタイミングで消えることがあるので、大事なファイルは置かないようにしましょう。
- 1
ls -ld /tmp(例)
- 1
drwxrwxrwt 2 root root 4096 Nov 1 03:14 /tmp最初の drwxrwxrwt のような文字は、「誰が何をできるか」を表しています。読み方は次の記事で説明するので、今は「こういう表示が出るんだな」くらいで大丈夫です。
ひとつだけ先に言っておくと、いちばん最後の t は /tmp ならではの印です。「誰でもファイルを置ける。でも、消したり名前を変えたりできるのは、自分のファイル(とその場所の持ち主)だけ」という意味で、スティッキービットと呼ばれます。みんなで使う作業台なので、ほかの人のファイルを勝手に片付けられないようにしてあるんですね。
その他のディレクトリ(ざっくりでOK)
| 場所 | 役割 |
|---|---|
/bin・/sbin | 基本的なコマンド(最近の Debian・Ubuntu では /usr/bin などへのリンク) |
/lib | コマンドが使う部品(ライブラリ) |
/boot | 起動に使うファイル |
/dev | ディスクなどの機器を表す特別なファイル |
/proc | 動いているプログラムなどの情報を見せる、特別な場所 |
/opt | あとから入れた大きめのソフトが置かれることがある |
/mnt・/media | USB メモリや別のディスクをつなぐ場所 |
WSL では、Windows の C ドライブが /mnt/c として見えます。たとえば Windows のユーザーフォルダは /mnt/c/Users/… です。Windows と Linux のパスの対応は、パスの記事で紹介しました。
🤖 詰まったらAIに聞こう:このディレクトリは何のため?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Linuxの初心者です。手順書に出てきたディレクトリ(またはファイル)の役割がわかりません。
何のための場所か、触ってもよい場所かどうかを、初心者向けに教えてください。
【使っている環境】WSLのUbuntu など(cat /etc/os-release の PRETTY_NAME の行)
【気になっている場所】例:/etc/apt/sources.list.d
【その場所が出てきた手順書の一文】ここに貼る
【自分がやりたいこと】例:ソフトを入れたいリンク:ショートカットのようなファイル
Linux には、Windows のショートカットのようなシンボリックリンクというしくみがあります。「本体は別の場所にあって、ここには道案内だけ置いてある」というものです。
システムの中のリンクを見てみる
最近の Debian や Ubuntu では、/bin が /usr/bin へのリンクになっていることが多いです。ls -l で確かめてみましょう。
- 1
ls -l /bin(例)
- 1
lrwxrwxrwx 1 root root 7 Jul 18 02:05 /bin -> usr/bin先頭が l(link の l)で、-> の右側に「本当の場所」が表示されていれば、それがリンクです。
自分でリンクを作ってみる:ln -s
練習用のディレクトリで、リンクを作ってみましょう。
- 1
- 2
- 3
- 4
- 5
mkdir -p ~/linux-practice/link-test
cd ~/linux-practice/link-test
echo "本体のファイルです" > original.txt
ln -s original.txt shortcut.txt
ls -l(例)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
kaito@demo:~$ mkdir -p ~/linux-practice/link-test
kaito@demo:~$ cd ~/linux-practice/link-test
kaito@demo:~/linux-practice/link-test$ echo "本体のファイルです" > original.txt
kaito@demo:~/linux-practice/link-test$ ln -s original.txt shortcut.txt
kaito@demo:~/linux-practice/link-test$ ls -l
total 4
-rw-rw-r-- 1 kaito kaito 28 Nov 1 05:24 original.txt
lrwxrwxrwx 1 kaito kaito 12 Nov 1 05:24 shortcut.txt -> original.txtoriginal.txt の先頭が -rw-rw-r-- になっている意味は、次の記事で説明します(環境によっては -rw-r--r-- と表示されます)。
ln -s 本体 リンクの名前 の順番で書きます。リンクを cat すると、本体の中身が表示されます。
- 1
cat shortcut.txt(例)
- 1
本体のファイルです本体を消すと、リンクは迷子になる
リンクは道案内だけなので、本体がなくなると、行き先のないリンクになります。練習用のディレクトリの中で確かめてみましょう。
- 1
- 2
- 3
- 4
pwd
mv original.txt original-moved.txt
cat shortcut.txt
ls -l(例)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
kaito@demo:~/linux-practice/link-test$ pwd
/home/kaito/linux-practice/link-test
kaito@demo:~/linux-practice/link-test$ mv original.txt original-moved.txt
kaito@demo:~/linux-practice/link-test$ cat shortcut.txt
cat: shortcut.txt: No such file or directory
kaito@demo:~/linux-practice/link-test$ ls -l
total 4
-rw-rw-r-- 1 kaito kaito 28 Nov 1 05:24 original-moved.txt
lrwxrwxrwx 1 kaito kaito 12 Nov 1 05:24 shortcut.txt -> original.txtNo such file or directory は「そのようなファイルやディレクトリはありません」という意味です。今回は本体を消したのではなく mv で名前を変えただけですが、リンクから見ると「original.txt という名前のものがない」ので、消したときと同じ状態になります。shortcut.txt はあるのに、道案内の先の original.txt がないので、このエラーになります。ls -l の文字の表示は、普通のリンクのときと同じです。端末によっては色で「行き先がない」ことを知らせてくれますが、文字だけでは見分けにくいので、「リンクなのに開けない」ときは行き先を疑ってみてください。
本体の名前を戻せば、リンクはまた使えるようになります。
- 1
- 2
mv original-moved.txt original.txt
cat shortcut.txt(例)
- 1
- 2
- 3
kaito@demo:~/linux-practice/link-test$ mv original-moved.txt original.txt
kaito@demo:~/linux-practice/link-test$ cat shortcut.txt
本体のファイルですメッセージが日本語で出る環境では
日本語の設定(ロケール)になっている環境では、同じエラーが日本語で表示されます。今回の Debian 13 で日本語の設定にして試すと、次のようになりました。
(例)
- 1
- 2
ls: ディレクトリ '/root' を開くことが出来ません: 許可がありません
cat: shortcut.txt: そのようなファイルやディレクトリはありませんいらなくなったリンクは、rm shortcut.txt のように、ふつうのファイルと同じく rm で消せます。消えるのはリンク(道案内)だけで、本体の original.txt は残ります。
/etc などの設定ファイルや、ログの中には、パスワード、APIキー、トークン、IPアドレスなどが書かれていることがあります。APIキーやトークンは、Web のサービスを使うときに本人の代わりになる、合言葉のような文字列です。AI に中身を貼って相談するときは、必ず見直して「***」に置き換えてから貼ってください。
理解度チェック:どこを見に行く?
答えを見る前に、自分で「たぶんここ」と考えてみてください。
- ソフトの設定ファイルを直したい → どこを見る?
- 「apt で何を入れたか」の記録を見たい → どこを見る?
- 自分で書いたスクリプトや CSV を置きたい → どこに置く?
答え:1 は /etc、2 は /var/log(apt の記録は /var/log/apt の中)、3 は自分のホーム(~、つまり /home/kaito のような場所)です。迷ったら、この記事のいちばん上の表に戻ってきてください。
よくある質問
Q. シンボリックリンクと「ハードリンク」は何が違いますか?
ln -s で作るシンボリックリンクは「本体の場所を書いたメモ(道案内)」なので、本体の名前が変わったり消えたりすると使えなくなります。-s をつけない ln で作るハードリンクは、同じ中身に「もう1つの名前」をつけるしくみで、片方の名前を消しても中身は残ります。ふだんの作業で使うのは、ほとんどがシンボリックリンクです。まずは ln -s だけ覚えておけば大丈夫です。
Q. なぜ「/usr」という名前なのに、ユーザーのファイルを置かないのですか?
昔の UNIX では、ここにユーザーのファイルも置いていた名残りで「user」に近い名前になっています。今は、コマンドやソフトの本体を置く場所です。自分のファイルは /home の中(~)に置きましょう。
Q. /tmp に置いたファイルは、いつ消えますか?
環境によって違います。パソコンを起動し直したときに消える環境もあれば、一定の日数がたったものから片付けられる環境もあります。「いつか消えてもいいもの」だけを置く場所、と覚えておけば安全です。
まとめ
- Linux のファイルは、すべて
/(ルート)から始まる1本の木につながっている - 自分のファイルは
/home(~)、設定は/etc、ログは/var/log - コマンドの本体は
/usr/binなどにあり、whichで場所を調べられる -
/tmpは一時置き場。大事なファイルは置かない - シンボリックリンクはショートカット。
ln -s 本体 リンク名で作れる - システムのディレクトリは「見るだけ」。作業は
~/linux-practiceで
次の記事では、ls /root で出てきた「Permission denied」の正体、パーミッション(権限)の読み方を見ていきます。
次に読む記事
関連する記事
- 自動化スタック総覧|GAS・n8n・Python・Notionの使い分け:サーバーのどこに何を置くのか、自動化の全体像とあわせて見渡したい方に
- Python入門|環境構築と最初の1本を動かす:
which python3で見つけた Python を、実際に動かしてみたい方に - Cursorを快適に動かすためのマシン要件まとめ【AI使うなら特に必見】:WSL や Linux で開発する前に、パソコンの準備を確認したい方に