Linuxの基本の基本。Linuxの基本的なディレクトリ構成


投稿日:2013年3月17日
  • 143
  • 0



CentOSの引き出しに何があるか大まかに把握しよう

linux_directory

やみくもにパッケージを追加すれば「動作に必要なファイルがどこだっけ?設定ファイルは?ログはどこ?」となりかねません。
といっても、大まかな把握だけなら別に難しいこともなく、タンスの引き出しに、どんな服が入っているか把握するようなものです。


目次

/〈ルート〉
/bin
/boot
/dev
/etc
/home
/lib
/lost+found
/media
/misc
/mnt
/opt
/proc
/root
/sbin
/selinux
/srv
/sys
/tmp
/usr
 ●/usr/bin
 ●/usr/etc
 ●/usr/games
 ●/usr/include
 ●/usr/lib
 ●/usr/libexec
 ●/usr/local
 ●/usr/sbin
 ●/usr/share
 ●/usr/src
 ●/usr/tmp
/var
 ●/var/account
 ●/var/cache
 ●/var/crash
 ●/var/db
 ●/var/empty
 ●/var/games
 ●/var/lib
 ●/var/local
 ●/var/lock
 ●/var/log
 ●/var/mail
 ●/var/named
 ●/var/nis
 ●/var/opt
 ●/var/preserve
 ●/var/pwcheck
 ●/var/run
 ●/var/spool
 ●/var/tmp
 ●/var/www
 ●/var/yp


Linuxの基本的なディレクトリ構成

冒頭でも触れましたがCentOSの基本的なディレクトリ構造について解説しています。同じLinuxでもディストリビューションによって違いがありますが、基本的に標準規格FHSによって定められた「必須」の項目は共通しています。

各ディレクトリの読み方をカッコ内に記しました。また項目の後にFHSによって「必須」とされている場合は「必須」、それ以外の項目は「オプション」と記しました。

/〈ルート〉

必須
ルートディレクトリ。全ての始まり。

/bin(ビン)

必須
cpやchmodなどのシステムを管理する上で基本コマンドが入っています。
基本コマンド限定で管理するのが普通で、ソフトのインストールに付随するコマンドなどはここにインストールしない。
cp、chmodなど

/boot(ブート)

必須
ブートに必要なファイル。ブートログやカーネルイメージ(Linuxカーネルを格納して圧縮したファイル)が保存されている。
vmlinuzなど

/dev(デブ)

必須
デバイスファイルが配置されている。デバイス(装置〈ハードウエア〉)をファイルとして扱うUNIXの設計思想からきています。
cpu、disk、ramなど。

/etc(エトセ)

必須
ほとんどの設定ファイルが配置されます。カーネルだけでなく、追加された各ソフトの設定ファイル等が配置されているため、ファイル数が膨大で内容を把握するには骨が折れます。
そのままetcディレクトリに保存するタイプと、サブディレクトリを作成してまとめるタイプがあります。
my.cnf、php.ini、httpd.cnfなど

/home(ホーム)

オプション
一般ユーザーのホームディレクトリ。通常ユーザーを追加するごとにユーザー名のディレクトリを追加します。

/lib(リブ)

必須
/binや/sbinのコマンドを実行するのに必要なファイルが配置されています。基本的にユーザーが変更を加えることはありません。
64bit用の共用ファイルは別途「lib64」というディレクトリにあります。32bitと間違えないように注意。
libc、libsslなど

/lost+found(ロストアンドファウンドまたはロストファウンド)

オプション
システムのバックアップや復元用のファイルが格納される。意図しない再起動やシャットダウン時に使われる。通常ユーザーが操作することは無い。

/media(メディア)

必須
リムーバブルメディアのマウントポイント。(floppy、CD、DVDなど)

/misc(ミスク)

オプション
リムーバブルメディアのマウントポイント(その他ざまざまなデータ用)。自動でメディアをマウントするデーモンautofsで利用する。

/mnt(マウント)

必須
一時的なマウントポイント。mediaとの違いは、一時的なファイルシステム(fstabなど)のマウントに使う点。

/opt(オプト)

必須
rpmなどパッケージ管理システムのインストール先。複数のユーザーで利用する場合追加したものをここに保存しておけば、変更点を把握しやすい。

/proc(プロック)

必須
プロセスのIDの付いたディレクトリが配置されています。プロセス独自の情報を格納することからプロセスディレクトリと呼ばれる。各種プロセスのステータスを確認する際に利用される。
psコマンド、/proc/cpuinfo、/proc/netなど

/root(ルート)

オプション
rootユーザーのホームディレクトリ。homeがセキュリティ上の脅威にさらされてもこちらは大丈夫。という保険のディレクトリです。

/sbin(エスビン)

必須
再起動やファイルシステムの操作などシステム管理者用のコマンドが配置されています。/bin同様、新しいコマンドの追加や変更は推奨されません。
shutdown、rebootなど

/selinux(エスイーリナックス)

オプション
セキュリティーを向上させるために利用する、Security-Enhanced Linux。rootへの権限が集中を分散することでセキュリティの向上を図る。ものらしい。CentOSではデフォルトで作成される。
ディストリビューションのScientific Linux(サイエンティフィック・リナックス)とは全く関係ないので注意。

/srv(エスアールブイ)

オプション
FTP、WWWなどで利用するユーザー用のスペース。/homeとも違う、FTP専用、WWW専用のユーザー用ディレクトリ。
管理者が一人の場合は利用しない。

/sys(シス)

オプション
システム関連と思いきや、動作しているプロセスやドライバを/procで管理すると膨大になるため、/sysにドライバ関連のプロセスをまとめている。
しかし完全に分離されているわけでなく、現在では渾然としている。
主にdeviceやmoduleに各種情報が保存されている。

/tmp(テンプ)

必須
テンポラリデータの保存場所。メモリ上の一時ファイルを保存します。ダウンロードフォルダとして利用することもあります。再起動時に消去されます。また通常はcronで定期的に消去されます。

/usr(ユーザー)

必須
各ユーザーが共通して利用するプログラム・ライブラリのデータ。ソースからコンパイルしたソフトなどはこちらにインストールされます。通常パッケージの追加するこのディレクトリにインストールされることが多い。

etcに保存されている設定ファイルのシンボルリンクもこちらに貼られることが多い。

ちなみに重要な項目が多いため、/usrのサブディレクトリについても記載します。発音は「ユーザーすらビン」といった具合に発音します。

/usr/bin

必須
usr版のコマンドが保存されている。一般ユーザーの利用するコマンド。別名ユーザーコマンドの保存場所。プログラムのインストールによって追加する場合はこのディレクトリが適している。
openssl、php、perlなど

/usr/etc

オプション
あまり利用されることはありません。通常/usrに追加されるライブラリの設定ファイルは/etcが利用されます。

/usr/games

必須
なぜか必須のゲーム用ディレクトリです。

/usr/include

必須
C言語用ヘッダーファイルの保存場所。

/usr/lib

必須
usr版のライブラリ保存場所。/libと同じように64bit用に/lib64が用意されている。

/usr/libexec

オプション
コマンドから内部的に呼ばれる補助コマンドの保存場所。
dovecotやPostfix用のコマンドなど。

/usr/local

必須
システム管理者用のローカルファイル。管理者のみが利用するライブラリなどの追加に利用する。それぞれlibやbinといった必須のディレクトリが用意されている。

/usr/sbin

必須
usr版管理者用コマンド。

/usr/share

必須
アーキテクチャ(OSやソフト)に依存しないデータを配置。
具体的にはマニュアルのmanや各ソフトで利用するデータベース等が保存されている。

/usr/src

必須
ソースコードの保存場所。

/usr/tmp

オプション
usr版テンポラリファイルの保存場所。通常シンボルリンクが/tmpディレクトリに貼られている。

/var(バーorバア)

必須
ログやキャッシュなど、可変的システムデータ(動的ファイル)。一時的なデータとしては/tmpと同じですが、こちらは再起動しても消去されずに残ります。

/var/account

オプション
アカウントに関する動的ファイルを扱う。ユーザーごとにコマンドの履歴をとる/var/account/pacctなどに利用される。

/var/cache

必須
一時的な記憶場所。ソフトで指定した一定の容量を超えると古いものから削除される。

/var/crash

オプション
システムクラッシュ時のダンプデータ(クラッシュ時のメモリ上のデータ)保存場所。クラッシュの原因を究明するために利用されます。

/var/db

オプション
各ソフトで利用するデータベース情報。記述子についての情報を集めるnscdなどで利用する。

/var/empty

オプション
SSHで利用される。パーミッションの変更をするとログインできなくなるので注意。

/var/games

オプション
ゲーム用の動的ファイル保存場所。セーブデータなど。

/var/lib

必須
アプリケーションの実行によって生成されるステータスに関する情報。動的に生成されるもの。

/var/local

必須
/usr/local用のログファイル保存場所。

/var/lock

必須
排他制御を行う場合に利用する。他のユーザーが使用中か、変更点を保存しているかなどの情報。

/var/log

必須
システム管理者御用達ログファイルの保存場所。システム、メール、インターネットのアクセスログなど、あらゆるログが保存される。
安定したシステムでは、このディレクトリに関連したデータとばかり格闘することになりますw

/var/mail

オプション
メール関連の動的ファイルを管理する。通常/var/spool/mailへのシンボルリンク。

/var/named

オプション
BIND DNSサーバ用のディレクトリ。名前解決に関連するファイルが保存されている。chroot化していれば設定ファイルも。

/var/nis

オプション
NIS+等で利用する。

/var/opt

必須
/opt用の動的ファイル保存場所。

/var/preserve

オプション
エディタがクラッシュした時に利用する。クラッシュ時にメールでクラッシュ前のデータを送信してくれる。

/var/pwcheck

オプション
ユーザー認証のSASLライブラリでpwcheckを使う際に利用する。通常はsaslauthdを利用するため、あまり使われることはない。

/var/run

必須
特定プロセスのプロセス番号を含んだファイル。再起動時にはクリアされる。

/var/spool

必須
スプールファイル(実行ファイル・データの一時的な保存)を保存する。処理に時間のかかるものにプロセスを取られ続けるとリソースの無駄なので処理したデータを一度保存する。印刷時の印刷データや、メールの送信データなど。

/var/tmp

必須
システム関連の一時ファイルを保存する。/tmpはメモリ上のデータを保存するもので、こちらは再起動時のデータも扱うため、データは保持されます。cronによって削除の期間は設定されています。

/var/www

オプション
Apacheのデフォルトデータ保存場所。インターネット関連のディレクトリはここに収めるのが普通。かつては/home/httpdディレクトリにあった。

/var/yp

オプション
NISの動的ファイル保存場所。

他にも/varには追加するパッケージによってディレクトリが作成されます。
FTPやWebmin、racoonなど。


現在のページを共有する



現在のページに関連する記事

Linuxの基本の基本。Linuxの基本的なディレクトリ構成 サーバの処理を自動実行するcronの仕組みと応用法
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 Linuxでサーバを構築するに当たって必要になる基礎知識
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 Linux初心者こそ押さえたい、失敗しない設定ファイルの編集方法
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 Linuxの各アプリケーションが共通して利用する「PAM認証」について
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 Nginxで特定の国のIPだけを許可する方法
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 Linuxのターミナルでコマンドを入力する方法と、オプションを調べる方法
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 メモリ消費の多いClam AntiVirusの代替としてSophos Anti-Virus for Linuxを使う方法

おすすめの記事

Web Fontの使い方とGoogle Fontsのオススメフォント 10選

Web Fontの使い方とGoogle Fontsのオススメフォント 10選

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポンシブイメージの基本

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポン…

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

本気で作りたい人向け、WordPressプラグインの作成方法

本気で作りたい人向け、WordPressプラグインの作成方法

Norikraの使い方をサンプルのクエリとイベントを交えて解説

Norikraの使い方をサンプルのクエリとイベントを交えて解説

FuckAdBlockを利用して自由自在にAdblock対策をする方法

FuckAdBlockを利用して自由自在にAdblock対策をする方法

SNSのカウントをキャッシュするWordPressのプラグインを作成しました

SNSのカウントをキャッシュするWordPressのプラグインを作成し…


いただいたコメントなど

  1. ピンバック: Linuxの基本的なディレクトリ構成が知りたかった | DIALOGIQUE

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。