Linuxのディレクトリ構造(一覧)を理解する

HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxの入門基礎知識 > Linuxのディレクトリ構造(一覧)を理解する

Linuxサーバー管理者の技術を2日で学べる「初心者向けリナックスセミナー」
30日掛かって覚えるプロの技術を、たった2日間で学習できます。
リナックスマスター2日間集中セミナー【CentOS7.1版】
 (今すぐ↑をクリックしてください。)

今回は、Linuxのディレクトリ一覧を紹介します。
Linuxは多数のファイルとディレクトリから構成されているシステムになり、
そのディレクトリ構造を押さえることは、Linuxシステムをイメージとして捉える上で
非常に重要になります。

まずは下記の一覧を確認して、どのようなディレクトリがあるのか確認してください。
---------------------------------------------------------

/ ルートディレクトリ

├ /bin 一般ユーザー向けの基本コマンド

├ /boot 起動に必要なファイル

├ /dev デバイスファイル

├ /etc 設定ファイル
| ├ /etc/opt/ optの設定ファイル
| ├ /etc/X11/ X Window System、 version11用の設定ファイル
| ├ /etc/sgml/ SGMLの設定ファイル
| └ /etc/xml/ XML の設定ファイル

├ /home ユーザーのホームディレクトリ

├ /lib 共有ライブラリ

├ /mnt ファイルシステムの一時的なマウントポイント用ディレクトリ

├ /media CD-ROMなどのリムーバブル媒体(media)のマウントポイント

├ /opt 実行時に書き換えられないアプリケーションソフトウェアパッケージ

├ /proc カーネルやプロセスに関する情報をテキストで表示する仮想ファイルシステム

├ /root root用ホームディレクトリ

├ /sbin システム管理用コマンド

├ /tmp ファイルなどを一時的に保管するディレクトリ

├ /srv システムに提供されたサイト固有のデータ

├ /usr プログラムやカーネルソース
| ├ /usr/bin/ /binと同じだが、基本的ではない
| ├ /usr/include/ 標準 includeファイル
| ├ /usr/lib/ /libと同類
| ├ /usr/sbin/ /sbinと同じだが、基本的ではない
| ├ /usr/share/ アーキテクチャに依存しない共有データ
| ├ /usr/src/ ソースコード(カーネルのソースコードとそのヘッダファイル)
| ├ /usr/X11R6/ X Window System, Version 11 Release 6
| └ /usr/local/ ホスト固有のローカルデータを格納する第三階層

└ /var システムログなどの動的に変化するファイル
  ├ /var/lock/ 使用中リソースを保持するファイル
  ├ /var/log/ 各種ログファイル
  ├ /var/mail/ ユーザーのメールボックス
  ├ /var/run/ ブート以降の走行中システムに関する情報
  ├ /var/spool/ 処理待ち状態のタスクのスプール
  ├ /var/spool/mail/ 互換のために残された、かつてのユーザーのメールボックス
  └ /var/tmp/ 一時ファイル置場 (マルチユーザーモードではこちらの使用が推奨される)

---------------------------------------------------------

このLinuxのディレクトリ一覧にも規格名があります。

それは、『FHS(Filesystem Hierarchy Standard)』 という
ディレクトリ構成規格になります。

以前はディストリビューションや、バージョンによって、
細かい点で差異があったのですが、現在はこのディレクトリ規格によって
統一化が図られています。
(しかし、現在でも多くの点で差異はあるので、FHSはひとつの
指標くらいに捉えておいてください。)

現在、ほとんどの主要ディストリビューションが、このFHSを元にディレクトリを
構成していますので、これを覚えると他の主要Linuxのディレクトリ構成についても
大抵通用します。
(但し、GoboLinuxなどのいくつかのシステムでは独自のディレクトリ
規格を採用していますので注意が必要です。)

ただ、上記のような一覧だけでは、非常に多くのディレクトリが表示されているので、
覚える気もなくなります。
それだと意味がないので、下記におさえて置くべき主要ディレクトリの説明をします。
それから覚えるようにしてください。

また、読み方も一緒に掲載していますが、これはあくまで私が現場にいた時に
そのように呼んでいた読み方になります。現場によっては、違う読み方があるかも
知れないのでその点は御了承ください。

■ /bin  読み方(ビン)
システム管理者(root)と一般ユーザーの両方が使う基本的な
コマンドが格納されています。
試しに、binディレクトリに格納されているコマンドを確認してみてください。

$cd /bin
$ls -l
-rwxr-xr-x 1 root root 73460 10月 12 2003 ls
-rwxr-xr-x 1 root mail 74844 8月 2 2003 mail
-rwxr-xr-x 1 root root 21812 10月 12 2003 mkdir

見慣れたコマンドが表示されませんでしたか?
このような基本的なコマンドが格納されているのが
「bin」ディレクトリです。

■ /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情報やメモリの使用状況、ネットワーク情報などが参照できます。

CPU情報を参照する場合
-----------------------------------------
# view /proc/cpuinfo
-----------------------------------------
メモリ情報を参照する場合
-----------------------------------------
# view /proc/meminfo
-----------------------------------------
但し、仮想的なファイルシステムになるため、
ファイルのように見えますが、実際にはディスク上に存在しません。

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

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

$cd /sbin
$ls -l
-rwxr-xr-x 1 root root 1819 10月 29 2003 service
-rwxr-xr-x 1 root root 55768 8月 26 2003 ifconfig
-rwxr-xr-x 1 root root 18336 9月 23 2003 shutdown

システム停止や、サービスなどのシステムに直接関係のある
大切なコマンドばかり格納されているディレクトリです。
セキュリティーの配慮として、一般ユーザーは実行できないよう
権限が与えられています。
※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/
処理を待つバッファであるスプールが配置されます。
送信待ちメールや、印刷待ちデータなどになります。

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

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



■CentOS7.1サーバー構築マニュアルを無料プレゼント
 「CentOS7.1」のサーバー構築手順、「VMware Player」の
 ダウンロードとインストール手順をまとめたマニュアルを
 無料でプレゼントしています。


 詳しくは↓のページで説明していますので、今すぐクリックしてダウンロードしてください。
 無料マニュアルをダウンロードする  無料マニュアルをダウンロードする