今回はLinuxにおけるディレクトリ構造について説明します。
Windowsでは、接続しているハードディスク数やパーティション設定によってCドライブ以外にもDドライブやEドライブといったようにドライブ別でデータ管理できるファイルシステムとなっています。
しかしLinuxでは異なり、全てのデータは/(ルートディレクトリ)の配下で管理されるファイルシステムとなっており、これをFHS(Filesystem Hierarchy Standard:ファイルシステム階層標準)といいます。
/(ルートディレクト)配下の各ディレクトリの説明を下記に示します。
・/bin
Linuxで使用する基本的なコマンドが配置されています。例えば下記のようなコマンドです。
cat、chmod、chown、cp、date、dmesg、echo、kill、ls、mkdir、mount、mv等々
・/sbin
システム管理に必須のコマンドが配置されています。例えば下記のようなコマンドです。
shutdown、reboot、fdisk、ifconfig、init、mkfs、mkswap等々
・/home
ユーザー毎のホームディレクトリが配置されます。ログインした時にユーザーが最初にアクセスするディレクトリは基本的に/home/ユーザー名となります。
・/etc
システムやアプリケーションの「設定ファイル」や「スクリプトファイル」が配置されています。
・/dev
ハードディスクやCD-ROM等の接続されたデバイスのデバイスファイルが配置されます。
・/lib
共有ライブラリやカーネルモジュールが配置されます。ライブラリというのはプログラムの部品のようなもので、/binや/sbinにあるコマンドを実行するために必要なものとなります。
・/media
DVD-ROMやCD-ROM等のリムーバブルメディアのマウントポイントが配置されます。
・/mnt
ハードディスクやフラッシュメモリ等の一時的なマウントポイントが配置されます。
・/proc
カーネル内部の情報にアクセスするための仮想的なファイルシステムです。Linux上でCPUやメモリ、ネットワークの情報を見るために使用されます。
仮想的なシステムとあるようにこのディレクトリ内のファイルはファイルのように見えるだけで、実際にはディスク上に存在しません。
・/root
システム管理者(スーパーユーザー)用のホームディレクトリです。/homeファイルシステムががマウントできなくなってもシステムのメンテナンスができるように/homeディレクトリとは別になっています。
・/tmp
一時的にファイルを保存したり、作業したりするためのディレクトリです。すべてのユーザーが読み書き可能なディレクトリとなっており、再起動するとこのディレクトリ内のファイルが削除されてしまうので、重要なファイルは保存しない方が安全です。
・/usr
ユーザー向けのディレクトリで、/usr/binや/usr/libといったようにユーザー用のコマンドやライブラリが配置されています。/usr配下には多くのディレクトリが配置されており、例えば下記のようなディレクトリがあります。
/usr/bin
/usr/sbin
/usr/lib
/usr/local
/var
システムのログやメール、キャッシュファイル等のファイルが一時的に保存されるディレクトリです。しかし、このディレクトリ内は再起動してもファイル削除されることはありません。
今回は、Linuxでのディレクトリ構造とその内容について説明しました。
基本的にはLinuxディストリビューションインストール時に上記のようなディレクトリ構造となっており、一般的なPCとして使用する分には/(ルートディレクトリ)配下のディレクトリを自分で変更することはほとんど無いと思います。しかし、Linuxサーバの構築やシステムのメンテナンスを行う際は、システム上重要なファイルへアクセスすることもあると思いますので、各ディレクトリの役割をきちんと勉強しておこうと思います。
参考URLや書籍
・LPICレベル1 Version4.0対応
・【Linuxの基礎知識】ディレクトリ構造とファイルシステムについて! | Beエンジニア (pmi-sfbac.org)