Linuxのディレクトリ構造


最近、更新できていなかったので、これからぼちぼち更新していきます。
とりあえず、基本から見直しってことで、基礎から。

```bash

■ /boot　読み方(ブート)
システム起動時に必要なファイルを格納しています。
普段Linuxを使用していて、このディレクトリにあるファイルを 変更することは滅多にありません。
起動時にBIOSの制限を受けないようにするため、ルートファイルシステムとは別に、
ディスクの先頭付近に配置されることがあります。
起動に必要なファイルがあるという事だけ覚えておいてください。

■ /dev 読み方(デブ)
デバイスファイルが保存されいるディレクトリです。
Linuxでは 『デバイスもファイルとして扱う』 という設計思想がとられています。

これはUNIXから受け継いだ設計思想になり、プログラムを組んでデバイスを
使用する場合は、普通のファイルを扱うのと同じ様に、デバイスファイルを
『Open』して、『Read』『Write』と順番に処理をして、最後に『Close』する
という手順でアクセスするようになっています。

しかし、devディレクトリのファイルを操作することは滅多にありません。
意味も解らずに操作するとデバイスが使用できなくなってしまうので、
扱いには注意が必要です。

■ /etc 読み方(エトセ)
etcディレクトリには「設定ファイル」が格納されています。
システムに関する設定ファイルや、アプリケーションに関する設定ファイル、
種類、数ともに様々ですべてを把握している人はあまりいないと思います。

代表的なものには、 IPアドレスとホスト名をDNSサーバー参照なしでも
名前の解決ができる「hosts」ファイルや、シェルの初期設定ファイル「profile」
などがあります。

■ /home 読み方(ホーム)
各ユーザーのホームディレクトリがあるディレクトリです。
ログインしたときに最初にアクセスするディレクトリは「/home/ユーザー名」 になり、ユーザー名がpakiraの場合、
「/home/pakira」となります。
また、独立したファイルシステムにすることで、クォータを設定できたり、
保守性を向上させたりできます。
このディレクトリで、各一般ユーザーは作業を行います。
※FHSではオプション扱いとなっています。

■ /lib　読み方(リブ)
システムの起動時に必要なものと、「/bin」や「/sbin」ディレクトリにあるコマンドを
実行するのに必要なライブラリが保存されています。
ユーザーや管理者がこの「/lib」ディレクトリに直接アクセスすることは滅多にありません。

■ /mnt　読み方(マウント)
フロッピーディスクドライブやCD-ROMドライブなど、リムーバブルメディアを
使用するとき（マウント）に利用するマウントポイント用ディレクトリです。
一般ユーザーが利用することはなく、root専用のディレクトリと覚えたほうがいいでしょう。

■ /opt　読み方(オプト)
RPMやdpkgといったパッケージ管理システムでプログラムをインストールする時に
使用するディレクトリです。ディストリビューションによっては配置されません。

■ /proc　読み方(プロック)
カーネル内部の情報にアクセスする為の仮想的なファイルシステムです。
Linuxサーバーのハードウェア情報などを知るための情報ファイルが存在しています。
例えば、CPU情報やメモリの使用状況、ネットワーク情報などが参照できます。

■ /root　読み方(ルート)
システム管理者(root)のホームディレクトリです。
以前は「/」（ルートディレクトリ）がホームディレクトリとして
使われていましたが、「/root」が使われるように変更されました。
「/home」の一般ユーザーのホームディレクトリと別になっているのは
「/home」が壊れても、「/root」で作業が出来るようにという配慮からです。
※FHSではオプション扱いとなっています。

■ /sbin 読み方(エスビン)
システム管理者(root)が使用するコマンドが格納されています。
主に、起動、停止やリカバリーのような、システム管理に必要 なコマンドです。

■ /tmp　読み方(テンプ)
一時的にファイルを保存したり、作業したりするためのディレクトリです。
再起動などをすると、このディレクトリ内のファイルは削除されてしまいますので
使用には注意が必要です。
大切なファイルは間違ってもtmpディレクトリに保存してはいけません。
※テンポラリ（temporary:一時的な）からこの名前がつけられいます。
※すべてのユーザーが読み書き可能です。

■ /usr　読み方(ユーザー)
ユーザー向けのディレクトリで、たくさんのサブディレクトリを持っています。
代表的なものの1つに「/usr/local」ディレクトリがありますが、
これはRedhat系Linuxのパッケージ管理システムの
管理対象外で、ソースからコンパイルしたプログラムなどをここに保存するのが一般的です。

■ /usr/bin/
ユーザーが一般的に使用するコマンドで、
緊急時のシステム保守に必須ではないコマンドが配置されます。

■ /usr/lib/
プログラムに必要な共有ライブラリが配置されます。

■ /usr/sbin/
システム管理コマンドで、
緊急時のシステム保守に必須ではないコマンドが配置されます。

■ /usr/share/
x86やAlphaといったシステムアーキテクチャに依存しないファイルが
配置されます。例えば、/usr/share/manには、manコマンドで使用される
マニュアルが配置されます。

■ /usr/src/
Linuxカーネルソースなどのソースコードが配置されます。

■ /usr/X11R6/
XFree86（X Window System）用ファイルが配置されます。

■ /usr/local/
ローカルシステムで必要とされるコマンドやライブラリ、ドキュメントなどが
配置されます。このディレクトリ内は、さらにbin、sbin、libなどに細分化されます。

■ /var　読み方(バア)
このディレクトリも「tmp」と同じように一時ファイルを
保存しておくディレクトリです。しかし、ここに保存されているファイルは、
サーバーを 再起動しても削除されません。
保存されているファイルの種類は 「変化していくファイル」です。
代表的なものにはシステムログファイルやメール、
プリンタのスプールファイルがあります。
エラーの際にチェックするシステムログファイルの
「/var/log/messages」 は、この/varディレクトリに保存されています。

■ /var/cache/
manコマンドで表示する為に整形したデータなど、
一時的なキャッシュファイルが配置されます。

■ /var/lock/
アプリケーションが排他制御に使用するロックファイルが配置されます。

■ /var/log/
ログファイルが出力されます。システムのログファイル（messages）、
メールのログファイル（maillog）などが配置されます。

■ /var/run/
システムの状態を示すファイルが配置されます。
PIDを格納したファイルを参照することで、PIDの確認が行えます。

■ /var/spool/
処理を待つバッファであるスプールが配置されます。
送信待ちメールや、印刷待ちデータなどになります。

非常に多くのディレクトリが登場しましたが、馴染みのある
ディレクトリから覚えようとすると、さほど苦にはならなかないと思います。

実際にそのディレクトリにアクセスしてみて、内容を確認すると
なお理解しやすいと思いますので、無理して覚えようとはせず、
わかるところから理解するようにしてください。


```