10代と話して驚いたこと

ディレクトリ名のの略称とと役割に関して質問です。

LinuxおよびUnix系のディレクトリ名やコマンド名は英語の略称
が元になっているものが多いと思います。

しかし、その元となっていると思われる単語と実際の役割が
結構ずれている気がするので、「自分が、”元となっている単語”
と思っているもの自体が間違っている」のではないかとも思います。

下記はルートディレクトリの役割
http://www.atmarkit.co.jp/flinux/rensai/theory02 …
に対し、→で自分の予想の単語を書き出したものです。

/   ルートディレクトリ
├ /bin基本コマンド
→ バイナリ binary
├ /etc 設定ファイル
→ その他 etc.
├ /sbin システム管理用コマンドなど
→ 特権コマンド super user bin
├ /usr 各種プログラムなど
→ ユーザー user
└ /var 変更されるデータ
   → 変数 variations

こうしてみると、
設定が”その他”とか
各種プログラムが”ユーザー”とか
ちょっと感覚的にしっくりこないものが多いです。

Linux/Unixのディレクトリ構成は歴史的な流れの中で
当初の役割が変わってしまったのかもしれません。

歴史的な経緯や、慣習に詳しい人
このあたりにことを解説していただけると助かります。

A 回答 (5件)

FHSのドキュメントはご覧になりましたか?


比較的新しいディレクトリは、このドキュメントを読むことで命名の由来を想像できます。
 sbinEssential system binaries
 varVariable data

参考URL:http://www.pathname.com/fhs/pub/fhs-2.3.html,htt …
    • good
    • 0

/usr



「User Services and Routines」の略。
サービスを行うデーモン類やアプリケーション、それらが依存するライブラリ類等を収録するためのディレクトリ。
    • good
    • 0

半分想像が入りますが。


昔の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が入っているディストリビューションとかが出てきたりいろいろの変遷があり。
    • good
    • 0

/var は variable だろうなぁ.


/etc は今でこそ設定ファイルを置くディレクトリになってますが, 昔は他のものもあったはずです. 確か, unlink というコマンドも /etc にあったりしたはず.
あと, 昔は /usr の下に各ユーザのホームディレクトリを置いたこともあったとか.
    • good
    • 0

/sbin とか /var はわりとあとのほうの命名だと思います。


/usrのいわれについては
UNIX 用語 由来/読み方辞書 version 1.6 (Feb 13 1995)
http://www.cjn.or.jp/docs/dic/unix-term-dic.html

とか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報