LinuC レベル1 101試験 のナレッジマップ
LinuC レベル1 101試験 の主要概念 73 件と、そのつながり。上のマップでノードをクリックすると関連用語や前提をたどれます。下は全概念の索引で、定義と「前提・関連する概念」への内部リンクを掲載しています。
概念一覧(73)
コマンドの所在確認(which/whereis/type)
コマンドの所在を調べる3種。which は PATH 上の実行ファイルの場所、whereis は実行ファイル+マニュアル+ソース、type はエイリアスやシェルビルトインかどうかまで判定する(type cd → shell builtin)。
カーネル
OS の中核。CPU・メモリ・デバイスなどのハードウェアを管理し、プロセスにサービスを提供する。仮想マシンは各自のカーネルを持ち、コンテナはホストのカーネルを共有する。
シェル(bash)
ユーザーが入力したコマンドを解釈してカーネルに渡す対話環境。Linux の標準は bash。変数・引用符・履歴・パス解決といった動作原理がスクリプトやテキスト処理の土台になる。
ファイルシステムと mkfs
パーティションを使える状態にする(フォーマットする)のがファイルシステム作成。mkfs 系で作る。ext4 は Linux の標準汎用(前身 ext3)、XFS は大容量・並列に強い(RHEL 標準)、VFAT は Windows と共用、Btrfs は新世代、tmpfs はメモリ上で再起動で消える。
パッケージとリポジトリ
Linux のソフトウェアは、配布サーバー(リポジトリ)から取り寄せるパッケージ単位で管理する。パッケージ管理ツールが依存関係を自動解決し、インストール・更新・削除を一元的に扱う。手元の索引(パッケージカタログ)を基準に動く。
関連: ディストリビューション
find
指定パス以下を実時間で走査し、条件に合うファイルを探すコマンド。-name(名前)・-type(f/d)・-size・-mtime(更新日。-7 は7日以内)・-user で絞り、-exec コマンド {} \; で見つけたファイルへ一括操作する。
ファイルシステムのマウント(/etc/fstab)
ファイルシステムをディレクトリツリー上の場所(マウントポイント)に取り付けるのがマウント。mount/umount で操作し、使用中は umount できない。ブート時の自動マウントは /etc/fstab に定義し(デバイス・ポイント・種別・オプション・dump・fsck順)、mount -a で検証する。リムーバブルは /media 配下。
PATH
コマンドの実行ファイルを探索するディレクトリの一覧を持つ環境変数。カレントディレクトリは原則含まれないため、その場のスクリプトは ./script.sh(相対パス)か絶対パスで実行する。
前提: シェル変数と環境変数
関連: 絶対パスと相対パス
端末切断後の実行継続(nohup/screen/tmux)
ログアウトや SSH 切断後も処理を継続させる手段。nohup は端末切断(SIGHUP)を無視して実行を続ける。screen/tmux は仮想端末で、セッションをデタッチ/再アタッチできる。
ブートローダー(GRUB2)
ファームウェアの後にカーネルを選択・読み込むプログラム。Linux の標準は GRUB2 で、カーネルとブートオプションをメニューで選べる。
ディストリビューション
Linux カーネルに、パッケージ管理・各種ツール・設定をまとめて配布する形態。Debian/Ubuntu 系(apt)と RHEL/CentOS 系(yum/dnf)で管理コマンドや標準構成が異なる。
前提: カーネル
関連: パッケージとリポジトリ
パイプ(|)
左のコマンドの標準出力を右のコマンドの標準入力へ直結する(ps aux | grep nginx)。標準エラーはパイプに乗らない(乗せるには 2>&1 を先に置く)。
ESP(EFI システムパーティション)
UEFI ブートでブートローダーを置く FAT 形式の専用パーティション。/boot/efi にマウントされる。
FHS(ファイルシステム階層標準)
標準的なディレクトリ構成を定める規約。/etc 設定・/var 増減データ(ログ等)・/home ユーザー・/usr アプリ・/bin,/sbin 基本コマンド・/opt 追加ソフト・/tmp 一時・/boot カーネル・/dev デバイス・/proc,/sys 仮想FS。ディストリを越えてほぼ共通。
initramfs
カーネルが本来のルートファイルシステムをマウントするために必要なドライバ類を含む初期 RAM ディスク。起動の橋渡しをする。
KVM
Linux カーネルに組み込まれた仮想化機能(Kernel-based Virtual Machine)。Linux 自身をハイパーバイザーにする。
シェル変数と環境変数
シェル変数は NAME=value(=の前後に空白なし)で定義し、そのシェル内でのみ有効。export すると環境変数になり子プロセスへ継承される。一覧は set(全部)/env(環境のみ)、削除は unset、表示は echo。
前提: シェル(bash)
関連: 子プロセス
UEFI/BIOS
PC の電源投入直後に動くファームウェア。ハードウェアの初期化(POST=自己診断)とブートデバイスの選択・優先順位付けを行い、ブートローダーを読み込む。UEFI は BIOS の後継で GPT ディスクや大容量に対応する。
前提: ブートローダー(GRUB2)
xargs/tee
xargs は流れてきたテキストを次のコマンドの引数に変換する(find … | xargs rm)。標準入力を読まないコマンドへ値を渡す橋渡し。tee はストリームを画面とファイルの両方へ複製する。
前提: find、端末切断後の実行継続(nohup/screen/tmux)、標準入出力(stdin/stdout/stderr)
エイリアス/シェルビルトイン
エイリアスはコマンドに付ける別名(alias ll='ls -l')で、既存コマンドと同名なら優先される。シェルビルトインは cd・echo のようにシェル自身に組み込まれたコマンドで、外部の実行ファイルを持たない。
前提: シェル(bash)
apt(Debian 系)
Debian/Ubuntu 系のリポジトリ利用パッケージ管理。apt update は索引の更新(本体は更新しない)、apt upgrade はパッケージ本体の更新、install/remove/purge。apt-cache で検索、apt-file でファイルを含むパッケージを未インストールも含め逆引きする。リポジトリ定義は /etc/apt/sources.list。
子プロセス
あるプロセス(親)から起動された別のプロセス。シェルがコマンドを実行すると子プロセスが作られ、そこには環境変数だけが引き継がれる(export の必要性の理由)。
前提: シェル(bash)
関連: シェル変数と環境変数
コンソール/端末エミュレータ
文字ベースでシェルを操作する画面。物理的なテキストコンソールや、デスクトップ上でその機能を提供する端末エミュレータ(ターミナル)を通じてコマンドを入力する。
dpkg(deb パッケージ直接操作)
apt の下で働く低レベルツール。deb ファイルを直接扱う(-i 導入・-r 削除・-P 設定ごと削除=purge)。依存関係は解決しない。照会は -l 一覧・-L パッケージ→ファイル・-S ファイル→パッケージ。dpkg-reconfigure で対話設定をやり直す。
前提: パッケージとリポジトリ
基本ファイル操作(cp/mv/rm/mkdir)
ファイル・ディレクトリを操作する基本コマンド。cp コピー、mv 移動(=名前変更)、rm 削除、mkdir/rmdir はディレクトリの作成/空ディレクトリの削除、touch は空ファイル作成/時刻更新、file は種類判定。ディレクトリごとの操作には -r(再帰)が要る。
フィルタ(テキスト処理コマンド)
標準入力を加工して標準出力へ流す単機能コマンド群。閲覧 cat/less(ページャ)/head/tail(-f で追記監視)、変換 tr/nl、結合 paste/join、分割 split、整形 expand/unexpand/fmt/pr、バイナリ表示 od。パイプで組み合わせて使う。
テキスト検索・抽出コマンド(grep/egrep/fgrep/sed)
grep は正規表現に一致する行を表示(-i 大小無視・-v 不一致行・-n 行番号・-r 再帰)。egrep(grep -E)は拡張正規表現、fgrep(grep -F)は正規表現を解釈しない固定文字列検索。sed はストリームエディタで sed 's/old/new/g' の検索置換が代表。
前提: 正規表現
ハイパーバイザー
物理マシンの CPU・メモリ・ディスクを仮想化し、複数の仮想マシンへ分配するソフトウェア。CPU の仮想化支援機能(Intel VT-x/AMD-V)を使って実用的な速度で動かす。Linux では KVM がその役割を担う。
カーネルモジュール(modprobe)
デバイスドライバなどを必要なときだけカーネルに組み込む仕組み。lsmod でロード済みを確認、modprobe は依存モジュールごとロード/解除(第一選択)、insmod/rmmod は単体でファイルパス指定のロード/解除。
locate/updatedb
locate は updatedb が事前に作った索引データベースを検索するため高速だが、索引が古いと新規ファイルは出ない。updatedb で最新化し、除外パス等は /etc/updatedb.conf で設定する。確実性が要る場合は実走査の find を使う。
前提: find
8進数(パーミッション表記)
0〜7の8種の数字で表す記数法。Linux のパーミッションは r=4・w=2・x=1 を足した8進3桁で表す(rwxr-xr-- は 754)。
前提: パーミッションと所有者
パーミッションと所有者
ファイルへのアクセスを、所有者・所有グループ・その他の3区分ごとに読み(r)・書き(w)・実行(x)で制御する仕組み。ls -l の先頭10文字で表示される。所有者は chown、所有グループは chgrp で変更する。
引用符(シングル/ダブル/バッククォート)
シングルクォート '…' はすべて文字どおり(変数展開しない)、ダブルクォート "…" は $変数 を展開、バッククォート `…`(=$(…))はコマンド置換で出力に置き換わる。
関連: コマンド置換
システム停止・再起動コマンド(shutdown/reboot/halt/poweroff)
システムを安全に停止・再起動するコマンド群。shutdown は時刻指定(-h 停止/-r 再起動)とログイン中ユーザーへの警告ができる正規の手段。halt は停止、reboot は再起動、poweroff は電源断。
標準入出力(stdin/stdout/stderr)
すべてのコマンドが持つ3本のストリーム。標準入力(0)・標準出力(1)・標準エラー出力(2)。この3本をリダイレクトやパイプで付け替えるのが Linux のテキスト処理の基本。
タイムスタンプ
ファイルの最終更新・アクセス・変更の日時。touch で更新でき、find -mtime などで更新日を条件にファイルを検索できる。
デバイス管理(udev/sysfs/D-Bus)
デバイスの抜き差し(ホットプラグ)を検知し、/dev のデバイスファイルを動的に作成・命名する仕組みが udev。sysfs(/sys)はカーネルが公開するデバイスツリー、D-Bus はデスクトップ等へイベントを通知するプロセス間通信。
前提: カーネル
仮想ファイルシステム(/proc・/sys)
ディスク上に実体を持たず、カーネルがメモリ上で生成して見せる情報の窓口。/proc はプロセス・カーネル状態(/proc/cpuinfo 等)、/sys(sysfs)はデバイスツリーを公開する。
絶対パスと相対パス
絶対パスは / から始まる完全な位置(/etc/hosts)、相対パスは現在地からの位置(./script.sh、../dir)。現在地は pwd で確認する。
関連: PATH
chmod/umask
chmod はパーミッションを変更する。数値モードは r=4・w=2・x=1 の合計を3桁で(chmod 754)、記号モードは u/g/o/a と +/-/= で指定する。umask は新規作成時に落とすビットの既定値で、ファイルは 666、ディレクトリは 777 からumask値を引いた権限になる(umask 022 → 644/755)。
コマンド置換
コマンドの出力をその場に埋め込む記法。$(コマンド) または `コマンド`(バッククォート)で、FILES=$(ls *.log) のように結果を変数に取り込む。
既定エディタ(EDITOR/nano/emacs)
crontab -e 等が起動するエディタは環境変数 EDITOR で決まる(export EDITOR=nano)。nano は画面下に操作が常時表示され初心者向き、emacs も代表的なエディタ。
前提: 端末切断後の実行継続(nohup/screen/tmux)、シェル変数と環境変数、コマンドの所在確認(which/whereis/type)
コマンド履歴(history)
過去に実行したコマンドの記録。history で一覧、!番号 で再実行、!! で直前を再実行。ログアウト時に ~/.bash_history へ保存される。
ISO イメージ
光学ディスクの内容を1ファイルにまとめたイメージ形式。Linux のインストールメディアとして配布され、DVD や USB に書き込むか仮想マシンに直接マウントして起動する。
ジョブ制御(bg/fg/jobs)
シェルでコマンドをフォアグラウンド/バックグラウンドで動かす仕組み。末尾の & で背面起動、Ctrl+Z で一時停止、bg で背面再開、fg で前面へ、jobs で一覧。
前提: シェル(bash)
ジャーナリング
書き込み操作を先に記録してから実行する仕組み。電源断などでもファイルシステムの整合性が壊れにくい。ext3/ext4/XFS が備える。
前提: ファイルシステムと mkfs
ハードリンクとシンボリックリンク(ln)
1つの実体を複数の名前で参照する仕組み。ハードリンク(ln)は同一 inode の対等な別名で、同一ファイルシステム内のみ・ディレクトリ不可・元を消しても実体は残る。シンボリックリンク(ln -s)はパスを記録した特殊ファイルで、別ファイルシステムやディレクトリも指せるが元を消すと壊れたリンクになる。
前提: ファイルシステムと mkfs、PATH
関連: inode
ロードアベレージ
実行可能/実行中のプロセス数の平均で表すシステム負荷の指標。uptime や top で 1分/5分/15分の3つが表示され、CPU コア数と比べて過負荷かを判断する。
man(マニュアル)
コマンドのオンラインマニュアルを表示する(man ls)。man -k キーワード(=apropos)でキーワードから関連コマンドを探せる。
プロセス/PID
実行中のプログラムの単位がプロセスで、一意の番号 PID で識別される。最初に起動する PID 1 は systemd(init)。
リダイレクト(>/>>/2>&1)
ストリームの入出力先を付け替える。> は標準出力をファイルへ上書き、>> は追記、< はファイルを入力に。両方をまとめて保存するのは > file 2>&1(順序が重要)。捨て先は /dev/null。
正規表現
文字列のパターンを記述する言語。^ 行頭・$ 行末・. 任意1文字・[abc] 集合・* 直前要素の0回以上。基本正規表現(BRE)と拡張正規表現(ERE:+ ? | ( ))があり、シェルのワイルドカードの * とは意味が異なる(任意文字列は .* と書く)。文法詳細は regex(7)。
前提: シェル(bash)
関連: ワイルドカード(グロブ)
rpm(RPM パッケージ直接操作)
yum の下で働く低レベルツールで、照会機能が豊富。-qa 全一覧・-qi 詳細・-qR 依存・-ql パッケージ→ファイル・-qf ファイル→パッケージ・-V 改ざん検証・--checksig 署名確認。-p を付けると未インストールの rpm ファイルを調べる。依存解決はしない。
前提: パッケージとリポジトリ
シグナルとプロセス終了(kill/pkill/killall/pgrep)
プロセスへ制御を伝える仕組みがシグナル。既定の SIGTERM(15)は穏当な終了要求、SIGKILL(9)は捕捉不可能な強制終了、SIGHUP(1)は端末切断/設定再読込。kill は PID 指定、pkill/killall は名前指定、pgrep は名前で PID を検索する。
source(ドットコマンド)
.(ドット)や source は、新しいプロセスを作らず現在のシェルでスクリプトを読み込む。設定ファイル(~/.bashrc 等)を再ログインせずに反映するのに使う。
前提: シェル(bash)
HDD/SSD
大容量記憶装置。HDD は磁気ディスクで安価・大容量だが可動部があり遅い。SSD はフラッシュメモリで高速・耐衝撃だが書き込み回数に上限がある。ほかに配布・保存用の光学ストレージ(DVD 等)。
前提: ディストリビューション
systemd/systemctl
現代の Linux の初期化・サービス管理の仕組み。PID 1 として起動し、依存関係に基づきサービス(ユニット)を並列起動する(旧来の SysV init の後継)。systemctl はその操作コマンド(start/stop/enable/disable/status)。
UUID/ラベル(blkid)
ファイルシステムを識別する堅牢な方法。/etc/fstab で UUID= やラベルを使えば、/dev/sdb が /dev/sdc に変わるような接続順の変化に影響されない。blkid で UUID を確認する。
virsh
libvirt を通じて仮想マシンを操作する CLI。virsh start/virsh shutdown で VM を起動・停止する。
仮想マシン(VM)
ハイパーバイザー上で動く、独立したゲスト OS(カーネルを含む)を持つ仮想的なコンピュータ。ホストと異なる OS も動かせるが、起動が遅くリソース消費も大きい。
ワイルドカード(グロブ)
シェルがファイル名をパターンで展開する仕組み。* は0文字以上の任意文字列、? は任意の1文字、[a-c] は集合/範囲。正規表現の * とは意味が異なる。
前提: シェル(bash)
関連: 正規表現
リモート GUI(DISPLAY/xauth/X11 転送)
リモートの GUI アプリを手元の画面に表示する仕組み。DISPLAY 環境変数が表示先の X サーバーを指し、xauth が接続の認可を管理する。実務では ssh -X(X11 転送)で SSH トンネル越しに表示するのが定番。
依存関係(パッケージ)
あるパッケージが動作するために必要な別のパッケージ。apt/yum は依存関係を自動で解決してまとめて導入するが、dpkg/rpm は解決せず、依存が欠けるとエラーになる。
inode
ファイルの実体(サイズ・所有者・パーミッション・データ位置など)を管理するメタ情報。ファイル名は inode に付けたラベルにすぎない。ls -i で inode 番号を表示でき、番号が同じならハードリンク。
前提: パーミッションと所有者
パーティション(MBR/GPT)
ディスクを区切って使う単位。区切りの台帳がパーティションテーブルで、旧来の MBR(最大 2TB・基本パーティション4個、拡張で回避)と現行主流の GPT(実質無制限・UEFI とセット)がある。
パッケージグループ
インストール時に用途別にまとめて選択できるパッケージの束(例:サーバー用途の最小構成、デスクトップ環境)。後から単位で追加もできる。
前提: パッケージとリポジトリ
特殊パーミッション(SUID/SGID/スティッキービット)
特殊なパーミッションビット。SUID(4000)は実行時にファイル所有者の権限で動く(例 passwd)。SGID(2000)は実行ファイルではグループ権限、ディレクトリに付けると新規ファイルがそのグループを継承する。スティッキービット(1000)はディレクトリ内のファイルを所有者しか削除できなくする(例 /tmp)。
前提: パーミッションと所有者
X の管理3層(ディスプレイマネージャー/ウィンドウマネージャー/統合デスクトップ環境)
X の管理3層。ディスプレイマネージャー(GDM 等)はグラフィカルなログイン画面、ウィンドウマネージャーは窓の枠・移動・重なり、統合デスクトップ環境(GNOME/KDE)はアプリ一式を含むデスクトップ全体。startx はディスプレイマネージャーを使わず手動で X を起動する。
X Window System(X サーバー/X クライアント)
Linux の GUI の土台となるサーバー/クライアント方式の仕組み。X サーバーは画面・入力のある側で動き描画と入力を提供、X クライアントはアプリ本体。アプリが動く場所と表示する場所を分離できる。
yum/dnf(RHEL 系)
RHEL/CentOS 系のリポジトリ利用パッケージ管理(後継が dnf)。yum update はパッケージ本体を更新(索引は自動更新)、install/remove/search/info。provides でファイルを提供するパッケージを逆引き、yumdownloader は取得のみ。リポジトリ定義は /etc/yum.repos.d/ の .repo ファイル、全体設定は /etc/yum.conf。
前提: パッケージとリポジトリ
コンテナ(Linux)
ホスト OS のカーネルを共有し、名前空間でプロセスを隔離する軽量な実行環境。ゲスト OS を起動しないため高速・軽量だが、ホストと同系統の OS しか動かせない。
前提: カーネル
プロセス監視(top/ps/pstree/uptime)
稼働中プロセスと負荷を見るコマンド群。top はリアルタイムの CPU/メモリ上位、ps はスナップショット(ps aux)、pstree は親子ツリー、uptime は稼働時間とロードアベレージ。
関連: ロードアベレージ
systemd ターゲット(デフォルトターゲット/シングルユーザーモード)
起動の到達点を表すユニットのグループ。multi-user.target(CUI・サーバー標準)/graphical.target(GUI)/rescue.target(シングルユーザーモード)。set-default は次回起動からの既定、isolate は今すぐの切り替え。

