LPIC Level1 復習ラジオ 24:LPIC Level1総まとめ
音声
目次
24回分を一枚の地図にする
このシリーズでは、Linuxの仕組み、基本コマンド、bash、そしてLPIC Level1で混同しやすい知識を24回に分けて復習してきました。最終回では、個別の暗記を一つの流れへつなげます。
この復習ラジオは、教科書や問題演習を置き換えるものではありません。普段の勉強で疲れたときに、重要語を思い出し、知識同士のつながりを戻すための軽い復習用です。
Linuxを扱う大きな流れ
電源投入
↓
BIOS・UEFI
↓
ブートローダー
↓
Linuxカーネル
↓
init・systemd
↓
サービスとログ
↓
シェルからコマンドを実行
↓
ファイル・プロセス・ネットワークを操作
問題を見たときの四つの視点
| 視点 | 考えること | 代表例 |
|---|---|---|
| 対象 | ファイル、プロセス、サービス、デバイス、ネットワークのどれか | ls、ps、systemctl、lsblk、ip |
| 状態 | 存在するか、動作中か、接続済みか、権限があるか | test、ps、ss、ls -l |
| 設定 | どの設定ファイルやオプションが状態を決めるか | /etc/fstab、サービスのunit、環境変数 |
| 記録 | 何が起きたかをどのログで確認するか | journalctl、/var/log |
24回の一行振り返り
| 回 | テーマ | 一行で思い出す |
|---|---|---|
| 01 | Linuxとは | カーネルが中核、シェルが窓口、ディストリビューションが利用できる形へまとめる |
| 02 | ハードウェアと起動 | CPU・メモリ・ストレージを初期化し、BIOS・UEFIから起動処理が始まる |
| 03 | Linuxの起動 | ブートローダー、カーネル、PID 1、サービスの順につなげる |
| 04 | ファイルシステム | データ、inode、マウント、UUID、fstabを一つの仕組みとして見る |
| 05 | FHS | 設定は/etc、変化するデータは/var、利用者は/home |
| 06 | ユーザーと権限 | UID・GIDと、所有者・グループ・その他へのrwxを確認する |
| 07 | ネットワーク基礎 | IPで宛先、ARPで同一リンク、DNSで名前、DHCPで設定、経路表で転送先を決める |
| 08 | パッケージ管理 | dpkg・rpmは個別操作、apt・dnfはリポジトリと依存関係を扱う |
| 09 | ファイル操作 | 一覧、複製、移動、削除、作成、リンクを対象と影響範囲で区別する |
| 10 | ファイル閲覧 | 全体はcat、長文はless、先頭はhead、末尾はtail、件数はwc |
| 11 | 検索 | 中身はgrep、ファイル自体はfind、データベース検索はlocate |
| 12 | テキスト処理 | 列はcut、並べるsort、隣接重複はuniq、文字変換はtr |
| 13 | 圧縮・アーカイブ | tarでまとめ、gzip・bzip2・xzで圧縮する |
| 14 | プロセス管理 | ps・topで確認し、killでシグナル、jobs・bg・fgでシェルのジョブを操作する |
| 15 | ディスク管理 | dfはファイルシステム、duはパス、lsblkはデバイス、findmntはマウント関係 |
| 16 | ネットワークコマンド | ip、ping、ss、digを使い、層を上げながら切り分ける |
| 17 | bashの基本 | PATH、変数、export、alias、historyはシェルの実行環境を形作る |
| 18 | リダイレクトとパイプ | 0・1・2の入出力を、ファイルや次のコマンドへ接続し直す |
| 19 | ワイルドカードと正規表現 | ワイルドカードはファイル名展開、正規表現は文字列パターン |
| 20 | パーミッション総復習 | 数値表記、umask、特殊ビットを通常ファイルとディレクトリで区別する |
| 21 | systemd総復習 | unitの現在状態、自動起動設定、依存関係、journalを分けて確認する |
| 22 | ネットワーク総復習 | リンク、アドレス、経路、ARP、DNS、ポート、サービスの順で調べる |
| 23 | ファイルシステム総復習 | ファイル名、inode、データ、UUID、fstab、二種類のリンクを結び付ける |
| 24 | 総まとめ | 個別の暗記を、対象・状態・設定・記録という共通の考え方へ戻す |
第1章 Linuxの基礎
第1章では、Linuxが動作する土台と、管理対象の基本概念を確認しました。
01. Linuxとは
| 用語 | 要点 |
|---|---|
| OS | ハードウェアを管理し、アプリケーションが動作する基盤を提供する |
| Linux | 厳密にはカーネルを指すことがあり、一般にはLinuxを使ったOS全体を指すこともある |
| カーネル | CPU、メモリ、デバイス、プロセス、ファイルシステムなどを管理する中核 |
| シェル | 利用者の入力を解釈し、コマンドを実行するプログラム |
| GNU | bashやGNU Coreutilsなど、多くの基本ツールを提供するプロジェクト |
| ディストリビューション | カーネル、ツール、パッケージ管理、設定などをまとめた配布形態 |
02. ハードウェアと起動
- CPUは命令を実行し、メモリは実行中のプログラムやデータを保持します。
- SSDやHDDは、電源を切っても残るデータを保存します。
- BIOSとUEFIは、起動時にハードウェアを初期化し、次の起動処理へ制御を渡します。
- MBRとGPTは、ディスクのパーティション情報を管理する方式です。
- UEFI環境では、EFIシステムパーティションが起動に使われます。
03. Linuxの起動
ファームウェア → ブートローダー → カーネル → init/systemd → target・service
systemdを採用する環境では、systemdがPID 1として起動し、unitの依存関係に基づいてサービスやマウントなどを管理します。
04・05. ファイルシステムとFHS
| 場所・用語 | 要点 |
|---|---|
/ | ディレクトリツリーの起点 |
/etc | ホスト固有の設定ファイル |
/usr | 共有可能なプログラムや静的データを置く階層 |
/var | ログ、スプール、キャッシュなど変化するデータ |
/home | 一般ユーザーのホームディレクトリ |
/tmp | 一時ファイル |
/proc | プロセスやカーネル情報を表す仮想ファイルシステム |
/sys | デバイスやカーネルオブジェクトの情報を表す仮想ファイルシステム |
| inode | 所有者、権限、サイズ、時刻、データ位置などを管理する。通常ファイル名は持たない |
| UUID | ファイルシステムを安定して識別するために使う |
06. ユーザーと権限
- UIDはユーザー、GIDはグループを数値で識別します。
- rootは特権ユーザーで、sudoは設定に基づいて別ユーザーとしてコマンドを実行します。
- パーミッションは、所有者、グループ、その他の三組に対してrwxを設定します。
- umaskは、新規作成時の権限から無効にするビットを決めます。
- SUID、SGID、Sticky Bitは通常のrwxに加わる特殊ビットです。
07. ネットワーク基礎
- IPアドレスはネットワーク層で相手を識別し、MACアドレスは同一リンク上の通信で使われます。
- ARPはIPv4アドレスに対応するMACアドレスを調べます。
- DNSは名前とIPアドレスなどの情報を対応付けます。
- DHCPはIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーなどを配布できます。
- ルーティングテーブルは、宛先ごとに次の送信先とインターフェースを決めます。
08. パッケージ管理
| 系統 | 低レベルツール | 依存関係を扱う上位ツール |
|---|---|---|
| Debian系 | dpkg | apt |
| RPM系 | rpm | dnf、yum |
リポジトリは、パッケージとメタデータを配布する場所です。低レベルツールは個別パッケージの操作に強く、上位ツールはリポジトリ検索や依存関係の解決を行います。
第2章 Linuxコマンド
コマンドは、名前だけでなく「標準入力を受けるのか」「ファイル名を引数に取るのか」「結果を標準出力へ出すのか」を意識すると、パイプやリダイレクトへつなげやすくなります。
09・10. ファイル操作と閲覧
| 目的 | 代表コマンド | 頻出ポイント |
|---|---|---|
| 一覧表示 | ls | -l、-a、-i |
| コピー | cp | ディレクトリには-rまたは-R |
| 移動・改名 | mv | 同一ファイルシステム内の改名と、別領域への移動を区別する |
| 削除 | rm | ディレクトリには-r。復元機能ではない |
| 作成 | mkdir、touch | mkdir -p、touchは時刻更新にも使う |
| リンク | ln | lnはハードリンク、ln -sはシンボリックリンク |
| 全体表示 | cat | 短いファイルや結合向き |
| ページ表示 | less | 長い出力の閲覧や検索向き |
| 先頭・末尾 | head、tail | tail -fで追跡表示 |
| 数える | wc | -l行数、-w単語数、-cバイト数 |
11. 検索
grep -R "ERROR" /var/log
find /home -type f -name '*.log'
locate ssh_config
which python3
whereis bash
grepは、ファイルの中身や標準入力からパターンに一致する行を探します。findは、現在のファイルシステムをたどり、名前、種類、サイズ、時刻、所有者などの条件で探します。locateはデータベースを使って高速にパス名を検索しますが、データベースが古い可能性があります。whichはPATHから実行されるコマンドを探し、whereisはバイナリ、ソース、manページなどの候補を探します。
12. テキスト処理
cut -d: -f1 /etc/passwd
sort names.txt | uniq -c
tr 'a-z' 'A-Z' < input.txt
| コマンド | 要点 |
|---|---|
cut | 区切り文字や文字位置を基準に列を切り出す |
sort | 行を並べ替える。-nは数値順 |
uniq | 隣接する重複行を処理するため、通常はsortと組み合わせる |
tr | 文字の変換、削除、連続文字の圧縮を行う |
13. 圧縮・アーカイブ
| 形式・コマンド | 役割 | 代表例 |
|---|---|---|
tar | 複数ファイルを一つのアーカイブへまとめる | tar -cvf files.tar dir/ |
gzip | gzip形式で圧縮する | gzip file |
bzip2 | bzip2形式で圧縮する | bzip2 file |
xz | xz形式で圧縮する | xz file |
zip | アーカイブと圧縮をまとめて行える | zip -r files.zip dir/ |
tarの基本は、作成がc、展開がx、一覧がt、ファイル指定がfです。gzipはz、bzip2はj、xzはJを組み合わせます。
14. プロセス管理
psはある時点のプロセス一覧、topは継続的な状態表示です。killはPIDへシグナルを送り、killallは名前で対象を選びます。- まず通常終了を求めるSIGTERMを使い、必要な場合に限ってSIGKILLを検討します。
jobs、bg、fgは、現在のシェルが管理するジョブを操作します。niceは起動時、reniceは実行中のプロセスのnice値を変更します。
15・16. ディスクとネットワーク
| 確認対象 | 代表コマンド |
|---|---|
| ファイルシステムの使用量 | df -h |
| ディレクトリやファイルの使用量 | du -sh |
| ブロックデバイス | lsblk |
| UUID・ファイルシステム種別 | blkid、lsblk -f |
| IPアドレス | ip address |
| ルーティング | ip route |
| 疎通 | ping |
| 待受・ソケット | ss -lntup |
| 経路 | traceroute |
| DNS | dig、host |
| HTTPなどの取得 | curl、wget |
第3章 シェル
シェルの問題では、コマンドそのものだけでなく、シェルが実行前に何を展開し、どこへ入出力を接続するかを考えます。
17. bashの基本
| 用語 | 要点 |
|---|---|
| PATH | コマンド名から実行ファイルを探すディレクトリの一覧 |
| シェル変数 | 現在のシェルが保持する変数 |
| 環境変数 | 子プロセスへ渡される環境の一部 |
export | 変数を子プロセスの環境へ渡せるようにする |
alias | 短い別名としてコマンド文字列を登録する |
history | コマンド履歴を表示、再利用する |
EDITOR=vim
export EDITOR
alias ll='ls -alF'
echo "$PATH"
history
18. リダイレクトとパイプ
| 記号 | 意味 |
|---|---|
> | 標準出力をファイルへ書き込み、既存内容を上書きする |
>> | 標準出力をファイル末尾へ追記する |
< | ファイルを標準入力として接続する |
2> | 標準エラー出力をリダイレクトする |
| | 左の標準出力を右の標準入力へ渡す |
tee | 標準入力を標準出力とファイルの両方へ複製する |
command > output.txt 2> error.txt
command > all.txt 2>&1
journalctl -u ssh.service | grep -i error | tee errors.txt
2>&1は、標準エラー出力を、その時点で標準出力が接続されている先へ複製します。リダイレクトは左から右へ処理されるため、順序が重要です。
19. ワイルドカードと正規表現
| 種類 | 主に処理するもの | 例 |
|---|---|---|
| ワイルドカード | シェルがファイル名へ展開する | *.log、file?.txt |
| 正規表現 | grepなどのプログラムが文字列パターンとして解釈する | ^ERROR、[0-9]$ |
*は任意個の文字、?は任意の1文字、[]は候補の1文字を表します。- 基本正規表現では、
^が行頭、$が行末、.が任意の1文字、*が直前要素の0回以上です。 - 正規表現をシェルに解釈させないため、grepのパターンは単一引用符で囲む習慣が役立ちます。
第4章 LPIC頻出知識
第4章では、複数の分野にまたがって繰り返し出てくる知識を、改めてまとめました。
20. パーミッション総復習
| 対象 | r | w | x |
|---|---|---|---|
| 通常ファイル | 内容を読む | 内容を変更する | プログラムとして実行する |
| ディレクトリ | 名前の一覧を読む | 項目を作成・削除する | 中へ入り、名前をたどる |
chmod 640 report.txt
chown alice:staff report.txt
umask 027
- 数値表記はrが4、wが2、xが1です。
- 通常ファイルは基準0666、ディレクトリは基準0777からumaskを無効化して考えます。
- SUIDは実行ファイルの所有者、SGIDは実行ファイルのグループ権限で実行させる働きがあります。
- ディレクトリのSGIDは、新規項目に親ディレクトリのグループを引き継がせる用途があります。
- Sticky Bitを設定した共有ディレクトリでは、通常、自分のファイルまたはディレクトリ所有者などだけが削除できます。
21. systemd総復習
systemctl status ssh.service
systemctl start ssh.service
systemctl enable ssh.service
systemctl is-active ssh.service
systemctl is-enabled ssh.service
journalctl -u ssh.service
journalctl -b
startは現在の起動、enableは次回以降の起動設定です。状態と自動起動設定は別なので、activeとenabledを混同しないようにします。
22. ネットワーク総復習
ip link
ip address
ip route
ip neigh
ping 192.0.2.1
dig example.com
ss -lntup
通信の切り分けでは、リンク、IPアドレス、経路、近隣解決、名前解決、待受、アプリケーションの順に確認すると整理しやすくなります。
23. ファイルシステム総復習
- ファイル名はディレクトリエントリ、メタデータはinodeが管理します。
df -hはデータ領域、df -iはinode使用量を確認します。/etc/fstabは、デバイス、マウントポイント、種別、オプション、dump、fsck順序の六フィールドです。- ハードリンクは同じinodeを参照し、シンボリックリンクは別のパス名を保持します。
重要用語の対比
似た言葉を単独で暗記するより、対にして違いを説明できるようにします。
| 対比 | 左側 | 右側 |
|---|---|---|
| カーネル / シェル | ハードウェアや資源を管理する中核 | コマンドを解釈して実行する利用者との窓口 |
| BIOS / UEFI | 従来型ファームウェア | より新しいファームウェア仕様でESPなどを利用 |
| MBR / GPT | 従来型のパーティション方式 | 多数のパーティションや大容量ディスクに対応しやすい方式 |
| init / systemd | 起動後の初期化を担う仕組みの総称や従来実装 | unitと依存関係を使うシステム・サービスマネージャー |
| serviceのstart / enable | 今すぐ起動する | 起動時に開始されるよう設定する |
| UID / GID | ユーザー識別番号 | グループ識別番号 |
| chmod / chown | 権限ビットを変更する | 所有者や所有グループを変更する |
| df / du | ファイルシステム全体の使用量 | 指定パス以下のファイル使用量 |
| dpkg・rpm / apt・dnf | 個別パッケージを直接操作する | リポジトリと依存関係を含めて管理する |
| ps / top | ある時点の一覧 | 継続的に更新される状態表示 |
| kill / killall | 主にPIDを指定 | 主にプロセス名を指定 |
| nice / renice | 起動時のnice値 | 実行中プロセスのnice値 |
| grep / find | 内容の行を検索 | ファイルやディレクトリ自体を検索 |
| which / whereis | PATH上の実行候補 | バイナリ、ソース、manページなどの候補 |
| gzip / tar | 主に一つのデータを圧縮 | 複数ファイルをアーカイブ |
| > / >> | 上書き | 追記 |
| 標準出力 / 標準エラー | 通常の結果、ファイル記述子1 | エラーメッセージ、ファイル記述子2 |
| ワイルドカード / 正規表現 | シェルがファイル名へ展開 | grepなどが文字列パターンとして解釈 |
| IPアドレス / MACアドレス | ネットワークを越えた論理的な宛先 | 同一リンク上で使うインターフェースの識別子 |
| DNS / DHCP | 名前と情報を対応付ける | ネットワーク設定を配布する |
| UUID / PARTUUID | 主にファイルシステムを識別 | パーティションを識別 |
| ハードリンク / シンボリックリンク | 同じinodeへの別名 | 別のパスを指す特殊ファイル |
目的から引くコマンド整理
問題文ではコマンド名ではなく、「確認したいこと」が書かれます。目的からコマンドを逆引きできるようにします。
| やりたいこと | まず考えるコマンド |
|---|---|
| 隠しファイルを含めて詳細表示したい | ls -la |
| ファイルのinode番号を見たい | ls -li、stat |
| ログの末尾を監視したい | tail -f |
| ファイル内のERRORを再帰検索したい | grep -R 'ERROR' DIR |
| 名前や種類を条件にファイルを探したい | find |
| 重複行の件数を数えたい | sort | uniq -c |
| 二つ目の列を取り出したい | cut、状況によってawk |
| アーカイブの中身を確認したい | tar -tf |
| プロセスを一覧表示したい | ps、継続監視ならtop |
| プロセスへ終了要求を送りたい | kill PID |
| バックグラウンドジョブを前面へ戻したい | fg |
| ディスク全体の空き容量を確認したい | df -h |
| どのディレクトリが容量を使っているか知りたい | du |
| ブロックデバイスの構成を見たい | lsblk |
| 現在のマウント関係を見たい | findmnt、mount |
| IPアドレスを確認したい | ip address |
| デフォルトゲートウェイを確認したい | ip route |
| ARP・近隣キャッシュを確認したい | ip neigh |
| 名前解決を確認したい | dig、host |
| ポートの待受を確認したい | ss -lntup |
| サービスの状態を確認したい | systemctl status |
| サービスのログを確認したい | journalctl -u UNIT |
| コマンドの詳細な使用方法を確認したい | man、info、--help |
確認の優先順位
- 読み取り専用の確認コマンドを使う
- 現在の状態と設定を比較する
- ログから時刻とエラーを確認する
- 変更内容と戻し方を考えてから操作する
覚え方と結び付け方
語呂合わせだけでなく、コマンド名の由来や処理の流れと結び付けると忘れにくくなります。
名前から覚える
| コマンド | 結び付け |
|---|---|
pwd | print working directory |
cp | copy |
mv | move |
rm | remove |
mkdir | make directory |
chmod | change mode |
chown | change owner |
ps | process status |
df | ファイルシステムの空き容量を見るものとして覚える |
du | disk usage |
ss | socket statistics |
流れで覚える
ファイルを探す
find → 対象ファイルそのもの
grep → 中身の一致行
通信を確認する
ip link → ip address → ip route → ip neigh → ping → dig → ss
サービスを確認する
systemctl status → journalctl -u → 設定確認 → restart/reload
一文字の対を作る
tar -cのcはcreate、tar -xのxはextract、tar -tのtはtable of contentsと結び付けます。grep -iは大文字小文字を無視、-vは一致を反転、-nは行番号です。headは頭、tailは末尾です。bgはbackground、fgはforegroundです。systemctl is-activeは現在、is-enabledは起動設定です。
権限は足し算で覚える
r = 4
w = 2
x = 1
7 = rwx
6 = rw-
5 = r-x
4 = r--
リンクは接続先で覚える
- ハードリンクはinodeへつながる。
- シンボリックリンクはパスへつながる。
試験で間違えやすいポイント
- Linuxとディストリビューションを同じものとして扱う。
Linuxはカーネルを指す場合があり、ディストリビューションはカーネルやツールなどをまとめたものです。 - シェル変数へ代入しただけで子プロセスにも渡ると思う。
環境として渡すには、通常exportが必要です。 startとenableを混同する。
startは現在の起動、enableは起動時の設定です。- ファイル名がinodeに保存されていると思う。
ファイル名とinode番号の対応はディレクトリエントリが持ちます。 dfとduが必ず同じ値になると思う。
対象と集計方法が異なり、削除済みファイルをプロセスが開いている場合などに差が出ます。- 空き容量だけを確認してinode不足を見落とす。
df -hに加えてdf -iを確認します。 - ディレクトリのrwxを通常ファイルと同じ意味で覚える。
ディレクトリのxは、名前をたどって中へアクセスする権限です。 - umaskを単純な十進数の引き算として扱う。
権限ビットを無効化するマスクとして考えます。 - rootなら常にすべての操作が無条件で成功すると思う。
読み取り専用マウント、能力制限、セキュリティ機構、壊れた状態など、別の制約があります。 killはプロセスを必ず強制終了するコマンドだと思う。
killはシグナル送信です。既定は一般にSIGTERMで、SIGKILLとは異なります。- nice値が大きいほど優先度が高いと思う。
一般にnice値が大きいほど、他の処理へ譲る度合いが大きくなります。 uniqがファイル全体の重複を自動的にまとめると思う。
隣接行を比較するため、通常は先にsortします。tar自体を圧縮方式だと思う。
tarはアーカイブが基本で、gzip、bzip2、xzと組み合わせます。>で追記できると思う。>は上書き、>>が追記です。- 標準出力と標準エラーを同じ経路だと思う。
ファイル記述子1と2で別々に扱えます。 - ワイルドカードと正規表現の
*を同じ意味だと思う。
ワイルドカードでは任意個の文字、正規表現では直前要素の0回以上です。 - pingが通ればアプリケーションも必ず使えると思う。
TCPポートの待受、ファイアウォール、サービス状態、認証などは別に確認します。 - DNSが失敗するとIP通信も不可能だと思う。
IPアドレスを直接指定した通信が可能な場合があります。 - ハードリンクを元ファイルへのショートカットだと思う。
複数の名前が同じinodeを対等に参照します。 - シンボリックリンクを削除すると参照先も消えると思う。
通常、リンク名だけが削除され、参照先は残ります。
問題を解くときの考え方
1. 主語を探す
問題が聞いている対象を特定します。ファイルの内容なのか、ファイル自体なのか、プロセスなのか、サービスなのかでコマンドが変わります。
2. 動詞をコマンドへ置き換える
| 問題文の動詞 | 候補 |
|---|---|
| 表示する | cat、less、ls、ps |
| 検索する | grep、find、locate |
| 変更する | chmod、chown、mv、renice |
| 確認する | stat、df、ip、ss、systemctl status |
| 抽出する | grep、cut、head、tail |
| 数える | wc、uniq -c |
3. オプションの作用を言葉にする
選択肢に似たオプションが並んでいる場合、丸暗記ではなく、「再帰する」「数値として並べる」「逆転する」「人間が読みやすい単位にする」など、作用を日本語に戻します。
4. 入力と出力を追う
cat access.log | grep '404' | cut -d' ' -f1 | sort | uniq -c | sort -nr
- ログ全体を出力する
- 404を含む行だけ残す
- 1列目を取り出す
- 同じ値を隣接させる
- 件数を数える
- 件数の多い順に並べる
5. 変更系コマンドでは影響範囲を見る
rm -rは下位階層まで削除します。chmod -Rは配下へ再帰的に権限を変更します。mount -aはfstabの対象をまとめて処理します。systemctl restartはサービスを停止して再起動するため、一時的な停止が起こり得ます。
代表的な五つの切り分け
コマンドが見つからない
type commandname
command -v commandname
echo "$PATH"
find /usr /opt -type f -name 'commandname' 2>/dev/null
- 入力ミスや大文字小文字を確認します。
- シェルの組み込み、alias、関数、外部コマンドのどれかを確認します。
- 実行ファイルが存在するか、PATHへ含まれているか、実行権限があるかを分けます。
- 未導入なら、どのパッケージが提供するかをパッケージ管理ツールで調べます。
Permission deniedが出る
id
namei -l /path/to/file
ls -ld /path /path/to /path/to/file
getfacl /path/to/file
- 実行ユーザーのUID、所属グループを確認します。
- 対象ファイルだけでなく、親ディレクトリをたどるx権限も確認します。
- 通常のrwx以外にACL、読み取り専用マウント、セキュリティ機構などの可能性もあります。
- すぐに
chmod 777へ逃げず、必要な主体へ必要な権限だけを与えます。
サービスが起動しない
systemctl status example.service
journalctl -u example.service -b
systemctl cat example.service
systemctl list-dependencies example.service
- 状態、終了コード、直近のログを確認します。
- 設定ファイルの構文、ポート重複、依存unit、実行ユーザーの権限を確認します。
- 設定だけを読み直せるサービスではreload、プロセスの再起動が必要ならrestartを使い分けます。
No space left on deviceが出る
df -h
df -i
du -xhd1 /var | sort -h
lsof +L1
- データ領域とinodeの両方を確認します。
duでディレクトリごとの使用量を絞ります。dfとduが大きく異なる場合、削除済みファイルをプロセスが開いていないか確認します。- 別ファイルシステムへ降りたくない場合は、
du -xやfind -xdevを利用します。
ネットワークへ接続できない
ip link
ip address
ip route
ip neigh
ping GATEWAY
dig example.com
ss -lntup
- インターフェースがUPか、正しいIPアドレスがあるかを確認します。
- 宛先への経路とデフォルトルートを確認します。
- 同一リンク上の相手なら、近隣解決の状態を確認します。
- IPアドレスでは通信できるが名前では失敗するなら、DNSを切り分けます。
- 相手へ到達できても接続できないなら、ポート待受、サービス、ファイアウォールを確認します。
30秒チェック
- ハードウェアやプロセスを管理するLinuxの中核は何でしょうか。
- コマンドを解釈して実行するプログラムは何でしょうか。
- systemd環境でサービスの現在の状態を確認するコマンドは何でしょうか。
systemctl startとsystemctl enableの違いは何でしょうか。- ファイル名とinode番号の対応を持つものは何でしょうか。
/etcと/varには、主に何が置かれるでしょうか。- パーミッションのr、w、xを数値にすると、それぞれいくつでしょうか。
- 通常ファイルとディレクトリで、xの意味はどう違うでしょうか。
- Debian系の低レベルと上位のパッケージ管理ツールは何でしょうか。
- ファイルの内容を検索するコマンドと、ファイル自体を検索するコマンドは何でしょうか。
uniqの前にsortを置くことが多いのはなぜでしょうか。- tarの作成、展開、一覧表示を表す文字は何でしょうか。
- プロセスへ通常終了を求める代表的なシグナルは何でしょうか。
dfとduは何を確認するでしょうか。- 標準出力と標準エラーのファイル記述子は何番でしょうか。
>と>>の違いは何でしょうか。- ワイルドカードと正規表現は、主に誰が解釈するでしょうか。
- IPアドレスから同一リンク上のMACアドレスを調べる仕組みは何でしょうか。
- ポートの待受状態を確認する代表的なコマンドは何でしょうか。
- ハードリンクとシンボリックリンクは、それぞれ何へつながるでしょうか。
答えを表示
- カーネル
- シェル
systemctl status UNIT- startは現在起動し、enableは起動時に開始されるよう設定する
- ディレクトリエントリ
/etcは設定、/varはログなど変化するデータ- rは4、wは2、xは1
- 通常ファイルのxは実行、ディレクトリのxは中の名前をたどる権限
dpkgとaptgrepとfinduniqは隣接する重複行を処理するため- 作成はc、展開はx、一覧はt
- SIGTERM
dfはファイルシステム、duは指定パス以下の使用量- 標準出力は1、標準エラーは2
>は上書き、>>は追記- ワイルドカードはシェル、正規表現はgrepなどのプログラム
- ARP
ss- ハードリンクはinode、シンボリックリンクはパス
最終要約
- Linuxは、カーネルを中心に、シェル、GNUツール、パッケージ管理などを組み合わせて利用します。
- 起動は、ファームウェア、ブートローダー、カーネル、systemd、サービスという流れで整理します。
- FHSは、設定、変化するデータ、ユーザーデータなどを置く場所の役割を整理します。
- パーミッションは、誰に対して、どの操作を許可するかをrwxで表します。
- コマンドは、対象、入力、処理、出力を追うとパイプへつなげやすくなります。
grepは中身、findはファイル自体を検索します。sort | uniq -cは、並べてから隣接する重複を数えます。psはある時点、topは継続表示です。dfはファイルシステム、duは指定パス以下の使用量です。- startとenable、activeとenabledは別の状態です。
- リダイレクトは標準入力、標準出力、標準エラーの接続を変更します。
- ワイルドカードはファイル名、正規表現は文字列パターンを扱います。
- ネットワークは、リンク、アドレス、経路、近隣、名前解決、ポート、アプリケーションの順で切り分けます。
- ハードリンクはinodeへ、シンボリックリンクはパスへつながります。
- 迷ったときはmanページで、コマンドの概要、書式、オプション、終了ステータス、関連項目を確認します。
参考資料
- Linux Professional Institute:LPIC-1 Exam 101 and 102 Objectives
- Linux Professional Institute Learning:LPIC-1 Exam 101
- Linux Professional Institute Learning:LPIC-1 Exam 102
- GNU Bash Reference Manual
- GNU Bash Reference Manual:Redirections
- GNU Bash Reference Manual:Shell Expansions
- GNU Coreutils Manual
- Filesystem Hierarchy Standard 3.0
- inode(7) — Linux manual page
- chmod(1) — Linux manual page
- chown(1) — Linux manual page
- umask(2) — Linux manual page
- grep(1) — Linux manual page
- find(1) — Linux manual page
- sort(1) — Linux manual page
- uniq(1) — Linux manual page
- tar(1) — Linux manual page
- ps(1) — Linux manual page
- kill(1) — Linux manual page
- df(1) — Linux manual page
- du(1) — Linux manual page
- fstab(5) — Linux manual page
- systemctl(1) — Linux manual page
- journalctl — systemd manual
- ip(8) — Linux manual page
- ss(8) — Linux manual page
- RFC 1122:Requirements for Internet Hosts