Unix/Linux オペレーティングシステムの標準および/または共通ディレクトリ

Unix/Linux オペレーティングシステムの標準および/または共通ディレクトリ

Windowsの世界では、ほとんどのフォルダディレクトリ名は非常に直感的だと思います。

  • \Program Filesプログラムで使用するファイルが含まれています(驚きました!)

  • \Program Files (x86)64ビットオペレーティングシステムの32ビットプログラムで使用されるファイルが含まれています。

  • \UsersDocuments and Settingsユーザーを含む(以前の)ファイル、つまり文書と設定

    • \Users\USER\Application Dataアプリケーション固有のデータが含まれています。

    • \Users\USER\Documentsユーザー所有の文書が含まれています。

  • \WindowsWindowsの自己実行に属するファイルが含まれています。

    • \Windows\Fontsフォントファイルを保存(驚きました!)

    • \Windows\Tempグローバル一時ディレクトリです。

など。これらのフォルダの目的を知らなくても、名前だけを見ると正確に推測できます。

これでLinuxを詳しく見ていますが、ファイルシステムを見つける方法が非常に混乱しています。

たとえば、

  • /binバイナリファイルが含まれています。しかし/sbin、、、、、私が知らないことがもっと/usr/binあるかもしれません。/usr/sbinどれがどれですか? ?それらの違いは何ですか?バイナリを作成してシステム全体に保存するにはどこに保存する必要がありますか?

  • /media外部メディアファイルシステムを含みます。しかし、それも本当です/mnt。現在、私のシステムには何も含まれていないようです/dev。違いは何ですか?私のハードドライブの他のパーティション(WindowsC:やWindowsなど)D:はどこにありますか?

  • /homeユーザーファイルと設定が含まれています。これは直感的ですが、次に何を議論する必要がありますか/usr/rootユーザーがファイルと設定を所有していても、まだ独立しているのはなぜですか?

  • /libDLLなどの共有ライブラリが含まれています。しかし、それも本当です/usr/lib。違いは何ですか?

  • はい /etc?それは本当に「待って」を意味するのか、それとも別のことを意味するのか?グローバルまたはローカルのどちらの種類のファイルを入力する必要がありますか?どこに入れるべきか誰も知らない包括的なものですか、それとも特定のユースケースがありますか?

  • /opt、、とは/proc何ですか/var?それらは何を表し、何に使用されますか? Windows*ではこのようなことを見たことがなく、その目的が何であるかわかりません。

知っておく価値のある他の標準的な場所が思われる場合は、質問に自由に追加してください。私のように*nixシステムに慣れ始めたばかりの人にとって良い参考資料になることを願っています。

*わかりました、それは嘘です。 WinObjで似たようなものを見たことがありますが、頻繁ではないようです。しかし、私はこれがLinuxでどのように機能するのかまだわかりません。

答え1

LinuxディストリビューションはFHSを使用します。http://www.pathname.com/fhs/pub/fhs-2.3.html

また、それを試すことができますman hier

ご質問の回答をすぐに要約しようとします。しかし、FHSの全内容を読むことを強くお勧めします。

  • スーパーユーザー以外のシステムバイナリの場合 /bin
  • / sbin:スーパーユーザー(ルート)システムバイナリ用
  • 重要でない共有非スーパーユーザーまたはスーパーユーザーバイナリの場合は、それぞれ/usr/binおよび/usr/sbin
  • / mntは一時的にパーティションをマウントするために使用されます。
  • /mediaは、複数のリムーバブルメディアを一度にマウントするために使用されます。
  • / devにはシステムデバイスファイルが含まれています。 :)
  • / usrフォルダとそのサブフォルダは他のシステムと共有できるため、ある場所にインストールされている同じプログラム/ファイルにアクセスできます。 / usrは通常別々のファイルシステムに存在するため、システムをオンラインにするために必要なバイナリは含まれません。
  • 別のパーティション/ハードドライブ/サーバーに存在する可能性がある他のディレクトリをマウントせずにシステムをオンラインにする必要があるため、/rootは別々です。
  • はい、/ etcは「etc」を示します。ローカルシステムの設定ファイルがここに保存されます。
  • /optはダウンロード/コンパイルされたプログラムをインストールできる場所です。これにより、ファイルをシステムの残りの部分から分離し、すべてのファイルを1つの場所に保存できます。
  • /procには、カーネルと実行中のプロセスに関する情報が含まれています。
  • / varには、ログ、電子メール、Webページなどの可変サイズのファイルが含まれています。

システムにアクセスするには、通常、システムで可能な最大のディレクトリの一部である/var、/opt、/usr、/homeは必要ありません。

私のお気に入りのディレクトリの1つは/ srvですが、一部の人はそれを使用しません。 http/ftp/samba などのサービスでホストされているデータに対して機能します。 / varがこの目的でよく使われるのを見ましたが、実際の目的ではありません。

答え2

私は彼らが何を意味するのか答えません(他の人は答えました)。しかし、いくつかの歴史的背景を提供します。

まず、UNIXは紙テープとメインフレーム300ボードのハードコーディング端末時代にさかのぼり、ほぼ40年の歴史を持っていることを覚えておいてください(Windows XPシステムはほぼ10年前です)。タイピング速度が遅く、タイピング効率の必要性が他の多くの考慮事項よりも優先される。これが基本コマンドが非常に短い理由です(例:「ls」、「cat」、「cc」、「dd」など)。ディレクトリ構造も同様です。コマンドが3〜4文字を超えると、名前が長すぎると思います。

ほとんどのコマンドは/ binにあり、すべてのデバイスファイルは/ devにあるため、/ usrディレクトリには最初にユーザーのホームディレクトリが含まれます。後で、ブート時間を短縮するためにベースドライブ(ルートファイルシステム、「/」)を小さくすることができると思いました。したがって、/usr/bin、/usr/include、/usr/lib などの他の構造があります。ここで /usr は別の「ドライブ」です。ずっと後は、ユーザーのホームディレクトリが別のドライブである/ homeにあると信じられました。その後、/var(variable/changeableの略語)が出ました。 / etcディレクトリはすべてのシステム設定ファイルの包括的な場所であるため、実際には「待機」を意味します。 / mntは、ドライブ(通常はバックアップドライブ)にアクセスするための一時的な場所として使用されます。 /opt、/proc、/media などのディレクトリは、はるかに後で提供されます。

/usr/local や /net などの多くの項目は省略されていますが、これはこれらの名前が「直感的ではない」理由を簡単に説明しています。

答え3

ここですでに述べたように、LinuxディストリビューションはほとんどFHSを使用しています。ここ特にWindowsユーザーのためのチュートリアル形式の概要です。

Windowsディレクトリに注意してください。〜らしい直感的で表面的です。しかし、プログラム設定は*.iniプログラムフォルダ、Documents and Settings\User\Application Dataまたは\Local Settings\Application Data)または悪名高いレジストリのファイルとしてどこに属しますか?マイクロソフトでさえ誰も知りません。だから私たちは続けることができます。

関連情報