Linux のディレクトリ構造の説明
Linux のディレクトリ構造は、サーバーやパーソナル コンピューターで広く使用されているこの強力なオペレーティング システムがどのように動作するかを理解するために不可欠です。
Linux では、すべてはスラッシュで表されるルート ディレクトリから始まります。 (/)。これは、他のすべてのディレクトリが分岐する開始点として機能します。
この階層内には、次のような重要なディレクトリがあります。 /bin、基本的なシステム実行可能ファイルが含まれ、/etc には重要な構成ファイルが保存されます。
ディレクトリ /家 ここには個人用のファイルと設定が保存されているため、ユーザーにとって特に重要です。
もう 1 つの重要なディレクトリは次のとおりです。 /var、システム ログや印刷キューなどの可変ファイルを保存します。
これらのディレクトリがどのように構成されているかを理解することは、システムのナビゲーションと管理を容易にするだけでなく、Linux サーバーを管理する際のセキュリティと効率にとっても重要です。
この階層的かつ論理的な構造により、システム操作が最適化されるだけでなく、拡張性とカスタマイズが容易になり、この機能により Linux はアルゼンチンおよび世界中の開発者やシステム管理者の間で人気の選択肢となっています。
Windows を使用している場合、Linux のファイル システム構造は特に奇妙に見えるかもしれません。
C:\ ドライブとドライブ文字はなくなり、/ と不可解な響きのディレクトリに置き換えられました。そのほとんどは 3 文字の名前です。
ファイル システム階層の標準 (FHS) Linux および同様の他のオペレーティング システムのファイル システムの構造を定義します。 UNIX。ただし、Linux ファイル システムには、標準でまだ定義されていないディレクトリもいくつか含まれています。
/ – ルートディレクトリ
Linux システム上のすべては、ルート ディレクトリと呼ばれる / ディレクトリにあります。 / ディレクトリは Windows の C:\ ディレクトリに似ていると思われるかもしれませんが、Linux にはドライブ文字がないため、これは厳密には当てはまりません。 Windows では別のパーティションが D:\ に配置されますが、Linux では、この別のパーティションは / の別のフォルダに配置されます。
/bin – 必須のユーザーバイナリ
/bin ディレクトリには、システムがシングル ユーザー モードでマウントされている場合に存在する必要がある重要なユーザー バイナリ (プログラム) が含まれています。 Firefox などのアプリケーションは、Snap としてインストールされていない場合は /usr/bin に保存されますが、bash シェルなどの重要なシステム プログラムやユーティリティは /bin に保存されます。 /usr ディレクトリは別のパーティションに保存されている場合があります。これらのファイルを /bin ディレクトリに配置すると、他のファイル システムがマウントされていない場合でも、システムにこれらの重要なユーティリティが確保されます。 /sbin ディレクトリも同様で、システム管理に不可欠なバイナリが含まれています。
/boot – 静的ブート ファイル
/boot ディレクトリには、システムの起動に必要なファイルが含まれています。たとえば、GRUB ブートローダー ファイルとその Linux カーネルはここに保存されます。ただし、ブートローダー構成ファイルはここにはありません。これらは、他の構成ファイルとともに /etc にあります。
/cdrom – CD-ROM の履歴マウント ポイント
/cdrom ディレクトリは FHS 標準の一部ではありませんが、Ubuntu やその他のオペレーティング システムでは引き続き見つかります。これは、システムに挿入された CD-ROM の一時的な場所です。ただし、一時メディアの標準の場所は /media ディレクトリ内です。
/dev – デバイスファイル
Linux はデバイスをファイルとして公開し、/dev ディレクトリにはデバイスを表す一連の特殊ファイルが含まれています。これらは私たちが知っているような実際のファイルではありませんが、ファイルとして表示されます。たとえば、/dev/sda はシステム上の最初の SATA ドライブを表します。パーティションを分割したい場合は、パーティションエディタを起動して、/dev/sda を編集するように指示できます。
このディレクトリには、実際にはハードウェアに対応しない仮想デバイスである疑似デバイスも含まれています。たとえば、/dev/random は乱数を生成します。 /dev/null は、出力を生成せず、すべてのエントリを自動的に破棄する特別なデバイスです。コマンドの出力を /dev/null にパイプすると、その出力は破棄されます。
/etc – 設定ファイル
/etc ディレクトリには構成ファイルが含まれており、通常はテキスト エディタで手動で編集できます。 /etc/ ディレクトリにはシステム全体の構成ファイルが含まれていることに注意してください。ユーザー固有の構成ファイルは、各ユーザーのホーム ディレクトリにあります。
/home – ホームフォルダー
/home ディレクトリには、各ユーザーのホーム フォルダーが含まれます。たとえば、ユーザー名が bob の場合、ホーム フォルダーは /home/bob にあります。このホーム フォルダーには、ユーザーのデータ ファイルとユーザー固有の構成ファイルが含まれています。各ユーザーは自分のホーム フォルダーへの書き込みアクセスのみを持ち、システム上の他のファイルを変更するには昇格されたアクセス許可 (root になる) を取得する必要があります。
/lib – 必須の共有ライブラリ
/lib ディレクトリには、/bin および /sbin フォルダー内の必須バイナリを必要とするライブラリが含まれています。 /usr/bin フォルダー内のバイナリを必要とするライブラリは、/usr/lib にあります。 64 ビット システムでは、同様の /lib64 フォルダーも表示されます。
/lost+found – 回復されたファイル
すべての Linux ファイル システムには、lost+found ディレクトリがあります。ファイル システムに障害が発生した場合、次回の起動時にファイル システム チェックが実行されます。見つかった破損したファイルは、lost+found ディレクトリに配置されるため、できるだけ多くのデータの回復を試みることができます。
/media ディレクトリには、コンピュータに挿入されたリムーバブル メディア デバイスがマウントされるサブディレクトリが含まれています。たとえば、CD を Linux システムに挿入すると、/media ディレクトリ内にディレクトリが自動的に作成されます。このディレクトリ内の CD の内容にアクセスできます。
/mnt – 一時的なマウント ポイント
歴史的に言えば、/mnt ディレクトリは、システム管理者が一時ファイル システムを使用するときにマウントする場所でした。たとえば、ファイル回復操作を実行するために Windows パーティションをマウントする場合、それを /mnt/windows にマウントできます。ただし、他のファイル システムはシステム上のどこにでもマウントできます。
/opt – オプションのパッケージ
/opt ディレクトリには、オプションのソフトウェア パッケージのサブディレクトリが含まれています。これは、標準のファイル システム階層に従わない独自のソフトウェアによってよく使用されます。たとえば、独自のプログラムをインストールすると、そのファイルが /opt/application にダンプされる場合があります。
/proc – プロセスファイルとカーネルファイル
/proc ディレクトリは、標準ファイルが含まれていないという点で /dev ディレクトリに似ています。システムおよびプロセス情報を表す特別なファイルが含まれます。
/root – ルート ホーム ディレクトリ
/root ディレクトリは、root ユーザーのホーム ディレクトリです。 /home/root ではなく、/root に配置されます。これは、システムのルート ディレクトリである / とは異なります。
/run – アプリケーション状態ファイル
/run ディレクトリは、ソケットやプロセス ID など、必要な一時ファイルを保存するための標準的な場所をアプリケーションに提供します。これらのファイルは削除される可能性があるため、/tmp に保存できません。
/sbin – システム管理バイナリ
/sbin ディレクトリは /bin ディレクトリに似ています。これには、通常、システム管理のために root ユーザーによって実行されることを目的とした重要なバイナリが含まれています。
/snap – スナップ パケットのストレージ
FHS の一部ではありませんが、最近よく見かけるもう 1 つのディレクトリは /snap です。インストールされた Snap パッケージおよび Snap に関連するその他のファイルが含まれます。 Ubuntu はデフォルトで Snap を使用するようになりましたが、スナップを使用しない別のディストリビューションを使用している場合は、このディレクトリは表示されません。
/srv – サービスデータ
/srv ディレクトリには、「システムが提供するサービス データ」が含まれています。 Web サイトを提供するために Apache HTTP サーバーを使用している場合は、Web サイトのファイルを /srv ディレクトリ内のディレクトリに保存することになるでしょう。
/tmp – 一時ファイル
アプリケーションは一時ファイルを /tmp ディレクトリに保存します。これらのファイルは通常、システムが再起動されるたびに削除されますが、systemd-tmpfiles などのユーティリティを使用していつでも削除できます。
/usr – ユーザーバイナリと読み取り専用データ
/usr ディレクトリには、システムが使用するアプリケーションとファイルではなく、ユーザーが使用するアプリケーションとファイルが含まれます。たとえば、必須ではないアプリケーションは /bin ディレクトリではなく /usr/bin ディレクトリ内にあり、必須ではないシステム管理バイナリは /sbin ディレクトリではなく /usr/sbin ディレクトリにあります。それぞれのライブラリは /usr/lib ディレクトリ内にあります。 /usr ディレクトリには他のディレクトリも含まれています。たとえば、グラフィックスなどのアーキテクチャに依存しないファイルは /usr/share にあります。
/usr/local ディレクトリは、ローカルでコンパイルされたアプリケーションがデフォルトでインストールされる場所です。これにより、システムの残りの部分が混乱するのを防ぎます。
/var – 変数データ ファイル
/var ディレクトリは、/usr ディレクトリに相当する書き込み可能ディレクトリであり、通常の操作では読み取り専用である必要があります。ログ ファイルと、通常の操作中に /usr に書き込まれるその他すべてのものは、/var ディレクトリに書き込まれます。たとえば、ログ ファイルは /var/log にあります。
Linux ファイル システム階層に関する詳細な技術情報については、次のドキュメントを参照してください。 ファイル システム階層の標準ドキュメント.