下記はルートディレクトリの役割
http://www.atmarkit.co.jp/flinux/rensai/theory02/theory02a.html
に対し、→で自分の予想の単語を書き出したものです。
/ ルートディレクトリ
├ /bin 基本コマンド
→ バイナリ binary
├ /etc 設定ファイル
→ その他 etc.
├ /sbin システム管理用コマンドなど
→ 特権コマンド super user bin
├ /usr 各種プログラムなど
→ ユーザー user
└ /var 変更されるデータ
→ 変数 variations
こうしてみると、
設定が”その他”とか
各種プログラムが”ユーザー”とか
ちょっと感覚的にしっくりこないものが多いです。
Linux/Unixのディレクトリ構成は歴史的な流れの中で
当初の役割が変わってしまったのかもしれません。
このあたりにことを解説していただけると助かります。
FHSのドキュメントはご覧になりましたか?
比較的新しいディレクトリは、このドキュメントを読むことで命名の由来を想像できます。
sbin Essential system binaries
var Variable data
http://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
昔のUNIXは
/usr=ユーザのホーム、 /lib=ライブラリ、 /dev=デバイスファイル、 /etc=その他いろいろ(設定ファイル、管理用コマンド、ログ、などなど)
となっていました。
利用者が作ったコマンドは現在では /usr/local/*などに入ったりしますが、当時は /usr/bin, /usr/libに入れたのではないかと思います。
あと、当時はHDDの容量が小さかったので、起動に必要なファイルはルートパーティション、すなわち、 /bin, /libに入れ、起動の時にはなくて良いものは /usr/* に入れるようになりました。
オンラインマニュアルは /usr/man/セクション番号 に置かれました。
テンポラリファイルは/usr/tmp につくり、
/usr/spool プリンタスプールやメールスプールなど
/usr/adm ログファイル
といったように /usrの下にいろいろな特定の役割を持つディレクトリを置くようになりました。
/usrが混んでできたので、利用者のホームディレクトリは/usr以外に置くようになります。
/usr/users/$LOGNAME
とか。
/home/$LOGNAME
が使われるようになるのは、もっと後、1980年代中頃以降ではないかとおもいます。
/usr/*はUNIXの配布元が配るファイルばかりになったので、各利用者サイドで自主的に追加するコマンドの置き場所が /usr/local/bin, /usr/local/lib・・・などになります。
バークレー版UNIXではバークレーで独自に開発して納めたコマンドは /usr/ucbに入れました。
当時は、利用者のサーチパスに入れるのが/usr/bin、入れないのが/usr/libだったのでsendmailは/usr/libに置かれていました。
libexecは無かった。/varも無かった。
ネットワークファイルシステムやディスクレスUNIX技術が発展してくると、ファイルを、計算機固有のファイル、共有可能なファイル、書換えが必要なファイル、書き換えないファイル、等にきとんと分類しようという動きが出てきます。この運動の結果、ディレクトリ階層が現在みるかたちにほぼまとまりました。
/etc 各ホスト固有の設定ファイル
/usr/bin 一般利用者が直接起動するバイナリ
/usr/lib 一般利用者が利用するライブラリ
/usr/libexec 一般利用者が直接は起動しないバイナリ
/usr/share/man オンラインマニュアル
/var 個々のホストが独自に書き込むファイルの置き場
/home/ホスト名/ユーザ名 個人のホーム
/sbin、/usr/sbin システム管理者のみが使うバイナリ
などなど
この時点で、/usrはリードオンリーファイルシステムでも困らないようになります(ソフトの追加インストールの時など以外は読み取りしかしない)。
その後、個人利用者が前提のlinuxでは以上のような前提が忘れられ、一般利用者がサーチパスに /usr/sbinが入っているディストリビューションとかが出てきたりいろいろの変遷があり。