この特集のトップページへ
この回のトップページへ

/binディレクトリ

 /binディレクトリは,「システム管理者やユーザーが利用し,且つ起動時やメンテナンス時に必須のコマンド類」を格納するために利用される。シェルやファイルの属性変更,ファイルのコピーや削除といった代表的なコマンドは,この/binディレクトリに配置する。

 また,システム管理者のみが利用し,一般ユーザーは関与しないコマンドは,後述の/sbinディレクトリに配置する。また起動時に必須ではないコマンド類は,後述の/usr/binディレクトリや,/usr/sbinディレクトリに含まれる。

 /binディレクトリには,次に示すコマンドが存在しなければならない。

cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname

 また,次のコマンドは/binディレクトリに存在しても,しなくてもよいものだ。

csh, ed, tar, cpio, gzip, gunzip, zcat, netstat, ping

 /binディレクトリには,上記に挙げたコマンド類がOSのシステムインストール時に配置される。すなわち,/binディレクトリ内のファイルは,OSのインストール時に用意されるものであり,システム管理者が用意するものではない。

 システム管理者は,/binディレクトリに後からインストールするコマンド類を追加してはならない。なぜならば,/binディレクトリの内容はOSをアップグレードしたり,パッチを当てたりする際に,上書きや削除されるといった可能性があるためだ。

/bootディレクトリ

 /bootディレクトリには,「起動時に必要なカーネルイメージやブートローダー」ファイルなどが配置されている。

 カーネルのイメージ(vmlinuz)は,ルートディレクトリ(/)またはこの/bootディレクトリのいずれかに配置されていなければならない。

/devディレクトリ

 /devディレクトリには,デバイスファイルが配置されている。/dev/cdromなどが該当する。

/etcディレクトリ

 /etcディレクトリには、このシステムの環境設定ファイルを配置する。

 システム管理者は,/etcディレクトリ内のファイルを編集することでシステムの環境設定を行う。FHSでは,システム設定に必要なファイル群は,この/etcディレクトリ下にまとめて配置するように構成されている。このため/etcディレクトリ以外に格納されているファイルを編集する必要がないよう配慮されている。

 そうとはいえ,ソースからのtarボールインストールでどうしても他のディレクトリに設定ファイルが存在する場合には,/etcディレクトリ下にシンボリックインクを張るなどの工夫が必要かもしれない。

 /etcディレクトリには,実行するためのコマンド(バイナリファイル)を置いてはならない。バイナリとして提供されるコマンド類は,/binディレクトリや/sbinディレクトリに保存しよう(シェルスクリプトを/etcディレクトリに保存するのは構わない)。

 /etcディレクトリ下には,optサブディレクトリ(/etc/opt)が存在しなければならない。/etc/optディレクトリには,パッケージ名のサブディレクトリを作成し,後述する/optディレクトリに保存したパッケージプログラムの設定ファイルを配置する。

 /etcディレクトリにどのようなファイルが含まれるべきかは,OSやシステム構成によって異なるため,必須とされるべきファイルは特に定められていない。/etcディレクトリには,次のファイルが存在してもしなくてもよい。

csh.login, exports, fstab, ftpusers, gateways, gettydefs, group, host.conf, hosts, hosts.allow, hosts.deny, hosts.equiv, hosts.lpd, inetd.conf, inittab, issue, ld.so.conf, motd, mtab, mtools.conf, networks, passwd, printcap, profile, protocols, resolv.conf, rpc, securetty, services, shells, syslog.conf

 また,/etcディレクトリには,次のサブディレクトリを作っても構わない。

/etc/X11

 X Window Systemの設定ファイルを保存するためのディレクトリ。Xconfig, XF86Config, Xmodmapなどのファイルが含まれる。

/etc/sgml

 SGMLやXMLの設定ファイルを保存するためのディレクトリ。DTDの定義ファイルなどが格納される。

/homeディレクトリ

 /homeディレクトリは必須ではない。このため,用意されていても,いなくてもよいのだ。

 一般に/homeディレクトリには,各ユーザーがファイルを保存できるようにユーザー名と同名のディレクトリをそのユーザーが所有するように作成し,その下を各ユーザーが自由に読み書きできるように設定する。

/libディレクトリ

 /libディレクトリには,/binディレクトリや/sbinディレクトリに置かれたコマンドの実行に必要となる共有ライブラリファイルを配置する。

 またカーネルのモジュールファイルが存在するならば,/libディレクトリの下にmodulesサブディレクトリ(/lib/modules)を作り配置する。

 もしCPUの種類などによってライブラリが異なる場合には,lib32lib64といったディレクトリを作成しておき,それぞれのCPUに合ったライブラリファイルを保存しておく。/libディレクトリからシンボリックリンクを張るという形式になる。

 /libディレクトリの内容は,OSをインストールする際に標準で用意される。システム管理者は,/libディレクトリに後からインストールする共有ライブラリを保存すべきではない。さもないとOSのアップグレード時やパッチ適用時に上書きされる可能性があるためだ。

 また,起動や/bin/sbinディレクトリ内のコマンドの実行に必須とされない共有ライブラリは,この/libディレクトリではなく,後述の/usr/libディレクトリに保存する。

/mntディレクトリ

 /mntディレクトリは,一時的にマウントする場所として利用する。例えば,フロッピーディスクやCD-ROMのマウント先として利用するのだ。このディレクトリ下にはどのような実ファイルも存在しない。

/optディレクトリ

 /optディレクトリ下は,付加的なアプリケーションのインストール先に使われる。

 /optディレクトリにはパッケージ名のサブディレクトリを作り,その下に個々のアプリケーションのプログラムをインストールする。

 ただし,次のディレクトリ名はシステム管理者のために予約されており,アプリケーションのインストール先として利用してはならない。

/opt/bin, /opt/doc, /opt/include, /opt/info,
/opt/lib, /opt/man

 なお/optディレクトリの下には,バイナリの実行ファイルのみを格納する。

 環境設定ファイルは/optディレクトリではなく,/etc/opt/パッケージ名,動的に変化するファイルは/var/opt/パッケージ名,それぞれ保存する。

/rootディレクトリ

 /rootディレクトリは,rootユーザーのホームディレクトリだ。この位置が必須ではないが,/rootディレクトリをrootユーザーのホームディレクトリとして用意しておくことが推奨されている。ランレベル1で動作する際を考えれば,home/ディレクトリ下にroot/が含まれない理由も自ずとから分かってくるだろう。

/sbinディレクトリ

 /sbinディレクトリには,システム管理者が用いるコマンド群が配置されている。

 システム管理者が用いるコマンドを格納するディレクトリは,この/sbin以外にも,後述する/usr/sbin/usr/local/sbinの2つのディレクトリがある。

 /sbinディレクトリには,起動時やメンテナンス時に必要とされるコマンド類を格納し,起動やメンテナンスに必須とされないコマンドについては,/usr/sbinディレクトリに格納する。

 また,/sbinディレクトリや/usr/sbinディレクトリに格納されるべきファイルは,OSのインストール時に用意される。したがって,システム管理者が/sbinディレクトリや/usr/sbinディレクトリに何かファイルを用意しなければならないことはない。

 OSの標準的に含まれるコマンドではなく,システム管理者が独自にインストールするコマンド類は,/usr/local/sbinディレクトリである。なぜならば,/sbinディレクトリや/usr/sbinディレクトリに格納したファイルは,OSのアップグレード時やパッチ適用時に上書きされたり,削除される可能性があるためだ。

 /sbinディレクトリには,次のコマンドが含まれていなければならない。

shutdown

 また,次のコマンドが含まれるかは任意である。

fastboot, fasthalt, fdisk, fsck, fsck.*, getty, halt, ifconfig, init, mkfs, mkfs.*, mkswap, reboot, route, swapon, swapoff, update

/tmpディレクトリ

 /tmpディレクトリは,一時的に利用するテンポラリファイルを格納するのに用いられる。

 /tmpディレクトリに保存したファイルやディレクトリは,システムの起動時にすべて削除される。

 /tmpディレクトリと似たディレクトリに,後述する/var/tmpディレクトリがある。/var/tmpディレクトリは,/tmpディレクトリとは異なり,システム起動時に内容が削除されないという違いがある。

PREV 2/4 NEXT