1.ディレクトリとは
Windowsのフォルダと同じでファイルをまとめる機能のこと。ディレクトリは下記図のようにツリー構造になっており、ツリーの頂点を「/」としている。
【ディレクトリのツリー図】
/
├── bin/ # 基本コマンド(ls, cpなど)
├── boot/ # 起動に必要なファイル(カーネルなど)
├── dev/ # デバイスファイル(/dev/sdaなど)
├── etc/ # 設定ファイル(/etc/passwdなど)
│ ├── passwd # ユーザ情報
│ ├── ssh/ # SSH設定
│ └── network/ # ネットワーク設定
├── home/ # 各ユーザのホームディレクトリ
│ ├── user1/
│ │ ├── Documents/
│ │ ├── Downloads/
│ │ └── .bashrc # ユーザごとの設定
│ └── guest/
├── lib/ # 基本ライブラリ
├── media/ # リムーバブルメディア(CD, USBなど)
├── mnt/ # 一時的なマウントポイント
├── opt/ # 追加アプリケーション
├── proc/ # カーネル・プロセス情報(仮想ファイル)
├── root/ # rootユーザのホームディレクトリ
├── run/ # ランタイム情報(一時ファイル)
├── sbin/ # 管理者向けコマンド
├── srv/ # サービスデータ
├── sys/ # カーネル情報(仮想ファイル)
├── tmp/ # 一時ファイル
├── usr/ # 追加アプリ・ライブラリ(/usr/binなど)
│ ├── bin/
│ ├── lib/
│ └── share/
└── var/ # 可変データ(ログなど)
├── log/
├── mail/
└── www/
2.ディレクトリの表現・記号
ディレクトリはそのツリー内のどこに存在するか等で下記のような表現がされる。
表現 | 説明 | 記号 |
ルートディレクトリ | ディレクトリの頂点。 | / |
カレントディレクトリ | 自身が作業している最中のディレクトリ。自分の現在位置。 | . |
親ディレクトリ | あるディレクトリの一つ上の階層のディレクトリ。 | .. |
サブディレクトリ | あるディレクトリの一つ下の階層のディレクトリ。 | 無(複数存在できるため、名指しで指定する必要がある。) |
ホームディレクトリ | ログインしたユーザーに最初に配置されるディレクトリ。スポーンポイント的なもの。 | ~ |
3.ファイルパス
「/home/user1/download」のようにディレクトリのどこにファイルが保存されているのかを表すものをファイルパスと言い、ファイルパスを指定することでファイルの開封や削除等ができるようになる。
ファイルパスの表現には、視点によって絶対パスと相対パスの2種類がある。
(1)絶対パス(フルパス)
「/home/user1/download」のようにルートディレクトリ(先頭の「/」)から見てそのファイルがどこにあるのかを表現したもの。カレントディレクトリから遠い場合や、カレントディレクトリが固定されている場合に使用する。
(2)相対パス
カレントディレクトリが「/home/user1」の場合でいえば「download」や「./download」となり、カレントディレクトリから見てそのファイルがどこにあるのかを表現したもの。「.」は省略できる。
「../documents」のように「..」を用いて一つ上に移動してから、同じ階層のディレクトリにある別のディレクトリにアクセスすることもできる。カレントディレクトリの近くのファイルを操作する場合に使用する。
4.FHS
FHS(Filesystem Hierarchy Standard)は、どのようなデータを何という名前のディレクトリに格納するかを定めたルールのこと。このデータは大体ここに入っているだろうとデータを探すときの当てになるため、覚えておいた方がいい。
ディレクトリ | 役割 |
---|---|
/bin | 一般ユーザーも実行可能な基本コマンド(ls等)を格納。 シングルユーザモードやレスキューモード(非常時)でも必須の基本コマンドが入っている。 |
/boot | ブートローダ(起動時実行プログラム)やカーネル等の起動に関するファイル。 |
/etc | 設定ファイル。 |
/dev | デバイスファイル(ハードウェアのインターフェイス)。 |
/home | 一般ユーザーごとのホームディレクトリを格納。 |
/lib | 共有ライブラリやカーネルモジュールを格納。 |
/lib64 | 64bit版の共有ライブラリやカーネルモジュールを格納。 |
/mnt | 一時的なマウントポイント(外部ストレージなど)。 |
/opt | サードパーティ製ソフトウェアの追加パッケージ。 |
/proc | カーネルやプロセス情報の仮想ファイルシステム。 |
/root | rootユーザーのホームディレクトリ。 |
/ sbin | rootユーザーが実行する管理コマンドを格納。 |
/tmp | 誰でも一時的に保管や共有したいファイルを格納できる場所。一定期間で自動削除される。 |
/usr | ユーザー向けのアプリやライブラリ。 |
/usr/bin | ユーザーが一般的に使うコマンド。緊急のシステムメンテナンスで使わないコマンドを格納。 |
/usr/sbin | rootユーザーが使うコマンド。緊急時のシステムメンテナンスで使わないコマンドを格納。 |
/usr/lib | プログラムに必要な共有ライブラリを格納。 |
/usr/lib64 | 64bit版のプログラムに必要な共有ライブラリを格納。 |
/usr/local | ローカルシステムで必要とされるコマンドやライブラリ、ドキュメント等を格納。 |
/usr/share | システム構成に依存しないファイルを格納。 |
/usr/src | Linuxのカーネル等をソースコードを格納。 |
/var | ログファイルやメール等、頻繁に書き換えられるファイルを格納。 |
/var/log | ログファイルを格納。 |
/var/run | システムの状態を示すファイルを格納。 |
/var/spool | 一時的な処理待ちデータを格納。 |
※/usr内と/内の同名ディレクトリの使い分けは重要度による。/内には最低限システム動作に必須なコマンドを、/usr内は補助的なコマンドを格納している。/内のコマンドは非常時でも利用できる。