Linux入門

Linuxのファイルシステム構造を理解する

Linux入門
記事内に広告が含まれています。

「ls コマンドで /etc とか /var とか出てくるけど、何がどこにあるかさっぱりわからない…」

この記事では、Linuxのファイルシステム構造(ディレクトリ構造)をわかりやすく解説します。Windowsの「Cドライブ」や「フォルダ」との違いを交えながら、各ディレクトリの役割を一つずつ丁寧に説明します。

ターミナルの基本操作に不安がある方は、先に「ターミナルの使い方と基本コマンド20選」をご覧ください。

Linuxのファイルシステムとは?

ファイルシステムとは、コンピューター上でファイルやフォルダを整理・管理する仕組みのことです。

Windowsでは「Cドライブ(C:)」「Dドライブ(D:)」のように、ドライブ文字でストレージを区別します。一方Linuxはすべてが「/(ルート)」という一つの起点から始まるツリー構造になっています。

項目WindowsLinux
起点C: D: など/ (ルートディレクトリ)
区切り文字¥(バックスラッシュ)/(スラッシュ)
大文字・小文字区別しない区別する(File ≠ file)
拡張子必須(.exe .txt など)必須ではない

ルートディレクトリ「/」とは?

Linuxのすべてのファイルは「/」(ルートディレクトリ)を頂点とした木のような構造(ツリー構造)で管理されています。

/
├── bin/
├── boot/
├── dev/
├── etc/
├── home/
├── lib/
├── media/
├── mnt/
├── opt/
├── proc/
├── root/
├── run/
├── srv/
├── sys/
├── tmp/
├── usr/
└── var/

それぞれのディレクトリには明確な役割があります。順番に見ていきましょう。

Linuxファイルシステム ディレクトリツリー図
▲ Linuxのすべてのファイルは「/」を頂点としたツリー構造で管理される

主要ディレクトリの役割を解説

/bin ― 基本コマンドが入っている場所

lscpmvcatなど、すべてのユーザーが使う基本的なコマンドの実体がここに入っています。/binは「binary(バイナリ)」の略です。 ⚠️ 補足:Ubuntu 20.04以降などの現代的なLinuxでは、/bin/usr/binへのシンボリックリンク(ショートカット)になっています。コマンドの実体は/usr/binにありますが、互換性のため/binからも同じようにアクセスできます。

$ ls /bin
bash  cat  cp  echo  ls  mkdir  mv  rm  ...

/etc ― 設定ファイルの置き場所

システムやアプリケーションの設定ファイルが集まっています。インフラエンジニアが最もよく触る場所の一つです。

  • /etc/hosts:ホスト名とIPアドレスの対応表
  • /etc/passwd:ユーザーアカウント情報
  • /etc/nginx/:Nginxの設定ファイル
  • /etc/ssh/:SSHの設定ファイル

/home ― ユーザーのホームディレクトリ

各ユーザーの個人ファイルが置かれる場所です。ユーザー名「user」なら/home/user/が作られます。ターミナルで~と表示されるのがここです。

$ ls /home
user  yamada  tanaka

$ echo ~
/home/user

/root ― rootユーザーのホームディレクトリ

管理者(root)専用のホームディレクトリです。一般ユーザーはアクセスできません。/home/rootではなく/rootにあることに注意してください。

/var ― 変化するデータの置き場所

「variable(可変)」の略で、システムが動作中に変化するデータが入っています。

  • /var/log/:ログファイル(syslogauth.logなど)
  • /var/www/:Webサーバーのドキュメントルート
  • /var/tmp/:一時ファイル(再起動後も残る)

/tmp ― 一時ファイルの置き場所

一時的なファイルが置かれます。再起動すると中身が消えます。誰でも読み書きできるため、スクリプトの一時ファイル置き場としてよく使われます。

/usr ― ユーザー向けプログラムの置き場所

「Unix System Resources」の略。apt installでインストールしたソフトウェアの多くがここに入ります。

  • /usr/bin/:一般ユーザー向けコマンド(python3・gitなど)
  • /usr/lib/:ライブラリファイル
  • /usr/local/:手動インストールしたソフト

/dev ― デバイスファイルの置き場所

「device(デバイス)」の略。Linuxでは、ハードディスク・USBメモリ・キーボードなどのデバイスもファイルとして扱います。

  • /dev/sda:最初のハードディスク
  • /dev/null:出力を捨てるときに使う特殊ファイル

/proc ― プロセス情報の仮想ファイルシステム

実際のファイルはなく、カーネルが動的に生成する仮想的なファイルシステムです。実行中のプロセス情報やシステム情報がここから取得できます。

$ cat /proc/cpuinfo     # CPU情報
$ cat /proc/meminfo     # メモリ情報

/mnt・/media ― マウントポイント

外部ストレージ(USBメモリ・外付けHDDなど)を接続したときの「入口」です。WSL2では/mnt/c/でWindowsのCドライブにアクセスできます。

$ ls /mnt/c/Users/      # WSL2からWindowsのユーザーフォルダを見る

/boot ― 起動に必要なファイル

OSを起動するために必要なカーネルやブートローダーが入っています。通常は触りません。

よく使うパスまとめ

パス役割使う場面
/etc/設定ファイルNginx・SSH・hostsの編集
/home/ユーザー名/個人ファイル日常的な作業全般
/var/log/ログファイルトラブルシューティング
/var/www/WebドキュメントルートWebサーバー構築
/tmp/一時ファイルスクリプトの作業ディレクトリ
/usr/bin/コマンド・プログラムインストール済みソフトの確認
/mnt/c/WindowsCドライブ(WSL2)WindowsとLinuxのファイル共有

実際に確認してみよう

ターミナルを開いて、実際にディレクトリ構造を確認してみましょう。

# ルートディレクトリの中身を見る
$ ls /

# /etc の中身を見る
$ ls /etc | head -20

# /var/log のログ一覧を見る
$ ls /var/log

# 自分のホームディレクトリを確認する
$ echo $HOME
/home/user

まとめ:この記事で学んだこと

  • Linuxのファイルシステムは「/」を頂点としたツリー構造になっている
  • Windowsのドライブ文字とは違い、すべてが一つの起点から始まる
  • /etcは設定ファイル・/homeは個人ファイル・/var/logはログと覚えておこう
  • WSL2では/mnt/c/でWindowsのCドライブにアクセスできる
  • 大文字・小文字は区別される(Filefileは別物)

関連記事

関連記事:パスの概念を完全理解【絶対パス vs 相対パス】

関連記事:ファイルの中身を見る・検索する方法【cat/less/grep】

関連記事:ファイルの権限を理解する【chmod・chown完全解説】

findコマンド完全ガイド

📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。

コメント

タイトルとURLをコピーしました