こんにちは、インフラエンジニアのryuです。
この記事は、LPIC-1の101試験に受かって、これから102試験の勉強を始める人に向けて書いています。101と102を並行して勉強している人にも役に立つ内容です。
102試験は、101試験と同じLPIC-1の試験なのに、勉強してみると手ざわりがかなり違います。101と同じやり方で進めて、思ったより点が取れずに戸惑う人も少なくありません。
そこでこの記事では、まず101と102の違いを整理し、出題の重みから勉強の順番を決めます。そのうえで、つまずきやすい3つの分野の進め方と、今日ターミナルでやっておきたい練習を紹介します。
試験の直前の見直し方は、別の記事のLPIC 102の直前対策で扱っています。この記事は、それより前の、勉強の計画を立てる段階の話です。
LPIC 102試験の形式と、101との違いとは?¶
まずは試験の形式を確認しておきます。LPIの公式サイトで案内されている内容は、次のとおりです。
| 項目 | 101試験 | 102試験 |
|---|---|---|
| 試験番号 | 101-500 |
102-500 |
| 試験時間 | 90分 | 90分 |
| 問題数 | 60問 | 60問 |
| 合格点 | 200〜800点のスコアで500点 | 200〜800点のスコアで500点 |
| 認定の条件 | 2試験の両方に合格してLPIC-1に認定 | 同左 |
形式は同じです。違うのは、出題される中身のほうです。
LPICの出題範囲は、主題(Topic)と、その中の項目(Objective)に分かれています。項目ごとに重みという数字が付いていて、重みが大きいほど多く出題されます。
LPIの説明では、重み1につき1問が出題される。どちらの試験も重みの合計は60で、問題数と同じになる。
101試験と102試験の主題を、重みの合計で並べると次のようになります。重みはLPIの公式の出題範囲(バージョン5.0)から計算しています。
| 101試験の主題 | 重み | 102試験の主題 | 重み |
|---|---|---|---|
| 101 システムアーキテクチャ | 8 | 105 シェルとシェルスクリプト | 8 |
| 102 Linuxのインストールとパッケージ管理 | 12 | 106 ユーザーインターフェースとデスクトップ | 4 |
| 103 GNUとUnixのコマンド | 26 | 107 管理タスク | 12 |
| 104 デバイス、ファイルシステム、FHS | 14 | 108 必須システムサービス | 12 |
| 109 ネットワークの基礎 | 14 | ||
| 110 セキュリティ | 10 |
101試験は、103のコマンドの主題だけで重みが26あります。全体の4割以上が、コマンドとその使い方の問題です。
一方で102試験は、6つの主題に重みが分かれていて、飛び抜けて大きい主題がありません。シェル、ユーザー管理、ログ、メール、時刻、ネットワーク、暗号化と、話題が次々に変わります。
101は「コマンド」、102は「設定と仕組み」¶
内容の面でも違いがあります。101試験は、ls・grep・find のようなコマンドを、どう組み合わせて使うかが中心でした。
102試験は、それに加えて、設定ファイルの中身や、サービスがどう動いているかが問われます。/etc/passwd の項目の並び、crontab の書式、名前解決の順番を決める設定ファイルなど、仕組みを分かっていないと解けない問題が増えます。
つまり、102試験は「コマンドを覚える試験」から「設定ファイルと仕組みを読む試験」に変わると考えておくと、勉強の進め方を決めやすくなります。
古い参考書には注意¶
LPIのブログでは、バージョン5.0の公開にあわせて、SQLやディスククォータなどの話題が出題範囲から外れたと説明されています。
古い版の参考書や問題集には、SQLの SELECT 文の問題が載っていることがあります。手元の教材が 102-500 に対応しているかは、最初に確かめておきましょう。
102の勉強が進まない原因¶
102の勉強で手が止まる人には、よく似た原因があります。代表的なものを見ていきます。
1つ目は、触ったことのない分野が多いことです。メール(MTA)、印刷、X11のように、学習用のLinuxでは普段使わない話題が並んでいます。
2つ目は、ネットワークの主題がLinuxの勉強に見えないことです。ポート番号やIPアドレスの計算は、CCNAの勉強に近い内容なので、後回しにされがちです。
3つ目は、101の勢いのまま問題集だけを回してしまうことです。102は設定ファイルの中身を問う問題が多いので、実際にファイルを開いて見たことがないと、選択肢を見ても判断できません。
101のあと間が空いてしまうのも、よくある原因です。101で覚えたコマンドを忘れてから102を始めると、シェルスクリプトの問題で、中に出てくる grep や cut の動きから思い出し直すことになります。
101に受かったら、できれば1〜2週間以内に102の勉強を始めましょう。101の知識が残っているうちに105のシェルに入ると、スクリプトの問題をかなり楽に解けます。
102-500の勉強の順番と期間の目安¶
ここからは、勉強の順番を決めていきます。基本の考え方は、重みの大きい主題を先に、そして101の知識がそのまま使える主題から入ることです。
勉強時間の目安は人によって大きく違うので、ここでは平日1時間、休日2〜3時間をとれる人を想定した、6週間の例を紹介します。
| 週 | 主題 | 中心にすること |
|---|---|---|
| 1週目 | 105 シェルとシェルスクリプト | 環境変数、~/.bashrc などの設定ファイル、if・for・test の書き方 |
| 2週目 | 107 管理タスク | ユーザーとグループの管理、cron と at、ロケールとタイムゾーン |
| 3週目 | 109 ネットワークの基礎 | ポート番号、IPv4とIPv6、ip コマンド、名前解決の設定 |
| 4週目 | 108 必須システムサービス | 時刻の同期、ログ(rsyslog・journalctl)、MTAの基本、印刷 |
| 5週目 | 110 セキュリティと106 デスクトップ | sudo、SUID、SSHの鍵、GnuPG、X11の基本 |
| 6週目 | 全体の見直し | 問題集で主題ごとの正答率を出し、低い主題を解き直す |
シェルを最初にしているのは、101で覚えたコマンドの知識がそのまま使えるからです。ここで勢いをつけてから、ユーザー管理とネットワークの重い主題に進みます。
106のデスクトップは、重みの合計が4と小さいので、5週目にセキュリティと一緒に片づけます。時間が足りないときに削るのも、まずここです。
1週間の進め方¶
1つの主題は、次の3つを繰り返して進めるのがおすすめです。
最初の2〜3日で、参考書かeラーニングで主題の全体をひと通り読みます。次の2日で、出てきたコマンドと設定ファイルを、実際にターミナルで確かめます。週の最後に、その主題の問題を解いて、間違えたところだけを読み直します。
問題集を何周しても点数が伸びないときは、解き方そのものを見直したほうがいい場合があります。その場合は、LPICの問題集で点数が伸びないときの記事を参考にしてください。
つまずきやすい3つの分野の進め方¶
ここでは、102試験で特につまずく人が多い3つの分野について、進め方を紹介します。
シェルスクリプトは「読む」より「書いて動かす」¶
105.2のスクリプトの項目では、短いスクリプトを読んで、何が表示されるかを答える問題が出ます。$#・$@・$? のような特殊な変数や、test コマンドの書き方を覚えていないと解けません。
これは、参考書を読むだけでは身につきにくい分野です。5行くらいのスクリプトを自分で書いて動かすと、変数の意味が一気に分かるようになります。環境変数の基本は、exportコマンドの使い方の記事でも説明しています。
ネットワークは名前解決の流れを押さえる¶
109の主題は、重みの合計が14あり、102試験でいちばん大きい主題です。ポート番号やIPアドレスの知識に加えて、Linuxの設定ファイルが問われます。
特に押さえておきたいのが、名前解決の流れです。/etc/hosts を先に見るのか、DNSサーバーに問い合わせるのかは、/etc/nsswitch.conf の hosts: の行で決まります。DNSサーバーの指定は /etc/resolv.conf に書かれます。
この3つのファイルの役割を区別できると、109.4の問題はかなり解きやすくなります。ip コマンドの使い方は、ipコマンドの記事にまとめています。
メールと時刻は、ファイル名とコマンド名を表で覚える¶
108のメールと時刻の項目は、実際にメールサーバーを立てたことがないと、イメージがわきにくい分野です。
ただ、問われるのは深い設定ではなく、sendmail 互換のコマンドや、~/.forward、/etc/aliases と newaliases の関係のような基本です。時刻なら、date・hwclock・timedatectl と、NTPやchronyの役割が中心です。
この分野は、深追いせずに、ファイル名とコマンド名を表にまとめて覚えるくらいで十分です。そのぶんの時間を、重みの大きいユーザー管理とネットワークに回しましょう。
今日やる練習:ターミナルで3つ試してみよう¶
ここからは、今日のうちにターミナルで試しておきたい練習です。手元のLinuxか、ブラウザで動くLinuxの練習環境で試せます。
1. 引数を数えて判定するスクリプトを書く¶
まずは105.2の練習です。引数の数を表示し、それぞれがファイルかどうかを判定するスクリプトを書いてみます。
cat > args.sh <<'EOF'
#!/bin/bash
echo "引数の数: $#"
for a in "$@"; do
if [ -f "$a" ]; then
echo "$a はファイルです"
else
echo "$a はファイルではありません"
fi
done
EOF
chmod +x args.sh
./args.sh /etc/passwd /etc /nothing
echo $?
実行すると、最初に 引数の数: 3 と表示されます。続いて、/etc/passwd はファイル、/etc はディレクトリなのでファイルではない、/nothing は存在しないのでファイルではない、と表示されます。
[ -f ファイル名 ] は、通常のファイルが存在するときだけ真になります。ディレクトリを判定したいときは -d を使います。最後の echo $? は、スクリプトの終了ステータスで、最後に実行した echo が成功しているので 0 になります。
2. 名前解決の設定を見る¶
次は109.4の練習です。名前解決に関係する設定ファイルを、順番に開いてみます。
# 名前解決をどの順番で行うかを確認する
grep hosts /etc/nsswitch.conf
# 自分のマシンに書かれた名前とIPアドレスの対応を確認する
cat /etc/hosts
# 問い合わせ先のDNSサーバーを確認する
cat /etc/resolv.conf
# nsswitch.conf の設定に従って名前を引く
getent hosts localhost
hosts: の行に files dns のように書かれていれば、先に /etc/hosts を見て、見つからなければDNSに問い合わせます。環境によっては、files と dns のあいだに別の項目が入っていることもあります。
3. 時刻とログを確かめる¶
最後は108の練習です。時刻の確認と、ログへの書き込みを試してみます。
# 現在の時刻を表示する
date
# タイムゾーンとNTPの同期状態を確認する(systemdが動いている環境)
timedatectl
# ログにメッセージを書き込む
logger "LPIC 102 practice"
# 直近のログを確認する(systemdが動いている環境)
journalctl -n 5
logger で書き込んだメッセージが、journalctl の結果に出ていれば成功です。systemdが動いていない環境では、/var/log/syslog や /var/log/messages に書き込まれることがあります。ログの基本は、syslogの記事も参考になります。
確認問題3問¶
ここまでの内容を、オリジナルの問題3問で確認してみましょう。
問題1¶
シェルスクリプトの中で、スクリプトに渡された引数の個数が入っている特殊な変数はどれでしょうか。
- A.
$0 - B.
$# - C.
$? - D.
$$
正解:B
$#には引数の個数が入ります。$0はスクリプト自身の名前、$?は直前のコマンドの終了ステータス、$$は実行中のシェルのプロセスIDです。
問題2¶
名前解決のときに、/etc/hosts とDNSのどちらを先に参照するかを決めている設定ファイルはどれでしょうか。
- A.
/etc/resolv.conf - B.
/etc/hostname - C.
/etc/nsswitch.conf - D.
/etc/networks
正解:C 参照の順番は
/etc/nsswitch.confのhosts:の行で決まります。/etc/resolv.confは問い合わせ先のDNSサーバーを指定するファイルで、順番は決めていません。
問題3¶
ユーザー taro のパスワードの有効期限に関する情報を一覧で表示するコマンドはどれでしょうか。
- A.
usermod -l taro - B.
chage -l taro - C.
id taro - D.
groups taro
正解:B
chage -lで、最終変更日や有効期限などのパスワードの期限の情報を表示できます。usermod -lはログイン名を変更するオプションで、idとgroupsは所属するグループを表示します。
もっと問題を解きたい人は、LPIC 102試験の練習問題10問や、ユーザー管理の練習問題、cronとatの練習問題にも挑戦してみてください。
InfraAcademyで102の勉強を続ける¶
InfraAcademyでは、LPICの勉強を、読む・打つ・解くの3つで続けられます。
ブラウザで動くLinuxの練習環境では、今日の練習のようなスクリプトやコマンドを、手元にサーバーを用意しなくても試せます。講座には、102試験のシェルとスクリプトや、ユーザーインターフェースとデスクトップを扱うものもあります。
問題演習は、InfraAcademyの資格模擬問題にある「(無料)LPICの練習問題で毎日トレーニング300問」がおすすめです。主題ごとの正答率を見ながら、6週目の見直しに使ってください。
Linuxをどの順番で学ぶかを全体で確認したい人は、InfraAcademyのLinuxロードマップも見てみてください。
まとめ¶
今回は、LPIC 102試験の勉強方法を、101試験との違いから整理しました。
- 形式は101と同じで、90分60問、500点で合格
- 101はコマンドの主題に重みが集中し、102は6つの主題に重みが分かれている
- 102は設定ファイルと仕組みを問う問題が増えるので、実際にファイルを開いて確かめる
- 重みの大きいネットワーク・ユーザー管理・ログを優先し、デスクトップは深追いしない
- 古い参考書には、範囲から外れたSQLの問題が載っていることがある
LPIC全体の勉強の進め方は、中心の記事のLPICの勉強方法にまとめています。もし101の結果が思わしくなかった人は、LPIC101に落ちたときの記事も参考にしてください。
102は範囲が広いぶん、計画を立てて進めれば、着実に点数が積み上がる試験です。今日はまず、args.sh を書いて動かすところから始めてみてください。



