:: Linuxのディレクトリ構造

/ / WEB制作・開発

最近Linuxとapacheとnginxに関して、深い所で理解しなければならない状況に追い込まれている。毎回イチイチ調べるのも大変だし、この機会にしっかり頭に叩き込んでおきたかったのでまずはLinuxのディレクトリ構造についてメモ。マーケティングやディレクターが専門だったはずなのに最近ズレ幅大きくて結構焦る。。。知らないことは罪ということで自分を戒めて今日も勉強。サーバーエンジニアは当然、プログラマーでも今更何言ってんの??っていうレベルのメモ書きです。でも分かってくると結構楽しい♪♪

公式サイトはこちら
http://www.linux.com/

 

Linux ルートディレクトリ

 

/ルートディレクトリ
/bin 基本コマンド
/boot 起動に必要なファイル
/dev デバイスファイル
/etc 設定ファイル
/home(オプション) ユーザーのホームディレクトリ
/lib 共有ライブラリ
/mnt 一時的なマウントポイント
/opt 追加アプリケーション
/proc(Linux固有) プロセス情報など
/root(オプション) root用ホームディレクトリ
/sbin システム管理用コマンドなど
/tmp 一時的なファイル
/usr 各種プログラムなど
| ├ /usr/bin /binと同じだが、基本的ではない
| ├ /usr/etc /etcと同様
| ├ /usr/games
| ├ /usr/include 標準 includeファイル
| ├ /usr/lib /libと同類
| ├ /usr/sbin /sbinと同じだが、基本的ではない
| ├ /usr/share アーキテクチャに依存しない共有データ
| ├ /usr/src ソースコード(カーネルのソースコードとそのヘッダファイル)
| ├ /usr/tmp /tmpと同様
| └ /usr/local ホスト固有のローカルデータを格納する第三階層
/var 変更されるデータ
| ├ /var/lock 使用中リソースを保持するファイル
| ├ /var/log 各種ログファイル
| ├ /var/mail ユーザーのメールボックス
| ├ /var/run ブート以降の走行中システムに関する情報
| ├ /var/spool 処理待ち状態のタスクのスプール
| └ /var/tmp /tmpと同様

 

 

各ディレクトリ詳細

 

/bin(ビン)※必須

cpやchmodなどのシステムを管理する上で基本コマンドが入っている。
基本コマンド限定で管理するのが普通。例えば、cat、cp、ls、more、tarなど。

 

/boot(ブート)※必須

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

 

/dev(デブ)※必須

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

/etc(エトセ)※必須

ほとんどのシステム設定ファイルが入っているディレクトリ。また、サブディレクトリの/etc/rc.dには初期化スクリプトが入っている。
そのままetcディレクトリに保存するタイプと、サブディレクトリを作成してまとめるタイプがある。
my.cnf、php.ini、httpd.cnfなど
なお、/etc以下のファイルはホスト固有のデータなので共有することは考えられていない。

 

/home(ホーム)※オプション

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

 

/lib(リブ)※必須

共有ライブラリ。必要になった時点で初めてHDからメモリに読み込まれる。そのイメージを保存しておくディレクトリ。カーネルのブート時に必要なものと、/ファイルシステムにあるコマンド(/binや/sbin内のコマンド)を実行するのに必要なライブラリはここにある。
libc、libsslなど

 

/mnt(マウント)※必須

ファイルシステムの一時的なマウントポイント用ディレクトリ。ディストリビューションによって、/mntだけの場合と、その下にcdromやfloppyを含んでいる場合がある。一般のユーザーが使うことはないので、ほぼroot専用。

 

/opt(オプト)※必須

パッケージ管理システムでプログラムをインストールする場所。ここにもbin、doc、include、info、libといったサブディレクトリがある。
RPMやdpkgなど

 

/proc(プロック)※必須

プロセスのIDの付いたディレクトリが配置されている。プロセス独自の情報を格納することからプロセスディレクトリと呼ばれる。各種プロセスのステータスを確認する際に利用される。psコマンド、/proc/cpuinfo、/proc/netなどCPUやPCIバス、そして文字どおり各種プロセスの情報を読み出せる。

 

/root(ルート)※オプション

スーパーユーザーのホームディレクトリ。/homeと別なのは/homeが壊れてもrootだけは作業できるようにするため。

 

/sbin(エスビン)※必須

ブートやシステムのリカバリーに必要なシステム管理用のコマンドが収められている。/binと違うのは、rootが使用するシステムメンテナンス系のコマンドが集まっているため、一般ユーザーが使う必要はない。
shutdown、fastboot、fasthalt、fdisk、fsck、getty、halt、ifconfig、init、mkfs、mkswap、reboot、route、swapon、swapoff、update

 

/tmp(テンプ)※必須

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

 

/usr(ユーザー)※必須

ユーザー向けのディレクトリで、たくさんのサブディレクトリを持っている。サブディレクトリの1つである/usr/localは、パッケージ管理システムの管轄外となっている。自分でソースからコンパイルしたプログラムなどは、この/usr/local下に配置するのが一般的です。

 

/usr/bin ※必須

ユーザーが一般的に使用するコマンドが保存されている。一般ユーザーの利用するコマンド。
openssl、php、perlなど

 

/usr/etc ※オプション

あまり利用することはない。/usrに追加されるライブラリの設定ファイルは/etcが使われる。

 

/usr/games ※必須

ゲーム用ディレクトリ。

 

/usr/include ※必須

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

 

/usr/lib/ ※必須

usr版のプログラムに必要な共有ライブラリが配置される。

 

/usr/sbin/ ※必須

usr版のシステム管理コマンド。

 

/usr/share/ ※必須

アーキテクチャ(OSやソフト)に依存しないデータを配置。例えば、/usr/share/manには、manコマンドで使用されるマニュアルが配置される。

 

/usr/src/ ※必須

Linuxカーネルソースなどのソースコードの保存場所。

 

/usr/tmp ※オプション

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

 

/usr/local/ ※必須

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

 

/var(バー)※必須

このディレクトリも「tmp」と同じように一時ファイルを保存しておくディレクトリ。変化していく(variable)ファイルを配置するディレクトリです。/tmpと違って、リブートしても削除されない。
プリント、メール、ネットニュースのスプール、キャッシュといった作業用エリア、ログファイルなど

 

/var/lock/ ※必須

二重起動などをチェックするロックファイルが格納されているディレクトリ。

 

/var/log/ ※必須

ログファイル格納ディレクトリ。

 

/var/mail/ ※オプション

ユーザの電子メール格納ディレクトリ。通常/var/spool/mailへのシンボルリンク。

 

/var/run/ ※必須

起動してからのシステムデータ格納ディレクトリ。再起動時にはクリアされる。

 

/var/spool/ ※必須

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

 

/var/tmp/ ※必須

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

SNS SHARE

LEAVE A REPLY