【bash?】ファイルシステムの使い分け

※アフィリエイト広告を利用しています
※アフィリエイト広告を利用しています

/tmpは一時領域として当たり前のように使ってるけど、/varや/usr、/etcなど。
どういった用途で使い分けたらいいのか、改めて確認してみたくなりました。

主要なディレクトリと用途 一覧

ディレクトリ用途
/ (ルート)ファイルシステムの最上位ディレクトリ。すべてのディレクトリはここから始まる。
/bin基本的なコマンド(lscpmvrm など)が含まれる。
/bootブートローダー(GRUB など)やカーネル (vmlinuz) のファイルが格納される。
/devデバイスファイル(/dev/sda/dev/null/dev/random など)が置かれる。
/etcシステム全体の設定ファイル (/etc/passwd/etc/fstab など) を格納する。
/homeユーザーのホームディレクトリ(/home/user)が格納される。
/lib重要な共有ライブラリ (*.so ファイル) やカーネルモジュールが含まれる。
/mediaCD/DVD や USB メモリなどの外部メディアが自動マウントされる。
/mnt一時的なマウントポイント(管理者が手動でマウントするための場所)。
/opt追加のソフトウェアパッケージ(/opt/google/chrome など)がインストールされる。
/procカーネルやプロセス情報を提供する仮想ファイルシステム(/proc/cpuinfo など)。
/rootroot ユーザーのホームディレクトリ(通常 /home には置かれない)。
/runシステムの一時情報(プロセス ID やソケットファイル)が置かれる。
/sbinシステム管理用のコマンド(fsckrebootmount など)が格納される。
/srvサーバー関連のデータ(/srv/http など)を配置するためのディレクトリ。
/sysハードウェア情報やカーネル情報を提供する仮想ファイルシステム。
/tmp一時ファイルを保存する(再起動すると削除される)。
/usrシステムのプログラムやライブラリが含まれる。
/var変動するデータ(ログ、キャッシュ、スプールデータなど)が格納される。

それぞれの用途

/ (ルート)

システム全体の最上位ディレクトリで、すべてのディレクトリやファイルはここから派生する。


/bin (Binary)

システムの基本的なコマンドを格納。

  • 一般ユーザーが使用する基本的なコマンド
    • ls (リスト表示)
    • cp (コピー)
    • mv (移動)
    • rm (削除)
    • cat (ファイル表示)
    • echo (文字列出力)
    • chmodchown (権限変更)
    • shbash (シェル)
  • システムがシングルユーザーモードで必要とする最低限のツール

/sbin (System Binary)

システム管理用のコマンドを格納。

  • システム管理者向けのツール
    • reboot (再起動)
    • shutdown (シャットダウン)
    • fsck (ファイルシステムチェック)
    • mountumount (マウント)
    • iptables (ファイアウォール設定)
    • fdiskmkfs (ディスク管理)
  • 通常のユーザーにはPATHが通っていない

/boot (Boot)

システムのブートに必要なファイルを格納。

  • ブートローダー (GRUB) の設定ファイル
    • /boot/grub/grub.cfg
  • Linux カーネルイメージ
    • vmlinuz-5.10.x
  • initramfs (カーネル起動時に使用する RAM ディスク)
    • initrd.img-5.10.x
  • EFIブートローダー (UEFI システムの場合)
    • /boot/efi/EFI/

/dev (Device)

デバイスファイル(ハードウェアを操作する仮想ファイル)を格納。

  • ストレージデバイス
    • /dev/sda (HDD/SSD の1つ目)
    • /dev/sda1 (パーティション)
  • 仮想デバイス
    • /dev/null (データを捨てる)
    • /dev/random (乱数生成)
    • /dev/zero (ゼロを出力)
  • 入力デバイス
    • /dev/input/mice (マウス入力)
    • /dev/tty (仮想端末)

/etc (Etc: 設定ファイル)

システム全体の設定ファイルを格納。

  • ユーザー管理
    • /etc/passwd (ユーザー情報)
    • /etc/shadow (パスワード)
    • /etc/group (グループ情報)
  • ネットワーク設定
    • /etc/hosts (ホスト名解決)
    • /etc/resolv.conf (DNS)
    • /etc/hostname (マシン名)
  • システム管理
    • /etc/fstab (マウント設定)
    • /etc/crontab (定期実行)

/home (Home)

ユーザーごとのデータを格納。

  • 個々のユーザーディレクトリ
    • /home/user1
    • /home/user2
  • ユーザー設定ファイル(ドットファイル)
    • ~/.bashrc (シェル設定)
    • ~/.ssh/ (SSHキー)
    • ~/.config/ (アプリ設定)

/lib/lib64 (Library)

プログラムが使用する共有ライブラリ (*.so ファイル) を格納。

  • 32bit システムでは /lib
  • 64bit システムでは /lib64
  • 重要なライブラリ
    • libc.so (C言語標準ライブラリ)
    • libm.so (数学ライブラリ)
    • libpthread.so (スレッド管理)

/media (Media)

リムーバブルメディア (USB, CD/DVD) のマウントポイント。


/mnt (Mount)

管理者が手動でマウントするためのディレクトリ。

  • 一時的なマウントポイント
  • ネットワークマウント

/opt (Optional)

追加のソフトウェアがインストールされる。

  • 商用ソフトウェアや手動インストール
    • /opt/google/ (Google Chrome)
    • /opt/zoom/ (Zoom)

/proc (Process)

カーネルやプロセス情報を提供する仮想ファイルシステム。

  • システム情報
    • /proc/cpuinfo (CPU 情報)
    • /proc/meminfo (メモリ情報)
    • /proc/uptime (起動時間)
  • プロセス情報
    • /proc/[PID]/ (プロセスIDごとの情報)

/root (Root user)

root ユーザー専用のホームディレクトリ。通常のユーザとは異なり/homeには格納されない。


/run

一時的なシステム情報(PID, ソケット, ロックファイル)を格納。

  • プロセスID (PID)
    • /run/nginx.pid
  • ソケットファイル
    • /run/docker.sock

/srv (Service)

サーバー関連のデータを格納。

  • Web サーバー
    • /srv/http/
  • FTP サーバー
    • /srv/ftp/

/sys (System)

カーネルとハードウェア情報を提供する仮想ファイルシステム。

  • デバイス情報
    • /sys/block/
  • 電源管理
    • /sys/power/
  • CPU情報
    • /sys/devices/system/cpu/

/tmp (Temporary)

一時ファイルを格納する。

  • 再起動すると消えるものもある(ディストリビューションやバージョンによる)
  • 一時データの保存

/usr(Unix System Resources)

システム全体で利用可能なプログラムやライブラリを格納する。

  • /usr/bin – 一般ユーザーが利用できるコマンド (lsgrepawk など)。
  • /usr/sbin – システム管理者向けのコマンド (apachectliptables など)。
  • /usr/lib – /usr/bin のプログラムが使用するライブラリ。
  • /usr/local – ユーザーが手動でインストールしたソフトウェアを格納する。

/var(Variable)

ログや一時データなど、頻繁に変更されるファイルを保存する。

  • /var/log – システムログ (/var/log/syslog/var/log/auth.log など)。
  • /var/tmp – 一時ファイル(再起動後も削除されない)。
  • /var/lib – プログラムが実行時に保存するデータベースやキャッシュ(/var/lib/mysql/var/lib/dpkgなど)。
  • /var/spool – メールキューやプリントキュー (/var/spool/mail/var/spool/cups など)。

補足

  • /bin や /sbin は最小限のシステムでも利用可能な基本ツールを含む。
  • /usr はシステムが起動した後に使用されるプログラムが多く、ネットワークマウントする場合もある。
  • /var はログやキャッシュが溜まるため、ディスク管理に注意が必要。

コメント

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