web-dev-qa-db-ja.com

Ubuntuファイルシステムのレイアウトを理解する方法

Windowsでは、おそらくインストールドライブ(私の場合はC:\)にいくつかの重要なフォルダー(重要なことは、Windowsファイルシステムの論理図で重要という意味)だけがあります。つまり、Program FilesおよびWindowsです。 Windowsフォルダーから離れるだけで、Windowsのprogram filesフォルダーを処理するには「プログラムファイルの追加と削除」で十分です。もちろん、Usersという名前のフォルダーがあり、ユーザー(管理者ではない)は自分のフォルダーのみにアクセスできます。

したがって、Windowsファイルシステムについての私の考えには、ある程度の明確なイメージがあります。 Ubuntuでは、/という場所にたどり着くと、フォルダーの膨大なリストがありますが、ほとんどのフォルダーには何が含まれているのかわかりません。 /binフォルダーは、WindowsのWindowsフォルダーと同等のようです。 /usrフォルダーは、WindowsのUsersフォルダーに相当するようです。しかし、/homeフォルダーでさえ、法案に合うように見えます。

Ubuntu(Linux)はWindowsとは異なる性質を持っていることを理解してください。つまり、UbuntuではWindowsの機能とまったく同じである必要はありません。私が探しているのは、Ubuntuファイルシステムのもう少し明確な画像だけです。

この質問は、より回答しやすいように分割している大きな質問の一部です。元の質問はここにあります:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/

217
Shashank Sawant

これについては、例えばウィキペディアで読むことができます。抜粋:

Filesystem Hierarchy Standard (FHS)は、Linuxオペレーティングシステムのメインディレクトリとその内容を定義します。ほとんどの場合、従来のBSDファイルシステム階層の形式化と拡張です。

FHSは、HP、Red Hat、IBM、Dellなどの主要なソフトウェアおよびハードウェアベンダーで構成される非営利組織であるLinux Foundationによって管理されています。現在のバージョンは3.0で、2015年6月3日にリリースされました。

短い説明付きの視覚的表現:

enter image description here

基本的に、Linuxは最小限の権限でシステムを可能な限り安全にするために必要な機能に基づいてディレクトリ構造を分割しています。さもなければ、誰かが回避可能な仕事をたくさんしなければならない。

UnixおよびLinuxはマルチユーザーシステムとして作成され、Windowsは単一ユーザー用に作成されたことを思い出してください。他のすべてはその考えから説明できます。マルチユーザーおよびセキュリティであると考えるとき、すべてのディレクトリを説明できます。

3つの例:

  • Adminのみのファイルとディレクトリが同じディレクトリに収集されていることがわかります。/sbinおよび/usr/sbinおよび/usr/local/sbinのsはシステムを表します。通常のユーザーは、そこにあるプログラムを起動することさえできません。通常のユーザーが開始できるファイルは、最も論理的に常駐する場所に基づいて、/ bin、/ usr/bin、/ usr/local/binにあります。ただし、管理者のみの場合は、そのディレクトリのsバージョンに移動する必要があります。 fuserという有名なユーティリティがあります。あなたはそれでプロセスを殺すことができます。通常のユーザーがこれを使用できる場合、セッションを強制終了できます。

  • /homeについても同じことが言えます。/home/user1はuser1のプロパティです。/home/user2はuser2のプロパティです。 user2には、user1の家で仕事をするビジネスはありません(また、逆のことも言えます。user1には、user2の家で仕事をするビジネスはありません)。すべてのファイルが/ homeにあり、その下にユーザー名がない場合、すべてのファイルに許可を与え、誰かがそれらのファイルの書き込み/削除を許可されているかどうかを評価する必要があります。何十人ものユーザーがいる場合、悪夢です。

  • 追加 ライブラリに関して。

    /lib//usr/lib/、および/usr/local/lib/は、multilibシステムが存在する前からのものであり、破損を防ぐために存在しています。 /usr/lib32/usr/lib/64/usr/local/lib32//usr/local/lib64/は32/64ビットのマルチライブラリの発明です。

決して静的な概念ではありません。他のLinuxフレーバーは、このレイアウトを微調整しました。例えば;現在、 debianおよびUbunt が表示されます。これは、SSDの方が読み取り専用ファイルの方が優れているため、FHSのレイアウトで大きく変化します。ファイルが「読み取り専用」および「書き込み可能な」ディレクトリ/グループに分割される新しいレイアウトに向かう動きがあるため、読み取り専用(ssdのパーティション)および書き込み可能なルートパーティションを作成できます。 (sata hdd)。このために使用される新しいディレクトリ(画像ではない)は/run/です。

251
Rinzwind

このコマンドを試してみてください...

man 7 hier

このマニュアルページはこちらからもご覧いただけます。 http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

それが役に立てば幸い

101
Pritesh Wadhia

後期回答-初心者が従うべきロードマップを作成しました。ファイルを探しているが、どこを探すべきかわからない場合、マップを使用して大まかにナビゲートできます。高解像度PNG こちら をダウンロードできます。関連する投稿を見つけることができます こちら 。時間が許せば、ファイルと投稿の両方を更新し続け、有益なコメントを取り入れます。

45
d4nyll

次のテキストは、ディレクトリ構造を示しています。

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

主なコンポーネントは次のとおりです。

  1. /boot:ブートローダーが含まれています

  2. /home:ユーザーのホームディレクトリが含まれます。

  3. /bin:システム上のすべてのユーザーが使用するすべての実行可能バイナリとコマンドはここにあります。

  4. /sbin:これには、システム管理者が通常使用するシステム実行可能バイナリが含まれています。

  5. /lib:/ binおよび/ sbinのバイナリをサポートするシステムライブラリが含まれています。

  6. /etc:ネットワーク、ブート時間などの構成ファイルが含まれています。

  7. /dev:デバイスファイルがあります。つまり、システムに接続されているusb、端末デバイス、またはその他のデバイスがここに示されています。

  8. /proc:実行中のプロセスに関する情報が含まれます。

  9. /tmp:これは、多くのプロセスが必要な一時ファイルを作成する一時ディレクトリです。これは、マシンが起動するたびに削除されます。

詳細については、 Thegeekstuff リンクで汎用Linuxファイルシステムを完全に説明しています。

36
mtk

\Users/homeと同等です。 /usrの名前は歴史的な人工物です。

\Windows\Program Filesを組み合わせたものは、/bin/boot/etc/lib/sbin/tmp/usr、および/varの組み合わせです。 LinuxとWindowsは、インストールされているソフトウェアを別々に分割します。 Windowsは、オペレーティングシステムとコンパニオンプログラムを区別します。 Linuxは同じ方法でこの区別を行いません。すべてではありませんが、ほとんどのソフトウェアはUbuntu(ディストリビューター)を通じて提供され、同じディレクトリ階層にインストールされます。ソフトウェアはパッケージマネージャーによって追跡されるため、各プログラムを独自のディレクトリに保存する必要はありません。 Linuxの場合:

  • /etcは、システム構成ファイル用です。オペレーティングシステム全体に適用するか特定のアプリケーションに適用するかに関係なく、すべてのユーザーに影響する構成ファイルです。
  • /usrは、システムコードとデータ(プログラム、ライブラリ、ドキュメントなど)用です。
  • /varは、一時ファイル、ログ、パッケージマネージャーデータベース、プリンタースプール、ゲーム保存ファイルなどの可変または一時データ用です。再起動後に消去できる一時ファイル用の/tmpもあります。
  • ルートディレクトリの/bin/lib、および/sbinには、/usrに対応するものがあります。 /usrの外側にあるファイルは、ブートプロセスの初期段階で必要なファイルです。これは、ディスクが小さく、/usrがネットワーク上の複数のワークステーション間で共有されているファイルシステム上にある可能性がある時代の遺物であり、実際にはほとんどのシステムで有用な区別ではありません。
  • /bootには、日常の操作ではなく、オペレーティングシステムの起動にのみ必要なファイルがいくつか含まれています。

Windowsが持っているものに対応しない追加のディレクトリがあります。

  • /rootは、ルートユーザーのホームディレクトリです。 rootユーザーは、特定のユーザーに関連付けられていない管理者アカウントです。 Sudoの実行時に変更するユーザーです。 Ubuntuは、デフォルトではrootユーザーのログインを許可しません。
  • /media/mntはマウントポイントです。他のオペレーティングシステムとリモートドライブのファイルシステムを見ることができる場所です。 Windowsでこれに相当するのは、他のドライブ文字です。
  • /procおよび/sysはシステム情報を表示します。 Windowsでは、この情報を表示するには、メニューを歩いたり、システムコマンドを呼び出したり、サードパーティのプログラムをインストールする必要があります。

Ubuntuは、他のLinuxディストリビューションと同様に、一般的にLinux Filesystem Hierarchy Standard に従います。

20
Gilles

Ubuntu(すべてのUNIXライクシステムと同様)は、子と親のチームで関係が考えられる階層ツリーでファイルを編成します。ディレクトリには、ツリーの「葉」である通常のファイルだけでなく、他のディレクトリも含めることができます。ツリーの任意の要素をパス名で参照できます。絶対パス名は文字/(他のすべてのディレクトリとファイルを含むルートディレクトリを識別する)で始まり、要素に到達するために横断する必要のあるすべての子ディレクトリがリストされ、それぞれ/記号で区切られます。

相対パス名は、/で始まらない名前です。その場合、ディレクトリツリーは、現在のディレクトリと呼ばれるコンテキストに応じて変化する特定のポイントからトラバースされます。すべてのディレクトリには、という2つの特別なディレクトリがあります。および..、それぞれディレクトリ自体とその親ディレクトリを参照します。

すべてのファイルとディレクトリに共通のルートがあるということは、システムに複数の異なるストレージデバイスが存在する場合でも、目的の場所にマウントされると、それらはすべてツリーのどこかのディレクトリと見なされることを意味します

ここに例と詳細情報があります

5
stephenmyall