Windowsの世界から来た私は、 folder 非常に直感的なディレクトリ名:
_\Program Files
_には、プログラムで使用されるファイルが含まれています(サプライズ!)
\Program Files (x86)
には、64ビットOS上の32ビットプログラムで使用されるファイルが含まれています
_\Users
_(以前の_Documents and Settings
_)には、ユーザーのファイル、つまりドキュメントと設定が含まれています
_\Users\USER\Application Data
_には、アプリケーション固有のデータが含まれています
_\Users\USER\Documents
_はユーザーに属するドキュメントを含みます
_\Windows
_には、Windows自体の操作に属するファイルが含まれています
_\Windows\Fonts
_はフォントファイルを格納します(サプライズ!)
_\Windows\Temp
_はグローバル一時ディレクトリです
など。これらのフォルダーが何をしているかわからなかったとしても、名前から正確に推測することができました。
今、私はLinuxをよく見ていて、ファイルシステムの周りに自分の道を見つける方法についてかなり混乱しています。
例えば:
_/bin
_にはバイナリが含まれます。しかし、_/sbin
_、_/usr/bin
_、_/usr/sbin
_、そしておそらく私が知らないよりもそうです。どっち?それらの違いは何ですか?バイナリを作成してシステム全体のどこかに配置したい場合、どこに配置すればよいですか?
_/media
_には、外部メディアファイルシステムが含まれます。しかし、_/mnt
_も同様です。現時点では、どちらも私のシステムには何も含まれていません。すべてが_/dev
_にあるようです。違いは何ですか? Windowsにあった_C:
_や_D:
_など、ハードディスクの他のパーティションはどこにありますか?
_/home
_には、ユーザーファイルと設定が含まれています。これだけは直感的ですが、_/usr
_には何が入るのでしょうか。そして、ファイルと設定を持つユーザーであるにもかかわらず、なぜ_/root
_はまだ分離されているのですか?
_/lib
_には、DLLなどの共有ライブラリが含まれています。しかし、_/usr/lib
_も同様です。違いは何ですか?
は何ですか _/etc
_?それは本当に「et cetera」、または何か他のものを表していますか?そこにはどのような種類のファイルを入れる必要がありますか?グローバルまたはローカル?それはどこに置くべきか誰も知らないもののキャッチオールですか、それとも特定のユースケースがありますか?
_/opt
_、_/proc
_、および_/var
_とは何ですか?それらは何を表し、何に使用されますか?私はWindows *でそれらのようなものを何も見たことがなく、それらが何のためにあるのか理解できません。
誰かが知っておくとよい他の標準的な場所について考えることができる場合は、質問に自由に追加してください。うまくいけば、これは、* nixシステムに慣れ始めた私のような人々にとって、良い参考になります。
* OK、それは嘘です。私はWinObjで同様のことを見てきましたが、明らかに定期的ではありません。ただし、Linuxでこれらが何を行うのかはまだわかりません。
LinuxディストリビューションはFHSを使用します: http://www.pathname.com/fhs/pub/fhs-2.3.html
あなたも試すことができますman hier
。
私は頭の中からあなたの質問の答えを要約しようとしますが、FHSを読むことを強くお勧めします:
システムにアクセスするには、通常/ var、/ opt、/ usr、/ homeは必要ありません。システム上の潜在的に最大のディレクトリの一部。
一部の人々が使用しない私のお気に入りの1つは/ srvです。これは、http/ftp/sambaなどのサービスを介してホストされているデータ用です。/varがこれによく使用されているのを目にしましたが、それは実際にはその目的ではありません。
私はそれらすべてが何を意味するか(他の人が持っている)については答えませんが、少し歴史的な背景を与えます。
まず、UNIXは紙テープと300ボーのハードコーディングされた端末からメインフレームに戻って、40年近くになります(Windows XPシステムは10年近くになります)。タイピングは遅く、タイピングの効率の必要性は他の多くの考慮事項を上回っていました。それが非常に短い基本的なコマンド(つまり、「ls」、「cat」、「cc」、「dd」など)の理由です。ディレクトリ構造についても同様で、コマンドが3文字または4文字を超えると名前が長すぎると考えられました。
ほとんどのコマンドは/ binにあり、すべてのデバイスファイルは/ devにあったため、/ usrディレクトリには元々ユーザーのホームディレクトリが含まれていました。後でブート時間を短縮するために、プライマリドライブ(ルートファイルシステム、 '/')を小さくすると考えられました。したがって、/ usr/bin、/ usr/include、/ usr/libなどの他の構造が生まれました。ここで、/ usrは独立した「ドライブ」でした。ずっと後に、ユーザーのホームディレクトリが/ homeにあると考えられましたが、さらに別のドライブです。そしてそれよりずっと後に、/ var(変数/変更可能の短縮形)を持つようにしました。/etcディレクトリは、「et cetera」を意味していました。それは、すべてのシステム構成ファイルの包括的な場所だからです。/mntは、ドライブ(多くの場合、バックアップドライブ)にアクセスするための一時的な場所として使用されていました。/opt、/ proc、および/ mediaなどのディレクトリは、はるかに後に登場しました。
(/ usr/localや/ netのように)除外されている部分はたくさんありますが、これは名前が「直感的でない」理由を簡単に説明しています。
すでにここで述べたように、Linuxディストリビューションは主にFHSを使用します。チュートリアルのような概要については here を参照してください。Windowsからの参加者に特に適しています。
注意として、Windowsディレクトリは直感的に、表面的には見えるようです。ただし、プログラムの設定がどこに属しているかを、プログラムフォルダの*.ini
ファイル、Documents and Settings\User
(\Application Data
または\Local Settings\Application Data
)、または悪名高いレジストリ?誰も知らない、マイクロソフトでさえ。そして、私たちは続けられます。