目次
エンジニアが知っておくべき「4大ディレクトリ」
Linuxシステムには多くのディレクトリが存在しますが、開発者が日常的に触れるのはそのうちの9割が以下の4つです。
1. /bin (バイナリ / Binaries)
ここはいわば「プログラム」の住処です。
Binaries(バイナリ)の略で、全ユーザーが利用できる基本的なコマンドが格納されています。ターミナルで ls、cp、mkdir などのコマンドを打つと、システムはこの場所から実行ファイルを探します。
Note:
/usr/binというディレクトリを見かけることもあるでしょう。現代のLinuxディストリビューションではこれらは統合されていることが多いですが、歴史的には/binが起動に必要な最小限のコマンド、/usr/binがユーザー用ソフトウェアの置き場所として使い分けられていました。
2. /etc (設定ファイル / Configuration)
ここがシステムの心臓部です。
かつては「Et cetera(その他もろもろ)」の略と言われていましたが、現在ではEditable Text Configuration(編集可能なテキスト設定)の略だという覚え方が一般的です。
ここには設定ファイルが置かれます。Web開発者であれば、Nginxの設定やDNS設定、ファイアウォールの設定などで頻繁に訪れることになるでしょう。設定がレジストリというブラックボックスに隠されているWindowsとは異なり、Linuxの設定はほぼ常に「このディレクトリにあるテキストファイル」です。
3. /home (ユーザーファイル / User Files)
ここはあなたのプライベート空間です。
Windowsの C:\Users に相当します。ユーザー名が「idealump」であれば、ホームディレクトリは /home/idealump となります。ドキュメント、ダウンロードしたファイル、Gitリポジトリなどはここに保存します。通常、一般ユーザーが sudo なしで自由に書き込みができるのはこの場所だけです。
4. /var (可変データ / Variable Data)
その名の通り、システム稼働中に変化する(Vary)データが置かれます。
開発者にとって、ここは以下の2つの理由で極めて重要です。
- ログ: システムやアプリのログは
/var/logにあります。アプリがクラッシュしたら、まずここを確認しましょう。 - Webサイト: 伝統的に、公開Webサイトのデフォルトフォルダ(ApacheやNginxのドキュメントルート)は
/var/www/htmlに配置されます。
その他の重要なディレクトリ
/tmp(一時ファイル): 一時的に必要なファイルのためのメモ帳のような場所です。注意: ほとんどのシステムでは、再起動するたびにこのディレクトリの中身は自動的に消去されます。コードの保存場所にはしないでください!/root(管理者のホーム): これは「root」ユーザー(スーパーユーザー)のためのホームディレクトリです。もし/homeパーティションに障害が起きても管理者がログインできるように、通常の/homeとは分けられています。/dev(デバイスファイル): Linuxでは「すべてがファイル」として扱われます。これにはハードウェアも含まれます。ハードディスク、Webカメラ、マウスなどはすべてこのディレクトリ内のファイルとして表現されます。
Windows vs Linux: 簡易翻訳ガイド
頭の中で2つのシステムをマッピングするために、一般的な概念の対応表を作成しました。
| Windowsの概念 | Linuxでの相当先 |
|---|---|
| C:\ | / (ルート) |
| C:\Users\名前 | /home/名前 |
| C:\Windows\System32 | /bin および /sbin |
| Program Files | /usr/bin または /opt |
| レジストリ | /etc (テキストファイル) |
| C:\Windows\Temp | /tmp |
まとめ
Linuxのディレクトリ構造は最初は暗号のように見えるかもしれませんが、実は驚くほど論理的です。静的なファイル(/bin のプログラムなど)と、可変なファイル(/var のログなど)、そして設定(/etc)がきれいに分離されています。
このレイアウトを理解すれば、サーバー内の移動、デプロイスクリプトの作成、トラブルシューティングが格段に楽になります。単にコマンドを丸暗記するのではなく、「どこに何があるか」という地図を手に入れたことになるのです。