初心者がまず知っておきたいLinuxのディレクトリ構造について

Takuya Kobayashi⛰
2024.05.25

Linuxのディレクトリ構造は「Filesystem Hierarchy Standard(FHS)」によって決まっています。
FHSは、Unix系オペレーティングシステムのディレクトリ構造とその内容に関する標準を定めたもので、Linuxディストリビューションの多くがこの標準に準拠しています。

次の画像はUbuntu22.04のルートディレクトリの一覧です。

Ubuntu22.04のルートディレクトリのファイル一覧

これらのディレクトリを一つ一つかんたんに解説して行きます。

/bin

実行可能なバイナリファイルを格納したディレクトリです。
基本的なユーティリティとコマンドが含まれています。
Ubuntu22.04では/usr/binへのシンボリックリンクになっています。

/boot

ブートファイルを格納したディレクトリです。
Linuxのカーネルファイルや初期化ファイルが含まれています。

/dev

これはLinuxシステムのデバイスファイルを格納したディレクトリです。
キーボードやマウスなどの入力デバイス、USBメモリやHDD,SSD,NVMeなどの外部デバイスがファイルとして存在しています。

Ubuntuのターミナル上では通常ファイルと区別するために黄色系の文字で表示されます。

SCSIデバイスはsdaから始まり、デバイスの接続数に応じてアルファベットがsdb,sdcとなります。/dev/sda1というように数字がついているものはパーティションを表します。

光学ドライブは/dev/sr0というふうになっています。
ドライブが複数ある場合は/dev/sr0,/dev/sr1…と数字が増えていきます。

デバイスファイルの例:

HDD,SSD,USBメモリなどのSCSIデバイス:/dev/sda
NVMeドライブ:/dev/nvme0
光学ドライブ:/dev/sr0
フロッピードライブ:/dev/fd0
テープドライブ:/dev/st0, /dev/nst0(巻き戻しなし)

Linuxではファイルとしてデバイスにアクセスできるため、次のようなことが可能です。

cat /etc/sr0

光学ドライブの生データをcatコマンドでターミナル上に表示しています。ところどころアスキーテキストが現れますがバイナリの部分は文字化けしていたり表示できていません。

次のコマンドでは/dev/sr0の生データをubuntu.isoというファイルに出力します。

cat /dev/sr0 > ubuntu.iso

ubuntu.isoをマウントして確認してみましょう。

sudo mount ubuntu.iso /mnt
ls /mnt

ファイルが表示されましたね。
こんなふうに光学ドライブからisoの吸い出しができました。

Linuxではクローンソフトを使わずとも、HDDやSSD、USBメモリなどからも生データを吸い出すことができます。

/etc

各種設定ファイルを格納したディレクトリです。
ネットワーク設定やユーザー情報、アプリケーションの設定などのファイルが含まれています。
触る頻度が高いディレクトリの一つです。

/home

ユーザーのホームディレクトリを格納したディレクトリです。
/home/ユーザー名/という形でホームディレクトリが格納されています。
ターミナルを開くとこの場所がカレントディレクトリになります。

/lib

これはLinuxシステムの共有ライブラリファイルを格納したディレクトリです。
Linuxカーネルやユーティリティなどが含まれています。

/media

Linuxシステムが利用するマウントポイントディレクトリです。
USBメモリやDVDなどの外部メディアがマウントされます。

/mnt

一時的なマウントポイントとして用意されたディレクトリです。
Ubuntuシステムでは基本的に利用されず、先ほどのisoイメージのマウントのようにユーザーが一時的なマウントポイントとして利用します。

/opt

これはLinuxシステムのオプショナルソフトウェアを格納したディレクトリです。
一部のユーザーがインストールする必要があるソフトウェアが含まれています。

/root

これはLinuxシステムの管理者ユーザーのホームディレクトリです。
管理者ユーザーが自分のファイルやプログラムを格納することができます。

/sbin

これはLinuxシステムのシステムバイナリファイルを格納したディレクトリです。
Linuxカーネルやネットワーク設定などが含まれています。

/tmpと/var/tmp

キャッシュなどの一時ファイルを格納したディレクトリです。
/tmpのデータは再起動時に喪失しますが、/var/tmpは再起動してもファイルが残るという性質の違いがあります。
このディレクトリにはスティッキービットというパーミッション(1777)が設定されており、ファイル所有者またはroot以外のユーザーが改変できないようになっています。
プログラムの競合などで横から利用中のキャッシュを改変されたら困りますよね。

/usr

ユーザーアプリケーションを格納したディレクトリです。
一般的なユーザーがインストールする必要があるソフトウェアが含まれています。

/var

可変データファイルを格納したディレクトリです。
ログファイルやキャッシュなどが含まれています。

/var/log/dmesgにはカーネルが出力したログが保存されます。
Ubuntu起動時にスプラッシュ画面のときにESCを押すと表示されるあのテキストと同じものです。

以上がLinuxの基本的なディレクトリ構造です。ディレクトリ構造を把握することはシステムへの理解を深め、ファイル管理や操作において不可欠です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です