LinuC レベル2 201試験 のナレッジマップ
LinuC レベル2 201試験 の主要概念 127 件と、そのつながり。上のマップでノードをクリックすると関連用語や前提をたどれます。下は全概念の索引で、定義と「前提・関連する概念」への内部リンクを掲載しています。
概念一覧(127)
シェル(bash)
ユーザーが入力したコマンドを解釈してカーネルに渡す対話環境。Linux の標準は bash。変数・引用符・履歴・パス解決といった動作原理がスクリプトやテキスト処理の土台になる。
カーネル
OS の中核。CPU・メモリ・デバイスなどのハードウェアを管理し、プロセスにサービスを提供する。仮想マシンは各自のカーネルを持ち、コンテナはホストのカーネルを共有する。
コマンドの所在確認(which/whereis/type)
コマンドの所在を調べる3種。which は PATH 上の実行ファイルの場所、whereis は実行ファイル+マニュアル+ソース、type はエイリアスやシェルビルトインかどうかまで判定する(type cd → shell builtin)。
前提: エイリアス/シェルビルトイン、locate/updatedb、man(マニュアル)、source(ドットコマンド)
ファイルシステムと mkfs
パーティションを使える状態にする(フォーマットする)のがファイルシステム作成。mkfs 系で作る。ext4 は Linux の標準汎用(前身 ext3)、XFS は大容量・並列に強い(RHEL 標準)、VFAT は Windows と共用、Btrfs は新世代、tmpfs はメモリ上で再起動で消える。
パッケージとリポジトリ
Linux のソフトウェアは、配布サーバー(リポジトリ)から取り寄せるパッケージ単位で管理する。パッケージ管理ツールが依存関係を自動解決し、インストール・更新・削除を一元的に扱う。手元の索引(パッケージカタログ)を基準に動く。
関連: ディストリビューション
制御構文(if/case/for/while)
スクリプトの分岐と反復。if…fi は条件分岐([ ] は test)、case…esac は値をパターンで多分岐、for/while…done は反復。閉じ語(fi/esac/done)を取り違えないのが要点。
ファイルシステムのマウント(/etc/fstab)
ファイルシステムをディレクトリツリー上の場所(マウントポイント)に取り付けるのがマウント。mount/umount で操作し、使用中は umount できない。ブート時の自動マウントは /etc/fstab に定義し(デバイス・ポイント・種別・オプション・dump・fsck順)、mount -a で検証する。リムーバブルは /media 配下。
ディストリビューション
Linux カーネルに、パッケージ管理・各種ツール・設定をまとめて配布する形態。Debian/Ubuntu 系(apt)と RHEL/CentOS 系(yum/dnf)で管理コマンドや標準構成が異なる。
前提: カーネル
関連: パッケージとリポジトリ
システム停止・再起動コマンド(shutdown/reboot/halt/poweroff)
システムを安全に停止・再起動するコマンド群。shutdown は時刻指定(-h 停止/-r 再起動)とログイン中ユーザーへの警告ができる正規の手段。halt は停止、reboot は再起動、poweroff は電源断。
systemd/systemctl
現代の Linux の初期化・サービス管理の仕組み。PID 1 として起動し、依存関係に基づきサービス(ユニット)を並列起動する(旧来の SysV init の後継)。systemctl はその操作コマンド(start/stop/enable/disable/status)。
ブートローダー(GRUB2)
ファームウェアの後にカーネルを選択・読み込むプログラム。Linux の標準は GRUB2 で、カーネルとブートオプションをメニューで選べる。
イメージ(Docker)
コンテナを起動するための読み取り専用のひな型。Dockerfile から docker build で作成するか、docker commit で稼働中コンテナの状態から作成する。docker pull でレジストリから取得し、docker images で一覧、docker rmi で削除する。
フィルタ(テキスト処理コマンド)
標準入力を加工して標準出力へ流す単機能コマンド群。閲覧 cat/less(ページャ)/head/tail(-f で追記監視)、変換 tr/nl、結合 paste/join、分割 split、整形 expand/unexpand/fmt/pr、バイナリ表示 od。パイプで組み合わせて使う。
find
指定パス以下を実時間で走査し、条件に合うファイルを探すコマンド。-name(名前)・-type(f/d)・-size・-mtime(更新日。-7 は7日以内)・-user で絞り、-exec コマンド {} \; で見つけたファイルへ一括操作する。
ハードリンクとシンボリックリンク(ln)
1つの実体を複数の名前で参照する仕組み。ハードリンク(ln)は同一 inode の対等な別名で、同一ファイルシステム内のみ・ディレクトリ不可・元を消しても実体は残る。シンボリックリンク(ln -s)はパスを記録した特殊ファイルで、別ファイルシステムやディレクトリも指せるが元を消すと壊れたリンクになる。
前提: ファイルシステムと mkfs、PATH
関連: inode
PATH
コマンドの実行ファイルを探索するディレクトリの一覧を持つ環境変数。カレントディレクトリは原則含まれないため、その場のスクリプトは ./script.sh(相対パス)か絶対パスで実行する。
前提: シェル変数と環境変数
関連: 絶対パスと相対パス
スナップショット(snapshot)
ある時点でのファイルシステムやボリュームの状態を凍結して保持する仕組み。LVM のスナップショット LV や Btrfs のスナップショットが代表例で、変更差分だけを記録するため作成コストが小さく、バックアップや障害時のロールバックに使える。
前提: ファイルシステムと mkfs
source(ドットコマンド)
.(ドット)や source は、新しいプロセスを作らず現在のシェルでスクリプトを読み込む。設定ファイル(~/.bashrc 等)を再ログインせずに反映するのに使う。
前提: シェル(bash)
サブボリューム(subvolume)
Btrfs ファイルシステム内に作れる、独立してマウントやスナップショットの対象にできる論理的な区画。1つの Btrfs ファイルシステムを複数のサブボリュームに分け、それぞれ個別にスナップショットを取得できる。
前提: ファイルシステムと mkfs、ファイルシステムのマウント(/etc/fstab)、スナップショット(snapshot)
コンソール/端末エミュレータ
文字ベースでシェルを操作する画面。物理的なテキストコンソールや、デスクトップ上でその機能を提供する端末エミュレータ(ターミナル)を通じてコマンドを入力する。
コンテナファイルシステム
コンテナ内から見えるファイルシステムで、元になるイメージのレイヤーを重ね合わせて構成される。イメージ自体は読み取り専用のレイヤーの集まりで、コンテナ実行時にその上へ書き込み可能なレイヤーが1枚追加される。
ESP(EFI システムパーティション)
UEFI ブートでブートローダーを置く FAT 形式の専用パーティション。/boot/efi にマウントされる。
テキスト検索・抽出コマンド(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 がその役割を担う。
initramfs
カーネルが本来のルートファイルシステムをマウントするために必要なドライバ類を含む初期 RAM ディスク。起動の橋渡しをする。
IP フォワード設定
サーバーが自分宛てでないパケットを別のネットワークインタフェースへ中継(ルーティング)できるようにするカーネル設定。/proc/sys/net/ipv4/ip_forward の値や sysctl の net.ipv4.ip_forward で有効・無効を切り替え、Linux サーバーをルーターとして機能させる際に必要になる。
前提: IP アドレス(IPv4/IPv6)、カーネル、X Window System(X サーバー/X クライアント)
IP アドレス(IPv4/IPv6)
ネットワーク上のホストを識別する番号。IPv4 は32ビットをドット区切り4組(192.168.1.10)、IPv6 は128ビットをコロン区切り16進で表しアドレス枯渇を根本解決する。同一リンク内通信用の fe80:: リンクローカルアドレスが自動構成される。
KVM
Linux カーネルに組み込まれた仮想化機能(Kernel-based Virtual Machine)。Linux 自身をハイパーバイザーにする。
NAT(ネットワークアドレス変換)
プライベート IP アドレスをパブリック IP アドレスへ、またはその逆へ変換する仕組み。ルータやゲートウェイで動作し、組織内の多数の端末が少数(または1つ)のパブリック IP を共有してインターネットへ出られるようにする(NAPT/IPマスカレード)。Linux では iptables の MASQUERADE ターゲット等で実現する。
前提: iptables/firewalld(ファイアウォール)、IP アドレス(IPv4/IPv6)、プライベート/パブリック IP アドレス、systemd ターゲット(デフォルトターゲット/シングルユーザーモード)
端末切断後の実行継続(nohup/screen/tmux)
ログアウトや SSH 切断後も処理を継続させる手段。nohup は端末切断(SIGHUP)を無視して実行を続ける。screen/tmux は仮想端末で、セッションをデタッチ/再アタッチできる。
パーミッションと所有者
ファイルへのアクセスを、所有者・所有グループ・その他の3区分ごとに読み(r)・書き(w)・実行(x)で制御する仕組み。ls -l の先頭10文字で表示される。所有者は chown、所有グループは chgrp で変更する。
シェルスクリプトとシバン
一連のコマンドをファイルにまとめて自動化する。先頭行のシバン #!/bin/bash が解釈するインタプリタを指定し、chmod +x で実行権を付けて ./script.sh で実行する。
ログイン状況の確認(who/w/last)
誰がいつログインしているかを見るコマンド。who は現在のログイン者、w は加えて何をしているか・負荷、last は /var/log/wtmp 由来のログイン履歴を表示する。
関連: コマンド履歴(history)
apt(Debian 系)
Debian/Ubuntu 系のリポジトリ利用パッケージ管理。apt update は索引の更新(本体は更新しない)、apt upgrade はパッケージ本体の更新、install/remove/purge。apt-cache で検索、apt-file でファイルを含むパッケージを未インストールも含め逆引きする。リポジトリ定義は /etc/apt/sources.list。
差分バックアップ
直近の完全バックアップ以降に変更されたデータだけを複製するバックアップ方式。リストアには完全バックアップ1回+最新の差分1回で済むが、日を追うごとに差分のサイズが増えていく。
DNS クライアント設定(host/dig/resolv.conf)
名前解決の設定と確認。/etc/resolv.conf の nameserver が問い合わせ先 DNS サーバー、/etc/nsswitch.conf が参照順序(通例 files→dns)、/etc/hosts が静的対応表。host/dig は DNS へ直接問い合わせ(dig は @ でサーバー指定)、getent は nsswitch の順序どおり(/etc/hosts 込み)に解決する。
既定エディタ(EDITOR/nano/emacs)
crontab -e 等が起動するエディタは環境変数 EDITOR で決まる(export EDITOR=nano)。nano は画面下に操作が常時表示され初心者向き、emacs も代表的なエディタ。
前提: cron/crontab(定期実行)、端末切断後の実行継続(nohup/screen/tmux)、シェル変数と環境変数、コマンドの所在確認(which/whereis/type)
iptables/firewalld(ファイアウォール)
ホストのパケットフィルタ。iptables はカーネルの netfilter をルールチェーン(INPUT/OUTPUT/FORWARD)で直接制御、firewalld はゾーンとサービス名で管理する高水準ツール(--permanent を付けないと再起動で消える)。既定拒否+必要な口だけ許可が基本。
前提: フィルタ(テキスト処理コマンド)、カーネル、システム停止・再起動コマンド(shutdown/reboot/halt/poweroff)
systemd ジャーナル(journalctl)
systemd が集めるバイナリ形式のログ。journalctl で問い合わせる(-u ユニット別・-b 今回起動・-f 追随・-p 重大度・--since 期間)。/var/log/journal/ が存在すれば永続化され、無ければメモリのみ(再起動で消える)。設定は journald.conf、古い分の削除は --vacuum-*。
前提: システム停止・再起動コマンド(shutdown/reboot/halt/poweroff)、systemd/systemctl
カーネルモジュール(modprobe)
デバイスドライバなどを必要なときだけカーネルに組み込む仕組み。lsmod でロード済みを確認、modprobe は依存モジュールごとロード/解除(第一選択)、insmod/rmmod は単体でファイルパス指定のロード/解除。
名前空間(namespaces)
Linux カーネルの機能で、プロセスから見える PID・ネットワーク・マウントポイントなどの資源を分離し、あたかも独立した環境にいるように見せる仕組み。cgroups と並ぶコンテナ実現の基盤技術。
ネットワーク設定(ip/ifconfig/nmcli)
ホストのネットワーク設定を参照・変更する。現行標準は ip コマンド(ip addr アドレス・ip route ルート)、従来は ifconfig/route。ip や ifconfig の変更は一時的で再起動で消え、恒久化は NetworkManager の nmcli や設定ファイル。ifup/ifdown は設定ファイルに基づく起動/停止。ホスト名は /etc/hostname。
準仮想化(paravirtualization)
ゲスト OS がハイパーバイザーの存在を認識し、専用のドライバ(virtio など)を通じて効率よくデバイスをやり取りする仮想化方式。実デバイスを完全にエミュレートする完全仮想化に比べ、I/O性能が高い。
パーティション(MBR/GPT)
ディスクを区切って使う単位。区切りの台帳がパーティションテーブルで、旧来の MBR(最大 2TB・基本パーティション4個、拡張で回避)と現行主流の GPT(実質無制限・UEFI とセット)がある。
パイプ(|)
左のコマンドの標準出力を右のコマンドの標準入力へ直結する(ps aux | grep nginx)。標準エラーはパイプに乗らない(乗せるには 2>&1 を先に置く)。
シェル変数と環境変数
シェル変数は NAME=value(=の前後に空白なし)で定義し、そのシェル内でのみ有効。export すると環境変数になり子プロセスへ継承される。一覧は set(全部)/env(環境のみ)、削除は unset、表示は echo。
前提: シェル(bash)
関連: 子プロセス
標準入出力(stdin/stdout/stderr)
すべてのコマンドが持つ3本のストリーム。標準入力(0)・標準出力(1)・標準エラー出力(2)。この3本をリダイレクトやパイプで付け替えるのが Linux のテキスト処理の基本。
systemd ターゲット(デフォルトターゲット/シングルユーザーモード)
起動の到達点を表すユニットのグループ。multi-user.target(CUI・サーバー標準)/graphical.target(GUI)/rescue.target(シングルユーザーモード)。set-default は次回起動からの既定、isolate は今すぐの切り替え。
タイムスタンプ
ファイルの最終更新・アクセス・変更の日時。touch で更新でき、find -mtime などで更新日を条件にファイルを検索できる。
前提: システムクロックとハードウェアクロック(date/hwclock)、基本ファイル操作(cp/mv/rm/mkdir)、find、ログイン状況の確認(who/w/last)
X Window System(X サーバー/X クライアント)
Linux の GUI の土台となるサーバー/クライアント方式の仕組み。X サーバーは画面・入力のある側で動き描画と入力を提供、X クライアントはアプリ本体。アプリが動く場所と表示する場所を分離できる。
エイリアス/シェルビルトイン
エイリアスはコマンドに付ける別名(alias ll='ls -l')で、既存コマンドと同名なら優先される。シェルビルトインは cd・echo のようにシェル自身に組み込まれたコマンドで、外部の実行ファイルを持たない。
前提: シェル(bash)
完全バックアップ
対象データすべてを毎回まるごと複製するバックアップ方式。リストアは単純で速いが、実行のたびに時間・容量を要する。差分・増分バックアップの基準点としても使われる。
関連: 増分バックアップ
子プロセス
あるプロセス(親)から起動された別のプロセス。シェルがコマンドを実行すると子プロセスが作られ、そこには環境変数だけが引き継がれる(export の必要性の理由)。
前提: シェル(bash)
関連: シェル変数と環境変数
chmod/umask
chmod はパーミッションを変更する。数値モードは r=4・w=2・x=1 の合計を3桁で(chmod 754)、記号モードは u/g/o/a と +/-/= で指定する。umask は新規作成時に落とすビットの既定値で、ファイルは 666、ディレクトリは 777 からumask値を引いた権限になる(umask 022 → 644/755)。
コピーレフトとパーミッシブ
OSS ライセンスの2系統。コピーレフトは改変再配布時に派生物も同じライセンス(ソース公開)を求める伝播条件。パーミッシブは著作権表示を残せば改変版をクローズドにしてよい。義務が生じるトリガーは原則「再配布」。
前提: source(ドットコマンド)
依存関係(パッケージ)
あるパッケージが動作するために必要な別のパッケージ。apt/yum は依存関係を自動で解決してまとめて導入するが、dpkg/rpm は解決せず、依存が欠けるとエラーになる。
Docker レジストリ
Docker イメージを保管・配布するサーバー。Docker Hub が既定のパブリックレジストリで、docker pull/docker push でイメージを取得・登録する。組織はプライベートレジストリを独自運用することもできる。
前提: イメージ(Docker)
FHS(ファイルシステム階層標準)
標準的なディレクトリ構成を定める規約。/etc 設定・/var 増減データ(ログ等)・/home ユーザー・/usr アプリ・/bin,/sbin 基本コマンド・/opt 追加ソフト・/tmp 一時・/boot カーネル・/dev デバイス・/proc,/sys 仮想FS。ディストリを越えてほぼ共通。
locate/updatedb
locate は updatedb が事前に作った索引データベースを検索するため高速だが、索引が古いと新規ファイルは出ない。updatedb で最新化し、除外パス等は /etc/updatedb.conf で設定する。確実性が要る場合は実走査の find を使う。
LVM(論理ボリューム管理)
物理ディスク(物理ボリューム PV)を束ねてボリュームグループ VG にし、そこから論理ボリューム LV を切り出す抽象層。稼働中の動的拡張・縮小や、ある時点を凍結するスナップショットができる。
運用監視ツールとアラート
サーバーやサービスの死活・リソース使用率・応答時間を継続的に監視し、しきい値超過などの異常時に管理者へ通知(アラート)する仕組み。Nagios・Icinga2・Zabbix・Cacti・MRTG・collectd などのツールがあり、SNMP でネットワーク機器の状態を取得するものも多い。
ping/traceroute(疎通・経路調査)
ネットワーク障害を層ごとに切り分ける道具。ping(ping6)は ICMP で相手まで届くかを確認、traceroute/tracepath は経由ルータを1ホップずつ表示して停止点を特定する。tracepath は特権不要で MTU も調べる。
前提: PATH
プライベート/パブリック IP アドレス
プライベート IP アドレス(10.0.0.0/8・172.16.0.0/12・192.168.0.0/16)は組織内などの限られた範囲でのみ使う番号で、そのままではインターネットに直接出られない。インターネット上で一意に到達可能なパブリック IP アドレスと対になる区分で、ルータ等で相互に変換して通信する。
プロセス/PID
実行中のプログラムの単位がプロセスで、一意の番号 PID で識別される。最初に起動する PID 1 は systemd(init)。
pv 系コマンド(物理ボリューム操作)
LVM で物理ボリューム(PV)を扱うコマンド群。pvcreate でディスクやパーティションを PV として初期化し、pvdisplay/pvs で確認する。
正規表現
文字列のパターンを記述する言語。^ 行頭・$ 行末・. 任意1文字・[abc] 集合・* 直前要素の0回以上。基本正規表現(BRE)と拡張正規表現(ERE:+ ? | ( ))があり、シェルのワイルドカードの * とは意味が異なる(任意文字列は .* と書く)。文法詳細は regex(7)。
前提: シェル(bash)
関連: ワイルドカード(グロブ)
シグナルとプロセス終了(kill/pkill/killall/pgrep)
プロセスへ制御を伝える仕組みがシグナル。既定の SIGTERM(15)は穏当な終了要求、SIGKILL(9)は捕捉不可能な強制終了、SIGHUP(1)は端末切断/設定再読込。kill は PID 指定、pkill/killall は名前指定、pgrep は名前で PID を検索する。
SMART(Self-Monitoring, Analysis and Reporting Technology)
HDD/SSD が自身の健康状態(温度・不良セクタ数など)を自己監視し、故障の予兆を報告する仕組み。smartd が常駐監視し、smartctl で状態確認や自己診断テストを実行する。
HDD/SSD
大容量記憶装置。HDD は磁気ディスクで安価・大容量だが可動部があり遅い。SSD はフラッシュメモリで高速・耐衝撃だが書き込み回数に上限がある。ほかに配布・保存用の光学ストレージ(DVD 等)。
前提: ディストリビューション
特殊パーミッション(SUID/SGID/スティッキービット)
特殊なパーミッションビット。SUID(4000)は実行時にファイル所有者の権限で動く(例 passwd)。SGID(2000)は実行ファイルではグループ権限、ディレクトリに付けると新規ファイルがそのグループを継承する。スティッキービット(1000)はディレクトリ内のファイルを所有者しか削除できなくする(例 /tmp)。
前提: パーミッションと所有者
タイムゾーン(timedatectl)
地域ごとの時刻設定。実体は /usr/share/zoneinfo/ 配下のファイルで、/etc/localtime をそこへのシンボリックリンクにして設定する。systemd 環境では timedatectl set-timezone Asia/Tokyo が恒久設定、TZ 変数は一時的な切り替え、tzselect は対話選択。
UEFI/BIOS
PC の電源投入直後に動くファームウェア。ハードウェアの初期化(POST=自己診断)とブートデバイスの選択・優先順位付けを行い、ブートローダーを読み込む。UEFI は BIOS の後継で GPT ディスクや大容量に対応する。
前提: ブートローダー(GRUB2)
UUID/ラベル(blkid)
ファイルシステムを識別する堅牢な方法。/etc/fstab で UUID= やラベルを使えば、/dev/sdb が /dev/sdc に変わるような接続順の変化に影響されない。blkid で UUID を確認する。
仮想ファイルシステム(/proc・/sys)
ディスク上に実体を持たず、カーネルがメモリ上で生成して見せる情報の窓口。/proc はプロセス・カーネル状態(/proc/cpuinfo 等)、/sys(sysfs)はデバイスツリーを公開する。
仮想マシン(VM)
ハイパーバイザー上で動く、独立したゲスト OS(カーネルを含む)を持つ仮想的なコンピュータ。ホストと異なる OS も動かせるが、起動が遅くリソース消費も大きい。
リモート GUI(DISPLAY/xauth/X11 転送)
リモートの GUI アプリを手元の画面に表示する仕組み。DISPLAY 環境変数が表示先の X サーバーを指し、xauth が接続の認可を管理する。実務では ssh -X(X11 転送)で SSH トンネル越しに表示するのが定番。
xargs/tee
xargs は流れてきたテキストを次のコマンドの引数に変換する(find … | xargs rm)。標準入力を読まないコマンドへ値を渡す橋渡し。tee はストリームを画面とファイルの両方へ複製する。
前提: find、端末切断後の実行継続(nohup/screen/tmux)、標準入出力(stdin/stdout/stderr)
増分バックアップ
直前のバックアップ(完全または増分)以降に変更されたデータだけを複製するバックアップ方式。各回のバックアップは最小で済むが、リストアには完全バックアップ以降の全増分を順番に適用する必要がある。
関連: 完全バックアップ
ソースからのビルドとインストール
ソースコードを取得(git clone や tar 展開)し、必要に応じて patch を当て、configure でビルド設定を生成したうえで make・make install によりコンパイルとインストールを行う一連の手順。パッケージ管理システムを介さずソフトウェアを導入する方法。
システムクロックとハードウェアクロック(date/hwclock)
Linux には OS が刻むシステムクロック(date/timedatectl)と、マザーボード上のハードウェアクロック(hwclock)の2つの時計がある。hwclock --systohc はシステム→ハードウェアへ書き込み、--hctosys は逆向き。
クラウド上の Linux 運用
クラウドの Linux サーバーは OS の外側(電源・ネットワーク入口・物理配置)を事業者が握る。管理コンソールはインターネット経由のため多要素認証/ワンタイムパスワードで守る(漏れると全サーバーを失う)。リージョン選択は法規制・データ主権に直結し、揮発性ストレージは停止で消えるため永続データを置かない。事業者のメンテナンス(再起動)に備え自動復帰を設計する。
コンテナ(Linux)
ホスト OS のカーネルを共有し、名前空間でプロセスを隔離する軽量な実行環境。ゲスト OS を起動しないため高速・軽量だが、ホストと同系統の OS しか動かせない。
前提: カーネル、名前空間(namespaces)
デフォルトルート(デフォルトゲートウェイ)
宛先が自分のネットワーク外のパケットを託す出口。ip route(または route -n)で確認し、無いと外部へ一切出られない。ルーティングテーブルの誤りは ip route del/add default で訂正する。
dpkg(deb パッケージ直接操作)
apt の下で働く低レベルツール。deb ファイルを直接扱う(-i 導入・-r 削除・-P 設定ごと削除=purge)。依存関係は解決しない。照会は -l 一覧・-L パッケージ→ファイル・-S ファイル→パッケージ。dpkg-reconfigure で対話設定をやり直す。
前提: パッケージとリポジトリ
終了ステータス($?/exit)
コマンドの成否を表す数値。$? で直前の終了ステータスを参照し、0 が成功・0以外が失敗。スクリプト自身の戻り値は exit N で指定する。&& や || による分岐の土台。
基本ファイル操作(cp/mv/rm/mkdir)
ファイル・ディレクトリを操作する基本コマンド。cp コピー、mv 移動(=名前変更)、rm 削除、mkdir/rmdir はディレクトリの作成/空ディレクトリの削除、touch は空ファイル作成/時刻更新、file は種類判定。ディレクトリごとの操作には -r(再帰)が要る。
コマンド履歴(history)
過去に実行したコマンドの記録。history で一覧、!番号 で再実行、!! で直前を再実行。ログアウト時に ~/.bash_history へ保存される。
inode
ファイルの実体(サイズ・所有者・パーミッション・データ位置など)を管理するメタ情報。ファイル名は inode に付けたラベルにすぎない。ls -i で inode 番号を表示でき、番号が同じならハードリンク。
前提: パーミッションと所有者
ISO イメージ
光学ディスクの内容を1ファイルにまとめたイメージ形式。Linux のインストールメディアとして配布され、DVD や USB に書き込むか仮想マシンに直接マウントして起動する。
lv 系コマンド(論理ボリューム操作)
LVM で論理ボリューム(LV)を扱うコマンド群。lvcreate で VG から LV を切り出し、lvextend/lvresize で拡張、lvdisplay/lvs で確認する。
前提: LVM(論理ボリューム管理)
8進数(パーミッション表記)
0〜7の8種の数字で表す記数法。Linux のパーミッションは r=4・w=2・x=1 を足した8進3桁で表す(rwxr-xr-- は 754)。
前提: パーミッションと所有者
OSS のコミュニティとエコシステム
OSS を支える分散型の開発体制。メンテナー(取り込みの最終判断者)を中心に世界中のコントリビューターがパッチ/プルリクエストを送る。意思疎通はメーリングリスト(LKML 等)・掲示板・開発サイト(イシュートラッカー)。ディストリビューションは上流(アップストリーム)を統合してユーザーへ届ける結節点。
前提: ディストリビューション
プロセス監視(top/ps/pstree/uptime)
稼働中プロセスと負荷を見るコマンド群。top はリアルタイムの CPU/メモリ上位、ps はスナップショット(ps aux)、pstree は親子ツリー、uptime は稼働時間とロードアベレージ。
関連: ロードアベレージ
引用符(シングル/ダブル/バッククォート)
シングルクォート '…' はすべて文字どおり(変数展開しない)、ダブルクォート "…" は $変数 を展開、バッククォート `…`(=$(…))はコマンド置換で出力に置き換わる。
関連: コマンド置換
リダイレクト(>/>>/2>&1)
ストリームの入出力先を付け替える。> は標準出力をファイルへ上書き、>> は追記、< はファイルを入力に。両方をまとめて保存するのは > file 2>&1(順序が重要)。捨て先は /dev/null。
シェル起動ファイル(ログイン/非ログインシェル)
ログインシェル(ssh ログイン等)は /etc/profile → ~/.bash_profile・~/.bash_login・~/.profile の最初の1つだけを読む。非ログインシェル(端末の新規タブ等)は /etc/bash.bashrc → ~/.bashrc を読む。環境変数は profile 系、alias や関数は .bashrc に置くのが定石。ログアウト時は ~/.bash_logout。
デバイス管理(udev/sysfs/D-Bus)
デバイスの抜き差し(ホットプラグ)を検知し、/dev のデバイスファイルを動的に作成・命名する仕組みが udev。sysfs(/sys)はカーネルが公開するデバイスツリー、D-Bus はデスクトップ等へイベントを通知するプロセス間通信。
前提: カーネル
ulimit/TMOUT
ulimit はシェルとその子プロセスのリソース上限(-n ファイル数・-u プロセス数・-c core サイズ)。TMOUT は無操作で自動ログアウトする秒数で、放置端末対策として profile に設定する。
ワイルドカード(グロブ)
シェルがファイル名をパターンで展開する仕組み。* は0文字以上の任意文字列、? は任意の1文字、[a-c] は集合/範囲。正規表現の * とは意味が異なる。
前提: シェル(bash)
関連: 正規表現
絶対パスと相対パス
絶対パスは / から始まる完全な位置(/etc/hosts)、相対パスは現在地からの位置(./script.sh、../dir)。現在地は pwd で確認する。
関連: PATH
at/anacron
at は一度だけの実行予約(at 23:00・at now + 2 hours。atq で確認、atrm で取消。制限は at.allow/at.deny)。anacron は日単位以上の周期を間隔で管理し、電源オフで飛んだ実行を起動後に埋め合わせる(設定は /etc/anacrontab)。
エコシステムへの参加(バグ報告)
OSS への参加は段階的でよい。使用(それ自体が検証)→紹介→バグ報告→文書・翻訳・パッチ。良いバグ報告は環境(OS/バージョン)・期待動作・実動作・再現手順を添えてイシュートラッカーへ。コードを書かなくても貢献できる。
文字コードと iconv
文字を数値で表す方式。ASCII は英数記号の7ビット基本、Unicode は全世界の文字に番号を割り当てる規格でその代表的符号化が UTF-8(ASCII 互換・Linux 標準)。ISO-8859 は欧州向け、ISO-2022-JP は日本語メールの伝統。iconv -f 元 -t 先 で変換する(文字化けの救出)。
コマンド置換
コマンドの出力をその場に埋め込む記法。$(コマンド) または `コマンド`(バッククォート)で、FILES=$(ls *.log) のように結果を変数に取り込む。
cron/crontab(定期実行)
決まった時刻に処理を定期実行する仕組み。crontab -e で編集し、書式は「分 時 日 月 曜日 コマンド」。ユーザー分は /var/spool/cron/、システム分は /etc/crontab(ユーザー欄あり)や /etc/cron.d/、cron.{hourly,daily,weekly,monthly}/。利用制限は cron.allow/cron.deny(allow があれば allow 優先)。
docker(コンテナランタイム)
コンテナを作成・起動・停止するランタイム/ツール。docker run でイメージから起動、docker start/docker stop で既存コンテナを操作する。
前提: イメージ(Docker)
シェル関数
よく使う一連の処理に名前を付けて再利用する部品。name() { … } または function name { … } で定義し、関数内の $1 は関数自身の引数を指す。
前提: シェル(bash)
GnuPG(gpg)
ファイルの暗号化・復号・署名を行う公開鍵ツール。暗号化は受取人の公開鍵で行い(gpg -e -r 受取人)、受取人だけが秘密鍵で復号できる。署名は自分の秘密鍵で行う。鍵束は ~/.gnupg/、パスフレーズ管理は gpg-agent。
コピーレフト系ライセンス(GPL/AGPL/LGPL)
コピーレフト系ライセンス。GPL は最も代表的でリンクした全体に公開義務が及ぶ。AGPL はネットワーク越しの提供(SaaS)にも公開義務を拡大。LGPL はライブラリ向けの緩和版で、リンクするだけなら伝播しない。
前提: コピーレフトとパーミッシブ
ジョブ制御(bg/fg/jobs)
シェルでコマンドをフォアグラウンド/バックグラウンドで動かす仕組み。末尾の & で背面起動、Ctrl+Z で一時停止、bg で背面再開、fg で前面へ、jobs で一覧。
前提: シェル(bash)
ジャーナリング
書き込み操作を先に記録してから実行する仕組み。電源断などでもファイルシステムの整合性が壊れにくい。ext3/ext4/XFS が備える。
前提: ファイルシステムと mkfs
レガシーなサービス管理(inetd/xinetd/chkconfig)
systemd 以前のサービス管理。inetd/xinetd は要求が来たときだけサービスを起動するスーパーサーバー(設定 /etc/xinetd.d/)。chkconfig/service は RHEL 系の旧来の自動起動管理・起動停止コマンド。不要サービスの停止は攻撃面を減らす基本。
ロードアベレージ
実行可能/実行中のプロセス数の平均で表すシステム負荷の指標。uptime や top で 1分/5分/15分の3つが表示され、CPU コア数と比べて過負荷かを判断する。
ロケール(LANG/LC_ALL)
言語・地域・文字コードの組(ja_JP.UTF-8)。優先順位は LC_ALL(全カテゴリ強制)> LC_*(個別)> LANG(既定)。スクリプトでコマンド出力を parse するときは LANG=C(英語・バイト順)に固定して環境差を消すのが定石。確認は locale(-a で一覧)。国際化(i18n)とローカライゼーション(l10n)の設定にあたる。
前提: 文字コードと iconv
logrotate
テキストログのローテーション・圧縮・削除を自動化する仕組み。全体設定 /etc/logrotate.conf +パッケージごとの /etc/logrotate.d/ で「週次・4世代・圧縮」などを定義し、定期実行される。
前提: パッケージとリポジトリ
man(マニュアル)
コマンドのオンラインマニュアルを表示する(man ls)。man -k キーワード(=apropos)でキーワードから関連コマンドを探せる。
オープンソース(OSS)
ソースコードが公開され、使用・改変・再配布の自由が保証されたソフトウェア(自由=無料ではなく制約からの自由)。権利放棄ではなく、著作権を根拠にライセンスで条件を課す著作物であり、無保証で継続的に開発される。
前提: source(ドットコマンド)
アカウント情報ファイル(/etc/passwd/shadow/group)
アカウント情報を持つ3ファイル。/etc/passwd はユーザー基本情報(全員が読める・パスワード本体は持たない)、/etc/shadow はハッシュ化パスワードとエージング情報(root のみ可読)、/etc/group はグループとメンバー。確認は id(UID/GID/所属)や getent(NSS 経由で LDAP 等も含む)。パスワード設定は passwd。
パーミッシブ系ライセンス(BSD/MIT/Apache/MPL)
非コピーレフト(パーミッシブ)系と中間形。BSD・MIT は最小限の条件で改変版をクローズド化できる。Apache License 2.0 は特許条項が明確。MPL はファイル単位のコピーレフト(改変ファイルだけ公開)。パブリックドメインは著作権を主張しない状態。
前提: コピーレフトとパーミッシブ
パッケージグループ
インストール時に用途別にまとめて選択できるパッケージの束(例:サーバー用途の最小構成、デスクトップ環境)。後から単位で追加もできる。
前提: パッケージとリポジトリ
rpm(RPM パッケージ直接操作)
yum の下で働く低レベルツールで、照会機能が豊富。-qa 全一覧・-qi 詳細・-qR 依存・-ql パッケージ→ファイル・-qf ファイル→パッケージ・-V 改ざん検証・--checksig 署名確認。-p を付けると未インストールの rpm ファイルを調べる。依存解決はしない。
前提: パッケージとリポジトリ
スクリプトのデバッグ(bash -x)
スクリプトが期待どおり動かないとき原因を調べる方法。bash -x は実行した各コマンドを変数展開後の形で表示(実行トレース)、bash -v は読み込んだ行をそのまま表示する。
前提: シェル(bash)
SSH 鍵の生成と管理(ssh-keygen/ssh-agent)
ssh-keygen が鍵ペアを生成する(-t ed25519 が現行推奨。RSA/ECDSA/Ed25519)。パスフレーズで秘密鍵ファイル自体を暗号化できる。ssh-agent は復号済みの鍵をメモリに保持し、ssh-add で登録すればパスフレーズ入力はセッション1回で済む。
ユーザへの通知
ログイン前後や稼働中のユーザーへメッセージを伝える仕組み。/etc/issue・/etc/issue.net はログインプロンプト前、/etc/motd はログイン直後に表示され、wall はログイン中の全ユーザーへ即時にメッセージを送る。shutdown はシステム停止前に警告を通知する。
virsh
libvirt を通じて仮想マシンを操作する CLI。virsh start/virsh shutdown で VM を起動・停止する。
X の管理3層(ディスプレイマネージャー/ウィンドウマネージャー/統合デスクトップ環境)
X の管理3層。ディスプレイマネージャー(GDM 等)はグラフィカルなログイン画面、ウィンドウマネージャーは窓の枠・移動・重なり、統合デスクトップ環境(GNOME/KDE)はアプリ一式を含むデスクトップ全体。startx はディスプレイマネージャーを使わず手動で X を起動する。
yum/dnf(RHEL 系)
RHEL/CentOS 系のリポジトリ利用パッケージ管理(後継が dnf)。yum update はパッケージ本体を更新(索引は自動更新)、install/remove/search/info。provides でファイルを提供するパッケージを逆引き、yumdownloader は取得のみ。リポジトリ定義は /etc/yum.repos.d/ の .repo ファイル、全体設定は /etc/yum.conf。
前提: パッケージとリポジトリ

