Linuxのディレクトリ構造とディレクトリごとの役割(用途)

Linuxのディレクトリ構造とディレクトリごとの役割(用途)

Linuxをインストールすると、デフォルトでさまざまなディレクトリが作成されますが、それぞれのディレクトリがどのような役割(用途)で、どのようなファイルが格納されているのか、いまいちよくわからないという方もいらっしゃるでしょう。

そこでここでは、Linuxのディレクトリ構造やそれぞれのディレクトリの役割(用途)を解説します。

ディレクトリ構造の規格(FHS)

Linuxのディレクトリ構造は、FHS(Filesystem Hierarchy Standard)というLinuxなどのUnix系オペレーティングシステムでのディレクトリ構造などを定めた規格に従って作成されています。

なお、FHSは強制されるものではないため、FHSを無視して好きなディレクトリを作成したり、ファイルを好きなディレクトリへ保存することができますが、管理性などを考えるとFHSに従うのが定石といえます。

ディレクトリごとの用途

/ (root)

「/ (root)」は最上位のディレクトリで「ルートディレクトリ」と呼ばれ、以降で紹介するディレクトリはすべてルートディレクトリ配下に作成されています。

/bin

「/bin」ディレクトリは、システムやソフトウェアの起動や動作に必要な実行ファイルを格納するためのディレクトリで、このディレクトリ内の実行ファイル(コマンド)は、すべてのユーザーが実行できます。

たとえば、cat、chmod、chown、cp、date、echo、kill、ln、lsといったコマンドの実行ファイルは、/binディレクトリに格納されています。

なお、RedHat系Linuxでは、/binは/usr/binへのシンボリックリンクとなっていることが多いです。

/boot

「/boot」ディレクトリは、GRUBなどのシステムの起動に必要なファイルが格納されています。

/dev

「/dev」ディレクトリには、システムに接続されているハードウェア(キーボード、マウス、ハードディスク、プリンターなど)の情報がファイル化されて格納されています。

/etc

「/etc」ディレクトリには、システムやインストールしているソフトウェアの設定ファイルが格納されています。

/home

「/home」ディレクトリには、システムに作成したユーザーごとのホームディレクトリが格納されています。

/lib

「/lib」ディレクトリには、システムやソフトウェアの動作に必要なカーネルモジュールや共有ライブラリファイルが格納されています。

「/lib64」ディレクトリには、64ビットアーキテクチャ用のカーネルモジュールや共有ライブラリファイルが格納されています。

なお、RedHat系Linuxでは、/libは/usr/libへのシンボリックリンク、/lib64は/usr/lib64へのシンボリックリンクとなっていることが多いです。

/media

「/media」ディレクトリには、システムにDVD、CD-ROM、USBなどのリムーバブルメディアを接続したときに、自動的にマウントポイントが作成されます。

/mnt

「/mnt」ディレクトリには、ユーザーが手動でファイルシステムをマウントするときに、マウントポイントを作成する場所として使用します。

/opt

「/opt」ディレクトリには、サードパーティ製ソフトウェアやアドオンパッケージ等のインストール先として使用します。

/proc

「/proc」ディレクトリには、カーネルやプロセス関連の情報などがファイル化されて格納されています。

/root

「/root」ディレクトリは、システム管理者であるrootユーザーのホームディレクトリです。

/run

「/run」ディレクトリには、現在実行されているプロセスに関する情報がファイル化されて格納されています。

/sbin

「/sbin」ディレクトリには、/binディレクトリと同じようにシステムやソフトウェアの起動や動作に必要な実行ファイルが格納されていますが、このディレクトリに格納されている実行ファイル(コマンド)は、rootユーザーのみが実行できます。

たとえば、ipやpartedといったシステム管理用のコマンドなどの実行ファイルは、/sbinディレクトリに格納されています。

なお、RedHat系Linuxでは、/sbinは/usr/sbinへのシンボリックリンクとなっていることが多いです。

/srv

「/srv」ディレクトリは、WebサーバーやFTPサーバーのようなネットワークサービスが実行されているシステムで、システム管理者がサーバーが提供するファイルなどを格納して管理しやすくするために用意されているディレクトリです。

/sys

「/sys」ディレクトリには、カーネルの現在の稼働状況やパラメータ等の情報がファイル化されて格納されています。

/tmp

「/tmp」ディレクトリは、システムやプログラムが生成する一時ファイルを格納するディレクトリで、このディレクトリ内のデータは、システムを再起動すると自動的に削除されます。

/usr

「/usr」ディレクトリは、すべてのユーザが共通で使用するソフトウェアのインストール先として使用し、ディレクトリ内にはルートディレクトリ直下と同様の構造が作成されています。

/var

「/var」ディレクトリには、システム稼働中に生成されるデータ(ログファイルやスプールファイル、データベースキャッシュファイルなど)が格納されています。

あとがき

それぞれのディレクトリの用途や役割を理解しておけば、ファイルを探したり、作成するファイルの格納先を決めるときなどにも役立ちます。