Linuxコマンドを勉強~FHS~

FHSとは

FHS(Filesystem Hierarchy Standard)は、ファイルとディレクトリの配置のための要件とガイドラインです。

その目的は、どのOSでもユーザがファイルやディレクトリの配置を予想できるようにするためです。

FHSでは、まずは配置するファイルを大まかに次のように分類してます。
・静的ファイル(システム管理者以外には変更できないファイル)
・動的ファイル(システム稼働中に変更されるファイル)
この2パターンのファイルは別々のディレクトリに分ける必要があるとされています。

また次のような分類もあります。
・共有可能であるファイル(ホスト間で共有できるファイル)
・共有不可であるファイル(ホスト間で共有できないファイル)
共有可能なファイルの例としてホームディレクトリの中のファイル、
共有不可なファイルの例としてデバイスロックファイルを挙げています。

Linuxでは、ディレクトリとファイルの配置の仕方が木構造になっています。
木構造は、木をひっくり返したような構造です。

一番上に根っこが一つあって、
根の先は節で枝分かれしてて、
節の先には葉っぱが付いてたり、
また節があって枝分かれが続いてたりするイメージです。

上のイメージをLinuxでいうと、

一番上に根っこが一つあって(ルートディレクトリ)、
根の先は節(ディレクトリ)で枝分かれしてて、
節の先には葉っぱが付いてたり(ファイル)、
また節があって(あるいはディレクトリがあって)
枝分かれが続いてたりする
(ディレクトリの下にディレクトリ・・・という階層構造になっている)
イメージです。

FHSでは、ディレクトリやファイルを配置するための決まりがいくつかあります。

①ルートディレクトリの下には決められたディレクトリを必ず置く(必須条件)
②ルートディレクトリの下に置いてもいいが置かなくてもいいディレクトリがある(固定オプション)
③ルートディレクトリの下には①②以外のファイルやディレクトリを置かないようにする
④上記とは別に、特定のOS(Linuxディストリビューション)における追加要件および推奨事項がある
↑ルートディレクトリのことを”/”という名前にすることがここで推奨されてたりします。

①必須条件のディレクトリ

多いですが、ディレクトリ名から内容を連想しやすいので、比較的覚えやすいです。
・bin … コマンドバイナリ。すべてのユーザやシステム管理者が使う共通のコマンド。
・sbin … システム管理者のみ実行できるコマンドバイナリ。
・lib … binやsbinのコマンドが利用するライブラリ。
・boot … システム起動時に必要なブートローダ関連のファイル。
・etc … ホスト固有のシステム設定ファイルや、プログラムの設定ファイル。
・dev … デバイスファイル。システム起動時に接続されているデバイスをチェックして自動で作成されます。
・media … CDやDVDなどといったリムーバブルメディアのデータ。
・mnt … 一時的なマウントポイントとなるディレクトリ。
・opt … システム起動後にインストールしたパッケージ。optional(付加的)なパッケージの配置先ってことでoptとしてるのかと思います。
・srv … サービスのためのデータファイル。
・tmp … テンポラリファイル(一時ファイル)。
・usr … ユーザが共有するデータ。
  |-bin … システム起動時には必要ないコマンドバイナリ。
  |-sbin … システム起動時には必要ないが、システム管理者のみが実行するコマンドバイナリ。
  |-include … C言語のためのライブラリ。
  |-lib … 各コマンドが参照するライブラリ。
  |-local … 追加でインストールするパッケージ。パッケージの中身は、bin、sbin、libなどとなります。
  –share … 読み取り専用のアーキテクチャに依存しないデータファイル。manコマンドで見れるマニュアルなどが入ってます。
・var … 動的に変更されるデータが配置されます。キャッシュやログなどです。

②オプション扱いのディレクトリ

これは数少ないのでそのまま覚えた方が早いですね。
・home … ユーザごとのホームディレクトリです。
・root … rootユーザのホームディレクトリです。

③Linuxで追加されているディレクトリ

・proc … カーネルやプロセスが保持する情報を配置します。

長いこと掛かりましたが、ディレクトリについては大体脱線し終わったと思います。
次は基本コマンド学習の続きをやりたいと思ってます。

広告
  • LINEで送る