4章 デバイス、Linuxファイルシステム、ファイルシステム階層標準
1.デバイスファイル
・/devディレクトリに格納される
・番号付け規則
| 接続インタフェース | デバイスファイル名 |
| IDE(Integrated Drive Eletronics) | /dev/hda : プライマリマスター /dev/hdb : プライマリスレーブ /dev/hdc : セカンダリマスター /dev/hdd : セカンダリスレーブ |
| SATA (Serial ATA)/ | /dev/sda : 1番目のデバイス /dev/sdb : 2番目のデバイス /dev/sdc : 3番目のデバイス /dev/sdd : 4番目のデバイス |
| SCSI (Small Computer System Interface) | |
| USB (Universal Serial Bus) |
例 : 2番目のSCSIの3番目のパーティションのデバイスファイル → /dev/sda2
2.fdisk
・MBRのパーティション作成・削除・変更・情報表示などを行うコマンド
・オプションなしで実行すると、対話的にサブコマンドでパーティション操作ができる。
書式 fdisk [オプション(任意)] [デバイスファイル名(任意)]
-オプション
| オプション | 説明 |
| -l | 指定したデバイスファイルのパーティションテーブル表示 |
-サブコマンド
| サブコマンド | 説明 |
| d | パーティション削除 |
| l | 利用可能なパーティションタイプを表示 |
| m | メニュー |
| n | パーティション作成 |
| p | パーティションテーブル表示 |
| q | 保存 ✕、 終了 |
| t | パーティションタイプ変更 |
| w | 保存 〇、 終了 |
3.GPTパーティション
・基本パーティション、論理パーティション、拡張パーティションにわける
・最大パーティション数 : 128個
・ディスクドライバの容量制限 2TB~8ZB
・gdisk, parted : GPTパーティションの管理コマンド
4.mkfs
・パーティション上でファイルシステムを作成するコマンド
書式 mkfs [オプション(任意)] [ファイルシステム(必須)]
-オプション
| オプション | 説明 |
| -t | ファイルシステムの種類指定 (ext2, ext3, ext4, reiserfs, xfs, btrfs, vfat 等) |
| -c | ファイルシステムを作成する前、不良ブロックの有無を検査 |
5.du
・ディレクトリ内のファイル容量を表示
書式 du [オプション(任意)] [ファイル/ディレクトリ名(任意)]
-オプション
| オプション | 説明 |
| -a | ディレクトリ + ファイルの内容 表示 |
| -c | 合計容量も表示 |
| -h | 容量を分かりやすい単位に変換して表示 |
| -k | kb単位で表示 |
| -m | mb単位で表示 |
6.inode情報
・df - i : 表示コマンド
7.fsck
・ファイルシステムを調査・修復するコマンド
書式 fsck [オプション(任意)] [デバイスファイル名(任意)]
-オプション
| オプション | 説明 |
| -a | 自動的に修復 |
| -r | 対話的に修復 |
| -t <ファイルシステムタイプ> | 検査対象のファイルシステムタイプを指定 |
| -A | /etc/fstabに記述されているすべてを対象とする |
| -N | 実際には修復をせず、コマンドが実行する内容表示 |
8.e2fsck
・ext2, ext3, ext4ファイルシステムを検査・修復するコマンド
書式 e2fsck [オプション(任意)] [デバイスファイル名(必須)]
-オプション
| オプション | 説明 |
| -c | 不良ブロックを検査 |
| -p | 修復可能な場合は自動に修復 |
| -v | 詳細情報を表示 |
| -y | すべての問い合わせに「yesと回答 |
9.debugfs
・ext2, ext3, ext4ファイルシステムを対話的にデバッグする
書式 debugfs [オプション(任意)] [デバイスファイル名(任意)]
・dumpe2fs : スーパーブロック・ブロックグループなどに関する情報を表示できる。
書式 dumpe2fs [オプション(任意)] [デバイスファイル名(任意)]
・tune2fs : パラメータを設定する
書式 dumpe2fs [オプション(任意)] [デバイスファイル名(必須)]
10.ジャーナリングファイルシステム
・ファイルの更新履歴のバックアップを記録しておく機能を持ったファイルシステム
・ディスク障害発生時にも、すぐにファイルシステムを復旧できる。
・ReiserFs、XFS、ext3、ext4、Btrfs 等
11.XFS
・SGI社が開発したファイルシステム
・大容量のファイルを扱うこに特化
・ジャーナリング機能、動的inode機能、ユーザー単位のアクセス制限(ACL)
・専用コマンドで実行
12.現在マウントされているファイルシステムの一覧表示
・mount
・df
・cat /proc/self/mounts
・cat /etc/mtab
13.ディスククォーター
・ユーザー・グループ毎に使用可能なディスク容量を制限する機能
・制限:サイズ指定/inode単位指定 可能
・ハードリミット:使用可能な最大ディスク容量
→超えると、書き込み不可
・ソフトリミット;超えると、警告表示
→猶予期間(デフォルト:7日)まで書き込み可能
・quota :ディスククォーターの設定、使用量の表示を実行するコマンド
書式 quota [-u / -g] [ユーザー名/グループ名(必須)]
・repquota :指定したファイルシステムのディスク使用状況、
ユーザー/グループのディスククォータ状況を表示
書式 repquota [-a] [オプション(任意)] [ファイルシステム名/マウントポイント(必須)]
・quotacheck :ディスククォータ管理用のファイルを初期化する
quotaon実行前に、quotacheck実行が必要。
すでにファイルが存在する場合、チェックと修復のみ実行
書式 quotacheck [-a] [オプション(任意)] [ファイルシステム名/マウントポイント(必須)]
・edquota :ディスククォータ容量を指定する
エディタからユーザー/グループ毎のディスククォータ設定できる。
ソフトリミットの猶予期間変更できる(-t)
書式 quotacheck [-t] [オプション(任意)] [ユーザー名/グループ名(必須)]
14.SUID(Set User ID)
・実行するユーザーでなく、そのファイル所有者の権限で実行させるものと見なされる。
・SUIDの設定 : chmodの実行時に、「s」または、「4000」指定する
・同様に、SGID(Set Group ID)もある。「s」または、「2000」指定する
15.スティッキービット
・ディレクトリに対して設定するアクセス権
・書き込む許可があるファイルでも、ほかのユーザーが所有しているファイルは削除不可
・/tmp などに使う。
・スティッキービットの設定 : chmodの実行時に、「t」または、「1000」指定する
・同様に、SGID(Set Group ID)もある。
16.unmask
・666/777から指定のマスク値を引く
・ユーザー毎に設定できる。
・値を設定しなければ、現在のマスク値が表示される
17.リンク
・ファイルに別名をつけて、別名・本名を問わず同じファイルのように扱うよう機能
-ハードリンク
・Linuxは元々は同じファイルシステム上のファイルはすべて異なるinode番号が付与する。
→ ハードリンクは、同じ番号をつける機能。
元のファイルと区分がない。リンク数=ハードリンクのリンク数 ・
-シンボリックリンク
・リンク元ファイルのパスにリンク(=ショートカット)
→ 異なるファイルシステム上のファイルにリンク可能
ディレクトリにリンク可能
・ln :リンク作成コマンド
-sでシンボリックリンク作成可能(未指定時ハードリンク)
18.find
・指定したディレクトリ以下のファイル・ディレクトリを検索
書式 find [検索ディレクトリ(任意)] [検索条件(任意)] [アクション(任意)]
-検索条件
| 検索条件 | 説明 |
| -name <文字列> | 指定文字列を含む |
| -atime <日数> | 最終アクセス日 + : 引数より古い / - : 引数より新しい |
| -mtime <日数> | 最終更新日 |
| -perm <アクセス権> | アクセス権検索、(8進数/文字 可能) |
| -size <サイズ> | ブロック単位のファイルサイズ |
| -type <ファイルタイプ> | ファイルタイプ |
| -user <ユーザー名> | 所有者 |
| -maxdepth <階層> | 最大階層制限 |
| -mindepth <階層> | 最小階層制限 |
-アクション
| アクション | 説明 |
| 結果表示 | |
| -exec <コマンド>{}¥; | 結果ファイルにコマンド実行 |
19.which
・指定したコマンドが格納されているディレクトリをフルパスで表示
・環境変数 PATHを参照。
書式 which [オプション(任意)] [コマンド名(必須)]
20.locate
・予め作成されたDBを基にして、ファイル・ディレクトリを検索
・findより高速で行う。
書式 locate [ファイル名・ディレクトリ名(必須)]
21.whereis
・指定したコマンドのバイナリファイル、ソースファイル、マニュアルが格納されているディレクトリ表示
書式 whereis [オプション(任意)] [コマンド名(必須)]
-オプション
| オプション | 説明 |
| -b | バイナリファイルのみ |
| -m | マニュアルのみ |
| -s | ソースファイルのみ |
22.updatedb
・locateコマンドで参照するDBを更新する
・rootユーザーのみ実行できる
・設定ファイル : /etc/updatedb.conf
書式 updatedb [オプション(任意)]
23.type
・コマンドに関する情報
・通常の実行ファイル・シェルの組込コマンド・エイリアス等の種別を表示
書式 type [オプション(任意)] [コマンド名(必須)]
-オプション
| オプション | 説明 |
| -a | 実起動のコマンドパス以外のパスも表示 |
| -p | ファイル名も表示 |
| -t | 種別表示 |
24.FHS(Filesystem Hierachy Standard)
・ファイルシステム階層標準
・ルートファイルシステムに含むべくディレクトリ・ディレクトリの役割・コマンドの配置が決まっている
・含むべくディレクトリ : /bin、/sbin、/etc、/dev、lib
※/usr/share :アーキテクチャに依存しないファイル(manなど)
※/usr/local:個人で作成したコマンドなど。ローカルシステム用ファイル
特に、一般ユーザーが使われるプログラムは 「/usr/local/bin」に格納