Linuxディレクトリ構造を完全ガイド!初心者でもわかる主要ディレクトリの役割と使い方
生徒
「Linuxって、ファイルやフォルダがどこにあるのか全然わからないんですけど、どうなってるんですか?」
先生
「Linuxでは、すべてのファイルやディレクトリが/(ルート)から始まる木の構造になっていて、それぞれのディレクトリには役割があるんですよ。」
生徒
「木の構造ってどういうことですか?WindowsのCドライブとかとは違うんですか?」
先生
「そうですね。WindowsはC:やD:のようにドライブごとに分かれていますが、Linuxは全部が一つの大きな木のようにつながっているんです。今日はその構造をわかりやすく説明しますね。」
1. Linuxのディレクトリ構造とは?
Linuxのディレクトリ構造は、ツリー構造(木の枝のように分かれている構造)になっています。一番上に/(ルートディレクトリ)があり、そこからすべてのディレクトリが枝分かれしています。
この/は「スラッシュ」と読み、Linuxのファイルシステムの最上位のディレクトリです。家で例えるなら、/は家の玄関のようなもので、そこから各部屋(ディレクトリ)に行けるイメージです。
WindowsではC:\Users\Documentsのようにバックスラッシュ(\)を使いますが、Linuxでは/home/user/Documentsのようにスラッシュ(/)を使います。また、WindowsのようにC:やD:といったドライブレターはなく、すべてが/以下にまとまっています。
主要なディレクトリを確認するには、次のコマンドを使います。
ls /
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
このように、ルートディレクトリ直下にはたくさんのディレクトリが並んでいます。それぞれに重要な役割があるので、順番に見ていきましょう。
2. /bin - 基本的なコマンドが入っているディレクトリ
/binは「バイナリー(binary)」の略で、基本的なLinuxコマンドの実行ファイルが格納されているディレクトリです。たとえば、lsやcp、catといった、日常的に使うコマンドがここにあります。
「実行ファイル」とは、プログラムそのものを指します。Windowsで言えば.exeファイルのようなものです。Linuxでは拡張子がないことが多いですが、中身はプログラムです。
このディレクトリの中身を確認してみましょう。
ls /bin | head -10
bash
cat
chmod
cp
date
dd
df
dmesg
echo
grep
見覚えのあるコマンドがたくさん並んでいますね。/binは、システムが起動するときや、管理者がシステムを修復するときに必要な最低限のコマンドが入っている重要な場所なのです。
3. /home - ユーザーのデータが保存される場所
/homeは、一般ユーザーの個人データが保存されるディレクトリです。WindowsのC:\Usersに相当します。各ユーザーごとにサブディレクトリが作られ、そこにドキュメントや写真、設定ファイルなどが保存されます。
たとえば、taroというユーザー名でログインしている場合、そのユーザーのホームディレクトリは/home/taroになります。ここには、そのユーザーだけがアクセスできる個人的なファイルが入ります。
ls /home
taro hanako yamada
このように、複数のユーザーがいる場合は、それぞれのユーザー名のディレクトリが作られます。自分のホームディレクトリには、~(チルダ)という記号でアクセスできます。
pwd
/home/taro
cd ~
pwd
/home/taro
ホームディレクトリの中には、Documents(文書)、Downloads(ダウンロード)、Pictures(写真)などのよく使うフォルダが作られていることが多いです。
4. /etc - システム設定ファイルの保管場所
/etcは「エトセトラ(et cetera)」が由来と言われていますが、現在ではシステムの設定ファイルが保存されるディレクトリとして使われています。「Editable Text Configuration」の略という説もあります。
ここには、ネットワークの設定、ユーザーアカウントの情報、アプリケーションの設定など、システム全体に関わる重要な設定ファイルが入っています。Windowsのレジストリに近い役割ですが、Linuxではテキストファイルで管理されるため、エディタで直接編集できます。
たとえば、/etc/passwdにはユーザー情報が、/etc/hostnameにはコンピュータ名が保存されています。設定ファイルの編集には管理者権限が必要なことが多いです。
cat /etc/hostname
mylinux-server
このディレクトリのファイルを間違って編集すると、システムが起動しなくなることもあるので、初心者の方は慎重に扱いましょう。バックアップを取ってから編集するのが基本です。
5. /var - 変化するデータの保存場所
/varは「variable(変動する)」の略で、頻繁に変化するデータが保存されるディレクトリです。ログファイル、メールのスプール、プリントキュー、データベースファイルなど、システムの動作中に内容が変わるファイルがここに格納されます。
特に重要なのが/var/logで、ここにはシステムやアプリケーションのログファイル(記録ファイル)が保存されます。何か問題が起きたときは、ここを確認することで原因を特定できることが多いです。
たとえば、システムの全般的なログは/var/log/syslogや/var/log/messagesに記録されます。Webサーバーのアクセスログも/var/log以下に保存されることが一般的です。
また、/var/tmpには一時ファイルが保存されますが、/tmpと違って再起動しても消えないという特徴があります。
6. /tmp - 一時ファイルの保存場所
/tmpは「temporary(一時的な)」の略で、一時的なファイルを保存するディレクトリです。アプリケーションが作業中に使う一時ファイルや、ダウンロード中のファイルなどがここに置かれます。
このディレクトリの特徴は、システムを再起動すると中身が削除されることです。また、すべてのユーザーが読み書きできる権限を持っているため、誰でも自由にファイルを作成できます。
一時的な作業をするときや、テストプログラムを実行するときなどに便利です。ただし、重要なファイルを保存する場所ではないので注意しましょう。
7. /usr - ユーザー向けプログラムとデータの場所
/usrは「Unix System Resources」の略で、ユーザーが利用するプログラムやライブラリ、ドキュメントなどが保存されるディレクトリです。かつては「user」の略と言われていましたが、実際にはシステム全体で共有されるリソースが入っています。
この中には、/usr/bin(ユーザー向けコマンド)、/usr/lib(ライブラリファイル)、/usr/share(共有データ)などの重要なサブディレクトリがあります。
/binとの違いは、/binがシステム起動に必要な最低限のコマンドであるのに対し、/usr/binは日常的に使う一般的なコマンドやアプリケーションが入っている点です。
インストールしたソフトウェアの多くは、この/usr以下に配置されます。Windowsで言えばProgram Filesのようなイメージです。
8. /root - 管理者専用のホームディレクトリ
/rootは、システム管理者(root ユーザー)専用のホームディレクトリです。一般ユーザーのホームディレクトリが/home以下にあるのに対し、root ユーザーだけは/rootという特別な場所を持っています。
なぜ特別な場所にあるかというと、システムに問題が起きて/homeがマウントできなくなったときでも、root ユーザーがログインしてシステムを修復できるようにするためです。
一般ユーザーは、このディレクトリにアクセスする権限がありません。セキュリティ上、重要な設定や管理用のスクリプトが保存されているためです。
9. /dev - デバイスファイルの場所
/devは「device(デバイス)」の略で、ハードウェアデバイスにアクセスするための特殊なファイルが格納されているディレクトリです。Linuxでは「すべてはファイルである」という哲学があり、ハードディスクやキーボード、マウスなどのハードウェアも、ファイルとして扱われます。
たとえば、/dev/sdaは最初のハードディスク、/dev/sda1はそのハードディスクの最初のパーティション(区画)を表します。/dev/nullは、書き込んだデータをすべて捨てる特殊なデバイスで、不要な出力を消すときに使われます。
通常の利用では直接触ることは少ないですが、ディスクのフォーマットやパーティション操作をするときには重要になります。
10. その他の重要なディレクトリ
ここまで紹介した以外にも、Linuxには重要なディレクトリがいくつかあります。
/bootには、システムの起動に必要なファイル(カーネルやブートローダーの設定)が入っています。/libには、/binや/sbinのコマンドが使う共有ライブラリファイルが保存されています。ライブラリとは、複数のプログラムで共通して使われる部品のようなものです。
/mediaや/mntは、USBメモリやDVDなどの外部メディアをマウント(接続)するときに使われるディレクトリです。Windowsでは自動的にE:やF:のようなドライブレターが割り当てられますが、Linuxでは手動または自動でこれらのディレクトリ以下にマウントされます。
/procは、プロセス(実行中のプログラム)やシステムの情報を見るための仮想的なディレクトリです。実際のファイルではなく、カーネル(Linuxの中核部分)が動的に生成している情報です。
/sbinは「system binary」の略で、システム管理用のコマンドが入っています。/binとの違いは、主に管理者が使うコマンドである点です。
これらのディレクトリは、それぞれが明確な役割を持っており、この構造を理解することで、Linuxシステムがどのように組織されているかが見えてきます。最初は覚えることが多く感じるかもしれませんが、使っていくうちに自然と身についていきますので、焦らず少しずつ慣れていきましょう。