Ubuntu ファイルシステム階層構造の解説

ルートディレクトリ(/)

ファイルシステムツリーの最上位に位置し、すべてのマウントポイントの基点となります。ここにはシステム全体を構成する主要なディレクトリが配置されます。

# 現在の作業ディレクトリを確認
pwd

# ルート直下のディレクトリ属性を確認
ls -ld /

/bin

システムの起動や単一ユーザーモードでの運用に不可欠な基本コマンドバイナリが格納されています。一般的なユーザー操作に必要なツールもここに含まれます。

# バイナリファイルの属性を確認
file /bin/ls

# コマンドの存在場所とタイプを確認
type -a ls

/sbin

システム管理者向けの命令群が配置されるディレクトリです。ネットワーク設定やシャットダウンなど、特権操作を伴うコマンドが主に含まれます。

# 管理者用コマンドの一覧を表示
ls -lh /sbin | head

# システムの再起動を実行(特権が必要)
sudo systemctl reboot

/etc

システム全体の設定ファイルおよびサービス起動スクリプトを管理します。ネットワーク設定、ユーザー情報、アプリケーション設定などがここに保存されます。

# 設定ファイルのリストアップ
ls /etc | grep conf

# ホスト名解決設定の内容を確認
head -n 5 /etc/hosts

# SSH 設定の編集(権限が必要)
sudo vim /etc/ssh/sshd_config

/boot

ブートローダー、カーネルイメージ、初期 RAM ディスク(initrd)など、起動プロセスに必要な静的ファイルが保管されます。

# カーネルイメージファイルを確認
ls -lh /boot/vmlinuz-*

# ブートローダー設定の更新
sudo update-grub

/dev

ハードウェアデバイスへのインターフェースとなるデバイスファイルが集約されています。ブロックデバイスやキャラクターデバイスを通じてハードウェアと通信します。

# ストレージデバイス一覧を確認
ls -l /dev/sd*

# カーネルリングバッファのメッセージを確認
dmesg | tail -n 20

/home

一般ユーザーの個人用ディレクトリです。各ユーザーごとにサブディレクトリが作成され、個人データや設定ファイルが保存されます。

# ユーザーホームディレクトリのパスを確認
echo $HOME

# ホームディレクトリ内の隠しファイルを含む一覧を表示
ls -la ~

/lib および /lib64

システム起動に必要な共有ライブラリ(動的リンクライブラリ)およびカーネルモジュールが格納されます。バイナリ実行時に依存関係として読み込まれます。

# ライブラリディレクトリの容量を確認
du -sh /lib /lib64

# 特定コマンドの依存ライブラリを検証
ldd -v /bin/ls

/media

USB メモリや光学ディスクなどのリムーバブルメディアを、システムが自動的にマウントする際に使用されるディレクトリです。

# 自動マウントされたデバイスの確認
findmnt -D

# マウントポイントの状況を確認
ls /media/$USER

/mnt

管理者が手動でファイルシステムやデバイスを一時マウントするための空のディレクトリです。恒久的なマウントポイントとしては使用されません。

# 特定のパーティションを手動マウント
sudo mount /dev/sdb1 /mnt/data

# マウントの解除
sudo umount /mnt/data

/opt

サードパーティ製の大型アプリケーションや追加ソフトウェアをインストールするためのディレクトリです。パッケージ管理外のソフトウェアここで管理されることが多いです。

# インストールされたオプションソフトウェアの確認
ls -d /opt/*

# 特定ソフトのディレクトリサイズを確認
du -sh /opt/google

/proc

カーネルおよびプロセスに関する情報を提供する仮想ファイルシステムです。物理的なファイルは存在せず、アクセス時に情報が動的に生成されます。

# CPU モデル名のみを抽出
grep -m 1 "model name" /proc/cpuinfo

# メモリ情報を確認
cat /proc/meminfo | grep MemTotal

/sys

デバイスドライバ、カーネルパラメータ、ハードウェア構成情報をエクスポートする仮想ファイルシステムです。ハードウェア制御や調査に利用されます。

# ネットワークインターフェースの MAC アドレス確認
cat /sys/class/net/lo/address

# システム情報のツリー構造を表示
tree -L 2 /sys/class

/run

システム稼働中に生成されるランタイムデータ(PID ファイル、ソケット、ロックファイルなど)を保存します。再起動により内容は消去されます。

# 実行時ディレクトリの状態を確認
ls -l /run/systemd

# 一時ロックファイルの確認
ls /run/lock

/srv

システムが提供するサービス(Web、FTP など)に関するデータファイルを格納するためのディレクトリです。

# サービス用データディレクトリの確認
ls -la /srv

# Web サーバー用ディレクトリへの移動
cd /srv/www/html

/tmp

アプリケーション実行時に生成される一時ファイルを保存します。システムポリシーにより定期的に清理されるため、永続的な保存には適しません。

# 直近 1 時間以内に更新されたファイルを検索
find /tmp -type f -mmin -60

# 一時ディレクトリの権限確認
stat /tmp

/usr

ユーザー領域のアプリケーション、ライブラリ、ドキュメントなどが格納される主要なディレクトリです。読み取り専用データが中心となります。

# ユーザーコマンド目录の容量確認
du -sh /usr/bin

# ローカルインストール済みソフトの確認
ls /usr/local

/usr/bin

一般ユーザーが使用する大多数のコマンドやユーティリティが配置されています。テキスト編集、ネットワーク処理、コンパイルツールなどが含まれます。

# 特定コマンドの絶対パスを取得
command -v vim

# バイナリ一覧のページネーション表示
ls /usr/bin | less

/usr/sbin

システム管理やネットワークサービス制御に必要なコマンドが格納されます。通常は管理者権限を必要とする_daemon_ や管理ツールが含まれます。

# 管理コマンドの存在確認
which apache2

# サービスの再起動(権限が必要)
sudo systemctl restart ssh

/usr/lib

/usr/bin および /usr/sbin 以下のプログラムが実行時に必要とする共有ライブラリやモジュールファイルが保存されます。

# ライブラリディレクトリの構造確認
ls /usr/lib/x86_64-linux-gnu

# 依存関係の解決確認
ldd /usr/bin/python3

/usr/local

システムパッケージ管理器を介さずに手動でインストールされたソフトウェアを格納するためのディレクトリです。システム標準ファイルとの競合を避けます。

# ローカルバイナリ目录の内容確認
ls /usr/local/bin

# 手動インストールされたライブラリ確認
ls /usr/local/lib

/var

ログファイル、キャッシュ、スプールデータなど、頻繁に書き換えが発生する可変データを格納します。システム運用状況の記録に重要です。

# ログディレクトリの使用量確認
du -sh /var/log

# システムログの末尾を表示
tail -n 50 /var/log/syslog

タグ: Ubuntu linux-filesystem fhs system-administration directory-structure

5月22日 06:41 投稿