ホームページ  >  記事  >  運用・保守  >  Linux の定義と仕様に対する技術的な回答は / にあります。

Linux の定義と仕様に対する技術的な回答は / にあります。

WBOY
WBOY転載
2022-02-14 18:35:051582ブラウズ

この記事では、Linux の基本的な概念をいくつかまとめています。Linux および UNIX のファイル システムは、"/" をルートとするツリー ファイル構造です。"/" は、Linux および UNIX のルート ディレクトリです。同様に、ファイルシステムの原点ですので、皆様のお役に立てれば幸いです。

Linux の定義と仕様に対する技術的な回答は / にあります。

Linux および UNIX のファイル システムは、 / をルートとするツリー ファイル構造です。 / は Linux および UNIX のルート ディレクトリです。ファイル システムの開始点でもあります。よく聞く /usr、/etc、/bin、/home などを含め、すべてのファイルとディレクトリは / パスの下にあります。初期の UNIX システムでは、各メーカーが独自のファイル システムの命名構造を定義していましたが、これは混乱を招き、区別するのが困難でした。

Linux システムにおけるこの 名前の混乱問題を回避するために、Linux ファイル システム階層標準 FSSTND (FileSystem Standard) が 1994 年に発表されました。その後、UNIX チームが FSSTND を変更して搭載されました。が前進し、後の FHS (FileSystem Hierarchy Standard) になりました。

FHS 標準により、多くの Linux ディストリビューション (Linux ディストリビューション) で統一されたファイル システム命名標準を使用できるようになります。つまり、FHS はファイル システム命名標準です。一般に、Linux ディストリビューションは、

  • ディレクトリ構造とディレクトリの内容
  • ファイル タイプのアクセス許可

に従う必要があります。ただし、FHS では次の 2 つのみが定義されています。最初のレベルは、/ 以下の各ディレクトリにどのようなファイル データを配置するか (/etc など) であり、設定ファイルは /bin および ## の下に配置する必要があります。 #/sbin 以下に実行ファイルなどを置く必要があります。第 2 層は /usr/var の 2 つのディレクトリに対して / のように定義されます。 usr/share 共有データを配置する必要があります。/var/log にはシステム ログイン ファイルなどが含まれる必要があります。

次に、Linux では

/ にどのような定義や仕様があるのか​​を紹介します。

FHS 仕様

以下に紹介する仕様は、FHS ドキュメントで指定されているディレクトリとファイルの一部にすぎません。完全な標準は、http://www.pathname.com/ でオンラインで入手できます。 fhs/ゲット。

まず、ルート ディレクトリの重要性と重要性について説明します:

ルート ディレクトリはシステム全体の中で最も重要なディレクトリであり、以降のディレクトリはルート ディレクトリに基づいて派生します。さらに重要なことは、

ルート ディレクトリは起動、復元、およびシステム修復に関連するです。システムの起動には特定の環境が必要であるため、システムでエラーが発生した場合に、ルート ディレクトリには修復できるプログラムも含まれている必要があります。ファイル システム。OK。したがって、FHS では、ルート ディレクトリのパーティション サイズを大きくしすぎないよう規定しており、実際には、エラー率を下げるためには小さいほど良いとされています。

FHS では、これらのディレクトリがルート ディレクトリの下に存在する必要があるとも規定しています。

/home ディレクトリ

/home ディレクトリは、システムのデフォルトのユーザー ホーム フォルダ (ホーム ディレクトリ) です。

/ブート ディレクトリ

/ブート ディレクトリには、Linux カーネルなどのオペレーティング システムの起動に必要な静的ファイルが含まれており、これらのファイルはシステムの起動に重要です。

Linux カーネル 一般的に使用されるファイル名は vmlinuz ですが、grub2 ブート プログラムを使用している場合は、ディレクトリ /boot/grub2 も存在します。

Linux をビルドしたところ、ブートは次のようになります。

Linux の定義と仕様に対する技術的な回答は / にあります。

/boot ディレクトリは絶対に削除しないでください。削除すると、システムが起動できなくなる可能性があります。

/dev ディレクトリ

/dev ディレクトリはいくつかのデバイス ノードです。これらのデバイス ノードは、Linux システム内のデバイス、またはカーネルによって提供される仮想デバイスです。これらのデバイス ノードは、システムの通常の動作にとっても重要です。 /dev ディレクトリおよびサブディレクトリ内のデバイスは、キャラクタ デバイスとブロック デバイスです。キャラクター デバイスは マウス、キーボード、およびモデム であり、ブロック デバイスは ハードディスクおよびフロッピー ドライブ です。 /dev ディレクトリにファイルを保存することは、デバイスを保存することと同じです。

より重要なファイルは

/dev/hda: メイン IDE チャネルのメイン デバイスです。IDE/ATA ハードディスクに関しては、メイン チャネルです。これは最初のチャネルであり、2 番目のドライブをマザーボードまたはインターフェイス カードに接続するチャネルです。

/dev/hdb: メイン IDE チャネルのスレーブ デバイス。

/dev/tty0: 最初の仮想コンソール。仮想コンソール (VC とも呼ばれ、仮想端末 VT とも呼ばれます) は、コンピュータのユーザー インターフェイスに使用されるキーボードとモニターの概念的な組み合わせです。

/dev/tty1: 2 番目の仮想コンソール。

/dev/sda: プライマリ SCSI および SATA チャネル上の最初のデバイス。

/dev/lp0: 最初のパラレル ポート。

以下は私の Linux のディレクトリです。

Linux の定義と仕様に対する技術的な回答は / にあります。

/etc ディレクトリ

/etc ディレクトリは、コンピュータのローカル構成ファイル用に予約されています。アカウント パスワード、サービスの開始と停止など、システムの主要な構成ファイルはこのディレクトリに配置されます。一般に、つまり、このディレクトリでは、一般ユーザーは読み取り権限のみを持ち、root ユーザーのみが変更権限を持ちます (権限の問題については、著者の以前の記事とこの Linux 権限を読むと明確になります。)

/etc 次に、より重要なファイルは

/etc/modprobe.dカーネル ドライバー モジュール

/etc/passwdストレージ ユーザー パスワード#です。

##/etc/fstab ストレージのマウント情報

/etc/issueストレージシステム起動時に表示される内容

Not /etc ディレクトリに必須 バイナリ ファイルを保存するには、バイナリ ファイルを

/sbin および /bin に配置するのが最適です。

/etc ディレクトリには 2 つの重要なファイルがあります。

/etc/x11 は、xorg.conf、/etc/opt などの X Window システム構成ファイルを保存するために使用されます。 ここには主にサードパーティのコラボレーション ソフトウェア/opt に関連する設定ファイルが保存されます。

Linux の定義と仕様に対する技術的な回答は / にあります。

/lib ディレクトリ

システムには多くの関数ライブラリがあり、/lib ディレクトリは実行を保存するために使用される倉庫のようなものです

/bin および /sbin のバイナリに必要なライブラリ。これらの共有ライブラリ イメージは、システムの起動とルート ファイル システムでのコマンドの実行に特に重要です。

Linux の定義と仕様に対する技術的な回答は / にあります。

/media ディレクトリ

media はメディアを意味する英語で、

/media にはリムーバブル メディア (USB など) を保存できることを意味します。 、DVD、CD-ROM、および Zip ディスク)。

/mnt ディレクトリ

追加のデバイスを一時的にマウントしたい場合は、それらを /mnt ディレクトリに置くことができます。実際、初期の頃、/mnt は /mnt と同じように使用されていました。 /media. ですが、後で /media が作成された後、このディレクトリは一時的なマウントに使用されました。

/opt ディレクトリ

/opt/ ディレクトリは、ほとんどのアプリケーション パッケージにストレージ スペースを提供します。/opt/ ディレクトリにファイルを配置するパッケージは、パッケージと同じ名前。さらに、このディレクトリにはファイル システム全体に散在するファイルが保持されるため、システム管理者は特定のパッケージ内の各ファイルの役割を簡単に判断できます。

たとえば、sample が /opt/ ディレクトリにある特定のパッケージの名前である場合、すべてのファイルは /opt/sample/bin などの /opt/sample/ ディレクトリ内のディレクトリに配置されます。 / はバイナリを意味し、/opt/sample/man/ はマニュアルページを意味します。

Linux の定義と仕様に対する技術的な回答は / にあります。

/proc ディレクトリ

/proc ディレクトリ自体は 仮想ファイルシステムであり、彼が配置するデータですシステムコア情報、旅程情報、周辺機器やネットワークステータスなどの情報がメモリ内に保存されます。このディレクトリ内のデータはメモリ内にあるため、ディスク領域を占有しません。

このディレクトリ内のより重要なファイルには、

/proc/cpuinfo/proc/dma/proc/interrupts が含まれます。 /proc/net/

Linux の定義と仕様に対する技術的な回答は / にあります。

/sbin ディレクトリ

/sbin このディレクトリには、root ユーザーが使用する実行可能ファイルが格納されます。 /sbin 内の実行可能ファイルは、起動時にシステム管理とシステム回復操作の実行に使用されます。 /bin のバイナリに加えて、/sbin にはシステムの起動、回復、修復に必要なバイナリも含まれています。

/sbin ディレクトリには、

arp、 Clock、halt、init、grub、ifconfig、route、shutdown などが含まれます。

Linux の定義と仕様に対する技術的な回答は / にあります。

/tmp ディレクトリ

このディレクトリにはいくつかの一時ファイルが保存されます。これらのファイルはシステムの再起動時にクリアされます。

Linux の定義と仕様に対する技術的な回答は / にあります。

/sys ディレクトリ

このディレクトリは、実際には /proc に非常によく似ており、主にコアとコアに関連する情報を記録する仮想ファイル システムでもあります。システムハードウェア。このディレクトリはディスク領域も占有しません。

Linux の定義と仕様に対する技術的な回答は / にあります。

/usr ディレクトリ

/usr ディレクトリについては説明が必要ですが、多くの読者は /usr が user の略称であると誤解しています。実際、usr は

Unix Software Resource の略語であり、FHS はソフトウェア開発者がこのディレクトリのサブディレクトリにデータを適切に配置し、ソフトウェア自体に独立したディレクトリを作成しないことを推奨しています。

すべてのシステムのデフォルト ソフトウェアは /usr の下に配置されるため、このディレクトリは C:\Windows\ C:\Program files\ に似ています。一般的に、これら 2 つのディレクトリの組み合わせは、システムをインストールしたばかりの場合、このディレクトリは多くのディスク容量を占有するため、/usr のサブディレクトリには次の内容を含めることをお勧めします

*/usr/bin/*一般ユーザーが使用できるコマンドはここに配置されます。 CentOS 7 以降、/usr/bin の下の手順は、/bin ディレクトリの下の手順とまったく同じです。

*/usr/lib/*基本的には/libと同じ機能なので、/libはこのディレクトリにリンクされています。

/usr/local システム管理者は、管理を容易にするために、このマシンにダウンロードしたソフトウェアをこのディレクトリにインストールすることをお勧めします。

/usr/sbin システムの通常の動作には必要のないシステム コマンド。最も一般的なものは、一部のネットワーク サーバー ソフトウェアのサービス コマンドです。ただし、基本的な機能は次のとおりです。 /sbin に似ているため、現在 /sbin はこのディレクトリにリンクされています。

/usr/share 共有ファイル配置領域。このディレクトリには、/usr/share/man、/usr/share/doc、/usr/share/zoneinfo

というサブディレクトリもあります。

/usr/games ゲーム関連データの配置場所

/usr/include C/C およびその他のプログラミング言語のヘッダーおよびインクルードの配置場所。も直結しています。

/usr/src ここに一般的なソースコードを配置することをお勧めします (src はソースを意味します) コアのソースコードについては、/usr/src/linux ディレクトリに配置することをお勧めします。

Linux の定義と仕様に対する技術的な回答は / にあります。

/run ディレクトリ

初期の FHS では、システムの起動後に生成されるすべての情報を /var/run ディレクトリに配置する必要があると規定されていました。バージョン FHS は /run で標準化されています。

/var directory

/usr がインストール中に大きなディスク容量を占有するディレクトリである場合、/var はシステムの実行後に徐々にディスクを占有します。 . 容量ディレクトリ。 /var には主に、MySQL データベース ファイルなどのプログラム ファイルを含む、特定のソフトウェアの実行によって生成されるキャッシュ、ログイン ファイル、ディレクトリが含まれます。一般的なディレクトリは、

/var/cache アプリケーション キャッシュ ディレクトリです。

/var/crash システム エラー メッセージ

/var/log ログ レコード

/var/run プロセス識別情報

/var/tmp 一時ファイルディレクトリ

/var/lock ファイルロックレコード

Linux の定義と仕様に対する技術的な回答は / にあります。

/srv ディレクトリ

srv は、service の略称であり、一部のネットワーク サービスの開始後にこれらのサービスがアクセスする必要があるものです。ディレクトリ、WWW、FTP などの共通サービス。

CentOS 7 は、以前のバージョンとディレクトリ配置が異なります。大まかに説明しましたが、ここでまとめます。最大の違いは、ルート ディレクトリにあるはずの多くのディレクトリが、ルート ディレクトリに置き換わることです。これを /usr に移動し、

  • /bin -> /usr/bin
  • /sbin - を含むリンクを設定します。 > /usr/sbin
  • /lib -> /usr/lib
  • /lib64 -> /usr/lib64
  • /var/lock -> / run/lock
  • /var/run -> /run

これらのディレクトリが何をするのかを誰でも直感的に理解しやすいように、手書きで絵を描きました。ディレクトリ間の関係はツリーに非常に似ているため、このディレクトリはディレクトリ ツリーとも呼ばれます。

Linux の定義と仕様に対する技術的な回答は / にあります。

このディレクトリ ツリーはすでに非常に明確なので、これ以上言うことはありません。

絶対パスと相対パス

Linuxのパスも他のシステムと同様に絶対パス(絶対)と相対パス(相対)に分かれており、それぞれの記述方法は次のとおりです。

  • 上記ディレクトリツリーの/boot、/usr/localなど、ルートディレクトリからのパスはすべて絶対パスです。現在のファイル パスは相対パスです。例: /var/log ディレクトリ
ここで注意すべき点は、相対パスは相対位置に基づいて移動されることです。

現在のパスの名前。たとえば、現在いる場所は /boot ディレクトリで、/usr/src ディレクトリに移動します。絶対パス表記:/usr/src

相対パス表記:…/usr/src

ここで注意する必要がある特別なディレクトリが 2 つあります:

. : 現在のディレクトリを表します。
  • ... を表すには ./ も使用します。 : 前のディレクトリを表します。 レイヤー ディレクトリは .../ で表すこともできます。 すべてのパスを一度記述し、.../ を直接使用するだけです。
  • ただし、ファイル パスの正確さの観点からは、絶対パスの方が相対パスよりも優れています。
システムを管理するプログラムを作成している場合は、ファイル パスがどこにあるかに関係なく、絶対パスを使用すると指定されたファイルが検索され、ファイルが移動された場合には相対パスが存在する可能性があるため、必ず絶対パスを使用してください。 . ファイルが見つかりません。

ディレクトリに関する手順

ディレクトリに関するいくつかの手順について話しましょう

cd

cdはディレクトリ変更の略で、このコマンドはディレクトリを切り替えることができます。現在の作業ディレクトリ。次の 4 つの切り替え方法があります。

cd /路径名 # 表示切换到指定的工作目录cd ./ 		
# 表示切换到当前工作目录(无任何切换)cd .. 		
# 表示切换到当前工作目录的上一层目录cd ~ 			
# 表示返回到当前用户目录

これら 4 つの CD 切り替え方法の動作をデモしましょう

Linux の定義と仕様に対する技術的な回答は / にあります。

ご覧のとおり、次のとおりです。 cd /usr/local を使用してコマンド ディレクトリに切り替えます。ディレクトリを切り替えずに cd ./ を使用します (2 秒無駄)。cd... を使用して現在の作業ディレクトリの上位レベルに切り替えます。cd ~ を使用して切り替えます。現在ログインしているユーザーの作業ディレクトリに到達しました。

ここで注意が必要なのは cd ~ で、cd を直接使用した場合、切り替え効果は cd ~ と同じ、つまり "cd ~ == cd" になります。

pwd

上には pwd という別の命令があります。この命令は最もよく使用される命令です。cd 命令の後には cd 命令が続くことが多いため、その使用頻度は cd とほぼ同じです。 pwd 命令. したがって、pwd 命令がいかに重要であるかがわかります。

pwd は Print Working Directory の略で、カレントディレクトリを印刷する命令です。

ただし、pwd は必ずしも現在の作業パスを表示するためだけに使用されるわけではなく、指定された作業ディレクトリ内のファイル パスを表示するためにも使用できます。

Linux の定義と仕様に対する技術的な回答は / にあります。

しかし、このコマンドは、作業ディレクトリ内のパスがすでにわかっているため、役に立たないように思えます。なぜそれを出力するのでしょうか?

mkdir

mkdir は、新しいディレクトリを作成するために使用され、make directory の略で、通常、その後に 2 つのパラメータが続きます。

  • -m: デフォルト ファイルの作成権限を考慮せず、ファイルの権限を直接設定します。
  • -p: ディレクトリを再帰的に作成します。

以下は mkdir を使用したファイル ディレクトリの作成操作です。

Linux の定義と仕様に対する技術的な回答は / にあります。

上図に示すように、/tmp ファイル ディレクトリに test1 という空のディレクトリを作成し、出力しました。現在の作業の目次。

他のユーザーにアクセスさせたくないディレクトリを作成する場合は、次のコマンドを使用できます。

mkdir -m 711 test2

Linux の定義と仕様に対する技術的な回答は / にあります。

listed by ls -上図のld ファイルディレクトリの詳細情報については、詳細情報の最初の項目がファイルのアクセス許可であることがわかります。

ディレクトリを一つずつ作成するのは面倒なので、手早くディレクトリを作成したいと思います。たとえば、/test1/test2/test3/test4 という形式のディレクトリを作成したい場合は、次のコードを使用します

Linux の定義と仕様に対する技術的な回答は / にあります。

Linux は、この作成方法を使用できないことを通知します。

現時点では、-p パラメータが必要です。このパラメータを使用すると、以下に示すように、ディレクトリを再帰的に作成できます。

Linux の定義と仕様に対する技術的な回答は / にあります。

-p このメソッドを使用するだけですタイプミスをしやすいため、お勧めしません。 。 。

rmdir

rmdir は空のディレクトリを削除するために使用されます。その使用方法は mkdir と非常に似ています。mkdir -p はディレクトリを再帰的に作成するために使用されます。同様に、rmdir -p はディレクトリを再帰的に削除することもできます。以下の図に示すように、

Linux の定義と仕様に対する技術的な回答は / にあります。

ここで、rmdir は空のディレクトリのみを削除することに注意してください。これは、ディレクトリにコンテンツがある場合は削除できないことも意味します。では、どうやって削除すればよいのでしょうか? rm -r を使用して直接削除できます。

mv

mv を使用すると、ディレクトリの名前を変更できます。たとえば、test というディレクトリを作成しました。後で、このディレクトリにはその所有者が反映されていないと感じたので、変更したいと思いました。この時点で、mv コマンドを使用して名前を変更できます。

Linux の定義と仕様に対する技術的な回答は / にあります。

基本的なディレクトリ操作を理解した後、なぜさまざまなディレクトリで ls コマンドを実行すると表示されるのかという疑問を考えてみましょう。コンテンツ? ls はそのストレージ パス内でのみ使用できるべきではないのは当然です。

まず、誰もが PATH の概念を理解する必要があります。PATH は 環境変数 です。命令を実行すると、システムはまずその設定に従います。各 PATH の下で ls という名前の実行可能ファイルを検索します。複数の実行可能ファイルがある場合は、検索されたものが最初に実行されます。

元のリンク: これらの概念は、Linux を長い間使用した後でのみ知っています。 。 。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinux の定義と仕様に対する技術的な回答は / にあります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。