6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【コマンド集】LPIC-1 試験対策まとめ!全トピック解説

6
Posted at

はじめに

スクリーンショット 2026-04-03 23.23.41.png

こんばんは、mirukyです。
本記事はLPIC-1(101試験 + 102試験)の 全トピック・全サブトピック を公式試験要項(Objectives V5.0)に基づいて網羅した試験対策記事です。

各トピックの解説に加えて、試験で問われるコマンドを一覧でまとめています。
試験直前の最終確認にも使えるよう、できる限り簡潔かつ正確にまとめました。

LPIC-1 試験概要

項目 内容
取得条件 101試験 と 102試験 の両方に合格
試験バージョン 101-500 / 102-500(V5.0)
問題数 各試験 60問
試験時間 各試験 90分
合格ライン 500点 / 800点満点(約65%)
出題形式 選択式・複数選択式・穴埋め式
有効期間 5年
受験言語 日本語・英語 他
受験料 各試験 16,500円(税込)(出典:Pearson VUE公式マーケットプレイス)

101試験(101-500)

Topic 101:システムアーキテクチャ

101.1 ハードウェア設定の決定と構成(Weight: 2)

Linuxがハードウェアをどのように認識・管理するかを問われます。

重要ポイント

  • /proc/ :カーネルが提供する仮想ファイルシステム。CPU情報やメモリ情報を確認可能
  • /sys/ :sysfs。デバイス情報をツリー構造で提供
  • /dev/ :デバイスファイルが格納されるディレクトリ
  • udev :デバイスの動的管理を行うデーモン(/etc/udev/rules.d/
  • D-Bus :プロセス間通信の仕組み

コマンド集

# PCI デバイスの一覧
lspci
lspci -v          # 詳細表示

# USB デバイスの一覧
lsusb

# カーネルモジュールの一覧
lsmod

# カーネルモジュールのロード/アンロード
modprobe <モジュール名>
modprobe -r <モジュール名>    # アンロード

# CPU情報の確認
cat /proc/cpuinfo

# メモリ情報の確認
cat /proc/meminfo

# IRQ(割り込み)の確認
cat /proc/interrupts

# I/Oポートの確認
cat /proc/ioports

# DMAチャネルの確認
cat /proc/dma

101.2 システムのブート(Weight: 3)

BIOSからログインプロンプトまでのブートプロセスを理解する必要があります。

ブートシーケンス

BIOS/UEFI → ブートローダ(GRUB) → カーネル → initramfs → init/systemd → ログイン

重要ポイント

  • BIOS :MBRからブートローダを読み込む(レガシー)
  • UEFI :ESPパーティションからブートローダを読み込む
  • initramfs/initrd :カーネルがルートファイルシステムをマウントする前に必要なドライバ等を提供する一時的なファイルシステム
  • カーネルメッセージdmesgjournalctl -k で確認

コマンド集

# カーネルのブートメッセージを確認
dmesg
dmesg | less
dmesg | grep -i error

# systemdのジャーナルでカーネルメッセージを確認
journalctl -k

# ブートログの確認
journalctl -b           # 現在のブート
journalctl -b -1         # 前回のブート

101.3 ランレベル/ブートターゲットの変更とシャットダウン/リブート(Weight: 3)

SysVinit ランレベル

ランレベル 説明
0 シャットダウン(halt)
1 / S シングルユーザーモード(レスキュー)
2 マルチユーザー(Debian系ではフル機能)
3 マルチユーザー + ネットワーク(CUI)
4 未使用(カスタム用)
5 マルチユーザー + ネットワーク + GUI
6 リブート

systemd ブートターゲット

ターゲット 対応ランレベル
poweroff.target 0
rescue.target 1
multi-user.target 3
graphical.target 5
reboot.target 6

コマンド集

# 現在のランレベル確認
runlevel
who -r

# ランレベルの変更(SysVinit)
telinit 3
init 3

# デフォルトターゲットの確認・変更(systemd)
systemctl get-default
systemctl set-default multi-user.target
systemctl set-default graphical.target

# ターゲットの即時切り替え
systemctl isolate rescue.target
systemctl isolate multi-user.target

# シャットダウン・リブート
shutdown -h now        # 即時シャットダウン
shutdown -r now        # 即時リブート
shutdown -h +10        # 10分後にシャットダウン
shutdown -c            # スケジュール済みシャットダウンのキャンセル
poweroff               # シャットダウン
reboot                 # リブート
halt                   # システム停止

# ログイン中のユーザーにメッセージを送る
wall "サーバーを10分後にシャットダウンします"

Topic 102:Linuxのインストールとパッケージ管理

102.1 ハードディスクレイアウトの設計(Weight: 2)

重要ポイント

  • MBR(Master Boot Record):最大4つの基本パーティション、最大2TB
  • GPT(GUID Partition Table):パーティション数の制限が事実上なし、2TB超対応
  • スワップ領域:一般的にRAMの1〜2倍
  • LVM(Logical Volume Manager):柔軟なディスク管理

パーティション分割のベストプラクティス

マウントポイント 用途
/ ルートファイルシステム
/boot ブートローダ・カーネル(200〜500MB)
/home ユーザーのホームディレクトリ
/var ログ・スプール等の可変データ
/tmp 一時ファイル
swap スワップ領域
/boot/efi UEFI用ESPパーティション

102.2 ブートマネージャのインストール(Weight: 2)

GRUB2 の重要ファイル

ファイル/ディレクトリ 説明
/boot/grub/grub.cfg GRUB2の設定ファイル(自動生成、直接編集しない)
/etc/default/grub GRUB2のカスタム設定(こちらを編集)
/etc/grub.d/ メニューエントリのスクリプト

コマンド集

# GRUB2 の設定を再生成
grub-mkconfig -o /boot/grub/grub.cfg
# または
update-grub    # Debian系

# GRUB2 のインストール
grub-install /dev/sda

102.3 共有ライブラリの管理(Weight: 1)

コマンド集

# プログラムが使用する共有ライブラリを表示
ldd /bin/ls

# 共有ライブラリのキャッシュを更新
ldconfig

# 共有ライブラリのキャッシュ内容を表示
ldconfig -p

# 環境変数でライブラリパスを追加
export LD_LIBRARY_PATH=/opt/mylib:$LD_LIBRARY_PATH

重要ファイル

  • /etc/ld.so.conf :ライブラリの検索パスを定義
  • /etc/ld.so.conf.d/ :追加の設定ファイルディレクトリ
  • /etc/ld.so.cacheldconfig が生成するキャッシュ

102.4 Debianパッケージ管理(Weight: 3)

コマンド集

# --- dpkg ---
dpkg -i <パッケージ.deb>     # インストール
dpkg -r <パッケージ名>       # 削除(設定ファイルは残る)
dpkg -P <パッケージ名>       # 完全削除(設定ファイルも削除)
dpkg -l                      # インストール済みパッケージ一覧
dpkg -L <パッケージ名>       # パッケージに含まれるファイル一覧
dpkg -S <ファイルパス>       # ファイルがどのパッケージに属するか
dpkg -s <パッケージ名>       # パッケージの状態表示
dpkg --configure -a           # 未設定パッケージの設定
dpkg-reconfigure <パッケージ名>  # 再設定

# --- apt / apt-get ---
apt update                    # パッケージリストの更新
apt upgrade                   # インストール済みパッケージの更新
apt full-upgrade              # 依存関係を解決しつつ更新
apt install <パッケージ名>    # インストール
apt remove <パッケージ名>     # 削除
apt purge <パッケージ名>      # 完全削除
apt search <キーワード>       # パッケージ検索
apt show <パッケージ名>       # パッケージ情報表示
apt list --installed          # インストール済み一覧
apt autoremove                # 不要パッケージの自動削除

# --- apt-cache ---
apt-cache search <キーワード>    # パッケージ検索
apt-cache show <パッケージ名>    # パッケージ詳細
apt-cache depends <パッケージ名> # 依存関係

重要ファイル

  • /etc/apt/sources.list :リポジトリの定義
  • /etc/apt/sources.list.d/ :追加リポジトリ

102.5 RPMおよびYUMパッケージ管理(Weight: 3)

コマンド集

# --- rpm ---
rpm -ivh <パッケージ.rpm>    # インストール(v:詳細, h:進捗表示)
rpm -Uvh <パッケージ.rpm>    # アップグレード(未インストールならインストール)
rpm -e <パッケージ名>        # 削除
rpm -qa                      # インストール済みパッケージ一覧
rpm -qi <パッケージ名>       # パッケージ情報
rpm -ql <パッケージ名>       # パッケージに含まれるファイル一覧
rpm -qf <ファイルパス>       # ファイルがどのパッケージに属するか
rpm -qR <パッケージ名>       # 依存関係の表示
rpm -V <パッケージ名>        # パッケージの検証
rpm --import <GPGキー>       # GPGキーのインポート

# --- yum ---
yum install <パッケージ名>    # インストール
yum update                    # 全パッケージの更新
yum update <パッケージ名>     # 特定パッケージの更新
yum remove <パッケージ名>     # 削除
yum search <キーワード>       # 検索
yum info <パッケージ名>       # パッケージ情報
yum list installed            # インストール済み一覧
yum provides <ファイルパス>   # ファイルを提供するパッケージを検索
yum repolist                  # 有効なリポジトリ一覧
yum clean all                 # キャッシュの削除

# --- dnf(yumの後継)---
dnf install <パッケージ名>
dnf update
dnf remove <パッケージ名>
dnf search <キーワード>

# --- zypper(SUSE系)---
zypper install <パッケージ名>
zypper update
zypper remove <パッケージ名>
zypper search <キーワード>

重要ファイル

  • /etc/yum.repos.d/ :YUMリポジトリの設定ディレクトリ
  • /etc/yum.conf :YUMの設定ファイル

102.6 Linuxの仮想化ゲストとしての利用(Weight: 1)

重要ポイント

  • 仮想マシン(VM):完全な仮想化。KVM, Xen, VirtualBox等
  • コンテナ:OS レベルの仮想化。Docker, LXC等
  • クラウドインスタンス:クラウドプロバイダ上の仮想マシン
  • cloud-init:クラウドインスタンスの初期設定を自動化する仕組み
  • D-Bus machine-id:仮想マシンの一意識別子(/etc/machine-id

Topic 103:GNUとUnixのコマンド

Topic 103は101試験の中で 最も出題比率が高い トピック(Weight合計: 26)です。ここを確実に押さえることが合格への近道です。

103.1 コマンドラインでの操作(Weight: 4)

コマンド集

# 基本的なシェル操作
echo "Hello World"
echo $PATH                # 環境変数の表示
type ls                   # コマンドの種類を確認(内部/外部/エイリアス)
which ls                  # コマンドのパスを表示
whereis ls                # コマンド・マニュアル・ソースの場所

# 環境変数
env                       # 環境変数の一覧
export MY_VAR="value"     # 環境変数の設定
unset MY_VAR              # 環境変数の削除
set                       # シェル変数を含む全変数の一覧

# クォーティング
echo "変数は$HOMEです"     # ダブルクォート:変数は展開される
echo '変数は$HOMEです'     # シングルクォート:変数は展開されない
echo "今日は$(date)です"   # コマンド置換

# コマンド履歴
history                   # コマンド履歴の表示
!番号                     # 履歴番号で実行
!!                        # 直前のコマンドを再実行
!文字列                   # 指定文字列で始まる最新コマンドを実行

# マニュアル
man ls                    # マニュアルの表示
man -k keyword            # キーワードでマニュアル検索(aproposと同等)
info ls                   # infoページの表示

# uname
uname -a                  # カーネル情報の全表示
uname -r                  # カーネルバージョン

103.2 テキストストリームのフィルタ処理(Weight: 2)

コマンド集

# ファイル内容の表示
cat file.txt              # ファイル内容を表示
cat -n file.txt           # 行番号付きで表示
tac file.txt              # 逆順で表示(catの逆)

# ページング
less file.txt             # ページング表示(上下スクロール可)
more file.txt             # ページング表示(下方向のみ)

# 先頭・末尾の表示
head file.txt             # 先頭10行を表示
head -n 20 file.txt       # 先頭20行を表示
tail file.txt             # 末尾10行を表示
tail -n 20 file.txt       # 末尾20行を表示
tail -f /var/log/syslog   # リアルタイムで末尾を追跡

# テキスト処理
sort file.txt             # ソート
sort -r file.txt          # 逆順ソート
sort -n file.txt          # 数値としてソート
sort -k 2 file.txt        # 2番目のフィールドでソート
sort -t: -k3 -n /etc/passwd   # 区切り文字を指定してソート

uniq file.txt             # 連続する重複行を削除
sort file.txt | uniq -c   # 重複回数を表示

cut -d: -f1 /etc/passwd   # 区切り文字:でフィールド1を抽出
cut -c1-10 file.txt       # 1〜10文字目を抽出

paste file1 file2         # 2つのファイルを横に結合

wc file.txt               # 行数・単語数・バイト数を表示
wc -l file.txt            # 行数のみ
wc -w file.txt            # 単語数のみ

tr 'a-z' 'A-Z' < file.txt # 小文字を大文字に変換
tr -d '\r' < file.txt     # 改行コードCRを削除

sed 's/old/new/' file.txt          # 最初のoldをnewに置換
sed 's/old/new/g' file.txt         # 全てのoldをnewに置換
sed -i 's/old/new/g' file.txt      # ファイルを直接編集
sed '3d' file.txt                  # 3行目を削除
sed -n '5,10p' file.txt            # 5〜10行目を表示

awk '{print $1}' file.txt          # 1番目のフィールドを表示
awk -F: '{print $1, $3}' /etc/passwd   # :区切りで1,3フィールド
awk '$3 > 1000 {print $1}' file.txt    # 条件付き表示

# その他
nl file.txt               # 行番号付与
od file.txt               # 8進ダンプ
hexdump file.txt           # 16進ダンプ
split -l 100 file.txt     # 100行ごとにファイル分割
fmt file.txt              # テキストの整形
expand file.txt           # タブをスペースに変換
unexpand file.txt         # スペースをタブに変換

103.3 基本的なファイル管理(Weight: 4)

コマンド集

# ファイル・ディレクトリ操作
ls                        # 一覧表示
ls -la                    # 詳細+隠しファイル
ls -lh                    # 人間が読みやすいサイズ表示
ls -R                     # 再帰的に表示

cp file1 file2            # コピー
cp -r dir1 dir2           # ディレクトリを再帰的にコピー
cp -p file1 file2         # パーミッション・タイムスタンプを保持

mv file1 file2            # 移動/リネーム
rm file1                  # 削除
rm -r dir1                # ディレクトリを再帰的に削除
rm -f file1               # 強制削除
rm -rf dir1               # 強制再帰削除(注意!)

mkdir dir1                # ディレクトリ作成
mkdir -p dir1/dir2/dir3   # 親ディレクトリも含めて作成
rmdir dir1                # 空のディレクトリを削除

touch file1               # 空ファイル作成 / タイムスタンプ更新

# ファイルの種類を判別
file filename

# アーカイブ・圧縮
tar cvf archive.tar dir/           # tarアーカイブ作成
tar xvf archive.tar                # 展開
tar cvzf archive.tar.gz dir/       # gzip圧縮
tar xvzf archive.tar.gz            # gzip展開
tar cvjf archive.tar.bz2 dir/      # bzip2圧縮
tar xvjf archive.tar.bz2           # bzip2展開
tar cvJf archive.tar.xz dir/       # xz圧縮
tar xvJf archive.tar.xz            # xz展開
tar tvf archive.tar                # 内容の確認(展開せず)

gzip file                 # gzip圧縮(元ファイルは消える)
gunzip file.gz            # gzip展開
bzip2 file                # bzip2圧縮
bunzip2 file.bz2          # bzip2展開
xz file                   # xz圧縮
unxz file.xz              # xz展開

# cpio
find . -name "*.txt" | cpio -ov > archive.cpio   # アーカイブ作成
cpio -idv < archive.cpio                          # 展開

# dd(ディスクイメージの作成等)
dd if=/dev/sda of=/tmp/mbr.img bs=512 count=1     # MBRバックアップ

103.4 ストリーム、パイプ、リダイレクト(Weight: 4)

標準入出力

ストリーム ファイルディスクリプタ 説明
標準入力(stdin) 0 キーボード等からの入力
標準出力(stdout) 1 通常の出力
標準エラー出力(stderr) 2 エラーメッセージの出力

コマンド集

# リダイレクト
command > file              # 標準出力をファイルに(上書き)
command >> file             # 標準出力をファイルに(追記)
command 2> file             # 標準エラーをファイルに
command 2>> file            # 標準エラーをファイルに(追記)
command > file 2>&1         # 標準出力と標準エラーを同じファイルに
command &> file             # 同上(bash)
command < file              # ファイルを標準入力として渡す

# パイプ
command1 | command2         # command1の出力をcommand2の入力に
ls -la | grep ".txt"       # 例

# tee(標準出力に表示しつつファイルにも書き出す)
command | tee file          # 上書き
command | tee -a file       # 追記

# xargs(標準入力をコマンドの引数に変換)
find . -name "*.log" | xargs rm
cat list.txt | xargs -I {} cp {} /backup/

# ヒアドキュメント
cat << EOF
Hello
World
EOF

103.5 プロセスの生成・監視・終了(Weight: 4)

コマンド集

# プロセスの表示
ps                         # 現在のシェルのプロセス
ps aux                     # 全プロセス(BSD形式)
ps -ef                     # 全プロセス(System V形式)
ps aux | grep httpd        # 特定プロセスの検索

# リアルタイム監視
top                        # プロセスのリアルタイム監視
# top内の操作: q=終了, k=kill, M=メモリ順, P=CPU順, r=renice

# プロセスの終了
kill <PID>                 # プロセスにSIGTERMを送信(デフォルト)
kill -9 <PID>              # SIGKILL(強制終了)
kill -15 <PID>             # SIGTERM(正常終了要求)
kill -1 <PID>              # SIGHUP(設定再読み込み)
killall <プロセス名>       # 名前で全プロセスを終了
pkill <パターン>           # パターンに一致するプロセスを終了

# 主要なシグナル
# 1  SIGHUP   ハングアップ(設定再読み込み)
# 2  SIGINT   割り込み(Ctrl+C)
# 9  SIGKILL  強制終了(キャッチ不可)
# 15 SIGTERM  正常終了(デフォルト)
# 18 SIGCONT  一時停止からの再開
# 19 SIGSTOP  一時停止(キャッチ不可)
# 20 SIGTSTP  一時停止(Ctrl+Z)

# バックグラウンド・フォアグラウンド
command &                  # バックグラウンドで実行
jobs                       # バックグラウンドジョブ一覧
fg %1                     # ジョブ1をフォアグラウンドに
bg %1                     # ジョブ1をバックグラウンドで再開
# Ctrl+Z                  # フォアグラウンドのジョブを一時停止

nohup command &            # ログアウト後もプロセスを維持

# プロセスの監視
free -h                    # メモリ使用状況
uptime                     # 稼働時間とロードアベレージ
pgrep <パターン>           # パターンに一致するPIDを表示

# /proc/[PID] でプロセス情報を確認
ls /proc/1/                # PID 1のプロセス情報
cat /proc/1/cmdline        # コマンドライン引数

103.6 プロセスの実行優先度の変更(Weight: 2)

重要ポイント

  • nice値 の範囲:-20(最高優先度)〜 19(最低優先度)
  • デフォルトのnice値は 0
  • 一般ユーザーは nice値を上げる(優先度を下げる)ことのみ可能
  • rootのみ nice値を下げる(優先度を上げる)ことが可能

コマンド集

# nice値を指定してプロセスを起動
nice -n 10 command         # nice値10で起動
nice -n -5 command         # nice値-5で起動(rootのみ)

# 実行中のプロセスのnice値を変更
renice 10 -p <PID>         # PID指定で変更
renice -5 -u username      # ユーザーの全プロセスを変更

# topでnice値を確認・変更
top                        # NI列がnice値。r キーでreniceも可能

103.7 正規表現を使ったテキストファイルの検索(Weight: 3)

基本正規表現(BRE)

記号 意味
. 任意の1文字 a.c → abc, adc
* 直前の文字の0回以上の繰り返し ab*c → ac, abc, abbc
^ 行頭 ^Hello
$ 行末 world$
[ ] 文字クラス [abc] → a, b, c のいずれか
[^ ] 否定文字クラス [^0-9] → 数字以外
\ エスケープ \. → リテラルのドット

拡張正規表現(ERE)

記号 意味
+ 直前の文字の1回以上の繰り返し
? 直前の文字の0回または1回
{n} 直前の文字のn回の繰り返し
{n,m} 直前の文字のn〜m回の繰り返し
| OR(または)
( ) グループ化

コマンド集

# grep(基本正規表現)
grep "pattern" file.txt            # パターン検索
grep -i "pattern" file.txt         # 大文字小文字を無視
grep -v "pattern" file.txt         # パターンに一致しない行
grep -n "pattern" file.txt         # 行番号付き
grep -c "pattern" file.txt         # 一致した行数
grep -r "pattern" /dir/            # ディレクトリ再帰検索
grep -l "pattern" *.txt            # 一致するファイル名のみ表示
grep -w "word" file.txt            # 単語全体で一致

# egrep / grep -E(拡張正規表現)
grep -E "pattern1|pattern2" file.txt   # OR検索
egrep "pattern1|pattern2" file.txt     # 同上

# fgrep / grep -F(正規表現を使わない固定文字列検索)
grep -F "literal.string" file.txt
fgrep "literal.string" file.txt

103.8 基本的なファイル編集(Weight: 3)

viの操作モード

コマンドモード ←→ 入力モード
      ↓
 exモード(ラストラインモード)

vi コマンド一覧

モード切替

キー 動作
i カーソル位置の前から入力
a カーソル位置の後から入力
o 次の行に新しい行を挿入して入力
O 前の行に新しい行を挿入して入力
Esc コマンドモードに戻る

カーソル移動

キー 動作
h
j
k
l
0 行頭
$ 行末
gg ファイル先頭
G ファイル末尾
数字G 指定行に移動

編集

キー 動作
x 1文字削除
dd 1行削除(カット)
5dd 5行削除
yy 1行コピー(ヤンク)
5yy 5行コピー
p カーソルの後にペースト
P カーソルの前にペースト
u アンドゥ
Ctrl+r リドゥ
r 1文字置換
cw 単語を変更

exモード(:で入力)

コマンド 動作
:w 保存
:q 終了
:wq 保存して終了
:q! 保存せず強制終了
:set number 行番号表示
:%s/old/new/g 全行置換
:/pattern 前方検索
:?pattern 後方検索
n 次の検索結果
N 前の検索結果

Topic 104:デバイス、Linuxファイルシステム、FHS

104.1 パーティションとファイルシステムの作成(Weight: 2)

コマンド集

# パーティション操作
fdisk /dev/sda             # MBRパーティション管理(対話式)
gdisk /dev/sda             # GPTパーティション管理
parted /dev/sda            # MBR/GPT両対応

# ファイルシステムの作成
mkfs.ext4 /dev/sda1        # ext4
mkfs.xfs /dev/sda1         # XFS
mkfs.vfat /dev/sda1        # FAT32
mkfs -t ext4 /dev/sda1     # -tオプションでタイプ指定

# スワップ
mkswap /dev/sda2           # スワップ領域の作成
swapon /dev/sda2           # スワップの有効化
swapoff /dev/sda2          # スワップの無効化
swapon -s                  # スワップの状態確認

# ファイルシステムの種類
# ext2, ext3, ext4   :Linux標準
# XFS                :大容量ファイル向け
# Btrfs              :次世代ファイルシステム
# VFAT(FAT32)        :USBメモリ等
# exFAT              :大容量USBメモリ

104.2 ファイルシステムの整合性維持(Weight: 2)

コマンド集

# ファイルシステムのチェック・修復
fsck /dev/sda1             # ファイルシステムチェック(アンマウント状態で!)
e2fsck /dev/sda1           # ext系専用
xfs_repair /dev/sda1       # XFS専用

# ディスク使用量の確認
df -h                      # ファイルシステムの使用状況
df -i                      # inode使用状況
du -sh /var/log/            # ディレクトリのサイズ
du -h --max-depth=1 /      # 直下ディレクトリのサイズ

# ext系ファイルシステムの情報表示
tune2fs -l /dev/sda1       # ファイルシステム情報
dumpe2fs /dev/sda1         # 詳細情報

# XFSの情報表示
xfs_info /dev/sda1

104.3 ファイルシステムのマウントとアンマウント(Weight: 3)

コマンド集

# マウント・アンマウント
mount /dev/sda1 /mnt       # マウント
mount -t ext4 /dev/sda1 /mnt   # ファイルシステムタイプ指定
mount -o ro /dev/sda1 /mnt     # 読み取り専用でマウント
umount /mnt                # アンマウント
umount /dev/sda1           # デバイス名でアンマウント

# 現在のマウント状態確認
mount                      # マウント一覧
cat /etc/mtab              # 同上
cat /proc/mounts           # カーネルが認識しているマウント

# UUIDの確認
blkid                      # 全デバイスのUUID
lsblk                      # ブロックデバイスのツリー表示
lsblk -f                   # ファイルシステム情報付き

/etc/fstab のフォーマット

# <デバイス>  <マウントポイント>  <タイプ>  <オプション>  <dump>  <fsck順>
UUID=xxxx     /                   ext4      defaults      1       1
/dev/sda2     /home               ext4      defaults      1       2
/dev/sda3     swap                swap      defaults      0       0
オプション 説明
defaults rw, suid, dev, exec, auto, nouser, async
ro 読み取り専用
rw 読み書き可
noexec 実行不可
nosuid SUID/SGIDを無効化
noauto mount -a で自動マウントしない
user 一般ユーザーでもマウント可

104.5 ファイルのパーミッションと所有権の管理(Weight: 3)

パーミッションの読み方

-rwxr-xr-- 1 user group 1234 Jan 1 12:00 file.txt の場合:

① ファイルタイプ(先頭1文字):- はファイル、d はディレクトリ、l はシンボリックリンク
② 所有者(user):rwx(読み取り+書き込み+実行)
③ グループ(group):r-x(読み取り+実行)
④ その他(other):r--(読み取りのみ)

数値表記

数値 権限
4 読み取り(r)
2 書き込み(w)
1 実行(x)
0 なし

例:755 = rwxr-xr-x644 = rw-r--r--

特殊パーミッション

特殊ビット 数値 意味
SUID 4000 実行時に所有者の権限で実行
SGID 2000 実行時にグループの権限で実行 / ディレクトリではグループ継承
Sticky bit 1000 ディレクトリ内で所有者のみファイル削除可(例:/tmp

コマンド集

# パーミッション変更
chmod 755 file.txt               # 数値で指定
chmod u+x file.txt               # 所有者に実行権限を追加
chmod g-w file.txt               # グループから書き込み権限を削除
chmod o=r file.txt               # その他を読み取りのみに設定
chmod a+x script.sh              # 全員に実行権限を追加
chmod -R 755 dir/                # 再帰的に変更

# 特殊パーミッション
chmod 4755 file                  # SUID設定
chmod 2755 dir                   # SGID設定
chmod 1755 dir                   # Sticky bit設定
chmod u+s file                   # SUID(シンボリック)
chmod g+s dir                    # SGID(シンボリック)
chmod +t dir                     # Sticky bit(シンボリック)

# 所有者・グループ変更
chown user file.txt              # 所有者を変更
chown user:group file.txt        # 所有者とグループを変更
chown -R user:group dir/         # 再帰的に変更
chgrp group file.txt             # グループを変更

# umask(デフォルトパーミッションの制御)
umask                            # 現在のumask値を表示
umask 022                        # umaskを設定
# ファイルのデフォルト: 666 - umask = 644
# ディレクトリのデフォルト: 777 - umask = 755

104.6 ハードリンクとシンボリックリンク(Weight: 2)

違い

ハードリンク シンボリックリンク
inode 同じ 異なる
ファイルシステム跨ぎ 不可 可能
ディレクトリへのリンク 不可 可能
元ファイル削除時 アクセス可能 リンク切れ

コマンド集

# ハードリンク
ln original.txt hardlink.txt

# シンボリックリンク
ln -s /path/to/original symlink

# inode番号の確認
ls -i file.txt

# リンク数の確認
stat file.txt

104.7 システムファイルの検索と配置(Weight: 2)

FHS(Filesystem Hierarchy Standard)主要ディレクトリ

ディレクトリ 用途
/ ルート
/bin 基本コマンド
/sbin システム管理コマンド
/etc 設定ファイル
/var 可変データ(ログ、スプール等)
/tmp 一時ファイル
/usr ユーザー用プログラム・ライブラリ
/usr/bin 一般ユーザー用コマンド
/usr/sbin システム管理用コマンド
/usr/local ローカルにインストールしたソフトウェア
/opt アドオンパッケージ
/home ユーザーホームディレクトリ
/root rootのホームディレクトリ
/boot ブート用ファイル
/dev デバイスファイル
/proc カーネル情報(仮想FS)
/sys デバイス情報(仮想FS)
/lib 共有ライブラリ
/media リムーバブルメディアのマウントポイント
/mnt 一時的なマウントポイント
/srv サービス用データ
/run 実行時の可変データ

コマンド集

# ファイル検索
find / -name "*.conf"                    # ファイル名で検索
find / -type f -name "*.log"             # ファイルのみ
find / -type d -name "config"            # ディレクトリのみ
find / -user root -name "*.conf"         # 所有者で絞り込み
find / -size +10M                        # 10MB以上のファイル
find / -mtime -7                         # 7日以内に変更されたファイル
find / -perm 755                         # パーミッションで検索
find / -name "*.tmp" -exec rm {} \;      # 検索結果に対してコマンド実行
find / -name "*.tmp" -delete             # 検索結果を削除

# locate(データベース検索・高速)
locate filename
updatedb                 # locateデータベースの更新

# which / whereis / type
which command            # コマンドのフルパス
whereis command          # コマンド・マニュアル・ソースの場所
type command             # コマンドの種類

102試験(102-500)

Topic 105:シェルとシェルスクリプト

105.1 シェル環境のカスタマイズ(Weight: 4)

シェルの設定ファイルの読み込み順序

ログインシェル(ssh、suでのログイン)

/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bash_login → ~/.profile

非ログインシェル(ターミナル起動等)

/etc/bash.bashrc → ~/.bashrc

ログアウト時

~/.bash_logout

コマンド集

# エイリアス
alias ll='ls -la'          # エイリアスの設定
alias                      # エイリアス一覧
unalias ll                 # エイリアスの削除

# 関数
function greet() {
    echo "Hello, $1!"
}
greet World                # → Hello, World!

# 環境変数
export PATH=$PATH:/opt/bin   # PATHに追加
export EDITOR=vim            # デフォルトエディタ

# シェル設定の再読み込み
source ~/.bashrc
. ~/.bashrc                  # sourceと同じ

# set / env
set                          # シェル変数・環境変数の全表示
env                          # 環境変数のみ表示

# スケルトンディレクトリ
ls /etc/skel/                # 新規ユーザーのホームにコピーされる雛形

105.2 簡単なスクリプトの作成(Weight: 4)

シェルスクリプトの基本

#!/bin/bash
# ↑ シバン(Shebang):使用するインタプリタを指定

# --- 変数 ---
NAME="World"
echo "Hello, $NAME!"

# --- 条件分岐 ---
if [ "$1" = "hello" ]; then
    echo "Hello!"
elif [ "$1" = "bye" ]; then
    echo "Goodbye!"
else
    echo "Unknown argument"
fi

# --- testコマンド / [ ] の条件式 ---
# ファイル関連
# -f file   : 通常ファイルか
# -d dir    : ディレクトリか
# -e path   : 存在するか
# -r file   : 読み取り可能か
# -w file   : 書き込み可能か
# -x file   : 実行可能か
# -s file   : サイズが0より大きいか

# 文字列関連
# -z str    : 空文字列か
# -n str    : 空でないか
# str1 = str2   : 等しいか
# str1 != str2  : 等しくないか

# 数値関連
# n1 -eq n2 : 等しい
# n1 -ne n2 : 等しくない
# n1 -gt n2 : n1 > n2
# n1 -ge n2 : n1 >= n2
# n1 -lt n2 : n1 < n2
# n1 -le n2 : n1 <= n2

# --- forループ ---
for i in 1 2 3 4 5; do
    echo "Number: $i"
done

for file in /var/log/*.log; do
    echo "Log file: $file"
done

# --- whileループ ---
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

# --- case文 ---
case "$1" in
    start)
        echo "Starting..."
        ;;
    stop)
        echo "Stopping..."
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        ;;
esac

# --- 特殊変数 ---
# $0  : スクリプト名
# $1  : 第1引数
# $2  : 第2引数
# $#  : 引数の数
# $@  : 全引数(個別)
# $*  : 全引数(1つの文字列)
# $?  : 直前のコマンドの終了ステータス(0=成功)
# $$  : 現在のシェルのPID

# --- コマンド置換 ---
TODAY=$(date +%Y-%m-%d)
echo "Today is $TODAY"

# --- 論理演算子 ---
command1 && command2       # command1が成功したらcommand2を実行
command1 || command2       # command1が失敗したらcommand2を実行

# --- read(ユーザー入力の読み取り)---
echo "Enter your name:"
read NAME
echo "Hello, $NAME!"

# --- seq ---
for i in $(seq 1 10); do
    echo $i
done

# --- exec ---
exec > /tmp/output.log     # 以降の標準出力をファイルにリダイレクト

Topic 106:ユーザーインターフェースとデスクトップ

106.1 X11のインストールと設定(Weight: 2)

重要ポイント

  • X Window System(X11):Linux のGUI表示の仕組み
  • Xサーバー:画面表示を担当(ユーザーの手元)
  • Xクライアント:アプリケーション(リモートでも可)
  • Wayland:X11の後継プロトコル

コマンド集

# DISPLAY環境変数(リモートX表示に使用)
export DISPLAY=:0                   # ローカル
export DISPLAY=192.168.1.10:0       # リモート

# Xサーバーへのアクセス制御
xhost +                             # 全ホストからの接続を許可(非推奨)
xhost +192.168.1.10                 # 特定ホストを許可
xhost -                             # アクセス制御を有効化

# Xauth(クッキーベースの認証)
xauth list                          # 認証情報の一覧

重要ファイル

  • /etc/X11/xorg.conf :Xorgの設定ファイル
  • /etc/X11/xorg.conf.d/ :追加設定ディレクトリ
  • ~/.xsession-errors :Xセッションのエラーログ

106.2 グラフィカルデスクトップ(Weight: 1)

デスクトップ環境 特徴
GNOME GTKベース、シンプル
KDE Plasma Qtベース、高機能
Xfce 軽量
LXDE / LXQt 超軽量

106.3 アクセシビリティ(Weight: 1)

  • スクリーンリーダー(Orca等)
  • 拡大鏡、ハイコントラスト表示
  • オンスクリーンキーボード
  • スティッキーキー、スローキー

Topic 107:管理タスク

107.1 ユーザーとグループの管理(Weight: 5)

コマンド集

# ユーザー管理
useradd username                     # ユーザー作成
useradd -m -s /bin/bash username     # ホームディレクトリ作成 + シェル指定
usermod -aG sudo username            # グループに追加(-a: 追加モード)
usermod -L username                  # アカウントロック
usermod -U username                  # アカウントアンロック
usermod -s /sbin/nologin username    # ログイン不可に変更
userdel username                     # ユーザー削除
userdel -r username                  # ホームディレクトリごと削除

# パスワード管理
passwd username                      # パスワード設定/変更
passwd -l username                   # アカウントロック
passwd -u username                   # アカウントアンロック
passwd -e username                   # 次回ログイン時にパスワード変更を強制
chage -l username                    # パスワードエージング情報の表示
chage -M 90 username                 # 最大有効日数を90日に
chage -d 0 username                  # 次回ログイン時にパスワード変更を強制

# グループ管理
groupadd groupname                   # グループ作成
groupmod -n newname oldname          # グループ名変更
groupdel groupname                   # グループ削除
groups username                      # ユーザーの所属グループ表示
id username                          # UID/GID情報

# getent
getent passwd username               # /etc/passwdからユーザー情報取得
getent group groupname               # /etc/groupからグループ情報取得

重要ファイル

ファイル 内容
/etc/passwd ユーザー情報(ユーザー名:x:UID:GID:コメント:ホーム:シェル
/etc/shadow パスワードハッシュ・エージング情報
/etc/group グループ情報
/etc/gshadow グループパスワード
/etc/skel/ 新規ユーザーのホームにコピーされる雛形ファイル
/etc/login.defs UID/GIDの範囲、パスワードポリシー等

107.2 ジョブスケジューリングによるシステム管理タスクの自動化(Weight: 4)

crontab の書式

# 分  時  日  月  曜日  コマンド
# 0-59 0-23 1-31 1-12 0-7(0,7=日)

# 毎日3時にバックアップ
0 3 * * * /usr/local/bin/backup.sh

# 毎月1日の0時に実行
0 0 1 * * /usr/local/bin/monthly.sh

# 平日の9時〜17時に毎時実行
0 9-17 * * 1-5 /usr/local/bin/hourly.sh

# 5分ごとに実行
*/5 * * * * /usr/local/bin/check.sh

コマンド集

# crontab
crontab -e                 # 現在のユーザーのcrontabを編集
crontab -l                 # crontabの内容を表示
crontab -r                 # crontabを削除
crontab -e -u username     # 特定ユーザーのcrontabを編集(root)

# at(一回限りのジョブ)
at 15:00                   # 15時に実行するジョブを登録
at now + 10 minutes        # 10分後に実行
atq                        # 待機中のジョブ一覧
atrm <ジョブ番号>          # ジョブの削除

# systemdタイマー
systemctl list-timers       # タイマー一覧
systemctl status <タイマー名>.timer

重要ファイル

  • /etc/crontab :システムのcrontab
  • /etc/cron.d/ :追加のcronジョブ
  • /etc/cron.daily/, /etc/cron.hourly/, /etc/cron.weekly/, /etc/cron.monthly/
  • /etc/cron.allow :cron使用を許可するユーザー
  • /etc/cron.deny :cron使用を拒否するユーザー
  • /etc/at.allow, /etc/at.deny :atの制御

107.3 ローカリゼーションと国際化(Weight: 3)

コマンド集

# ロケール
locale                     # 現在のロケール設定を表示
locale -a                  # 利用可能なロケール一覧
localectl                  # systemdでのロケール管理
localectl set-locale LANG=ja_JP.UTF-8   # ロケールの設定
localectl set-keymap jp106              # キーマップの設定

# 環境変数でロケールを設定
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

# タイムゾーン
timedatectl                             # 現在の日時・タイムゾーン表示
timedatectl set-timezone Asia/Tokyo     # タイムゾーン設定
timedatectl list-timezones              # 利用可能なタイムゾーン一覧

# 文字コード変換
iconv -f EUC-JP -t UTF-8 input.txt -o output.txt
iconv -l                   # サポートされるエンコーディング一覧

ロケール環境変数の優先順位

変数 説明
LC_ALL 全カテゴリを上書き(最優先)
LC_* 個別カテゴリ(LC_TIME, LC_MESSAGES等)
LANG デフォルト値(他が未設定の場合に使用)

重要ファイル

  • /etc/locale.conf :システムのロケール設定(systemd)
  • /etc/default/locale :Debian系のロケール設定
  • /etc/timezone :タイムゾーン設定(Debian系)
  • /etc/localtime :タイムゾーンデータへのシンボリックリンク
  • /usr/share/zoneinfo/ :タイムゾーンデータベース

Topic 108:必須システムサービス

108.1 システム時刻の管理(Weight: 3)

重要ポイント

  • ハードウェアクロック(RTC):BIOSに保持される時計
  • システムクロック:OSが管理する時計
  • NTP(Network Time Protocol):ネットワーク経由で時刻を同期

コマンド集

# 日時の確認・設定
date                                    # 現在の日時を表示
date +%Y-%m-%d                          # フォーマット指定
date -s "2026-03-01 12:00:00"           # 日時の手動設定(root)

# ハードウェアクロック
hwclock                                 # ハードウェアクロックの表示
hwclock --systohc                       # システムクロック→ハードウェアクロックに同期
hwclock --hctosys                       # ハードウェアクロック→システムクロックに同期

# timedatectl(systemd)
timedatectl                             # 時刻関連の情報を一括表示
timedatectl set-time "2026-03-01 12:00:00"  # 時刻設定
timedatectl set-ntp true                # NTP同期の有効化
timedatectl set-ntp false               # NTP同期の無効化

# NTP関連
ntpdate pool.ntp.org                    # 手動で時刻同期(非推奨・レガシー)
ntpq -p                                # NTPピアの状態表示

# chrony(現在の主流NTPクライアント/サーバー)
chronyc sources                         # 同期ソースの表示
chronyc tracking                        # 同期状態の詳細
systemctl status chronyd                # chronydサービスの状態

重要ファイル

  • /etc/ntp.conf :ntpdの設定ファイル
  • /etc/chrony.conf (または /etc/chrony/chrony.conf) :chronyの設定ファイル

108.2 システムログ(Weight: 4)

重要ポイント

  • syslog / rsyslog:従来のログ管理デーモン
  • journald(systemd-journald):systemd環境のログ管理
  • ログのファシリティ:ログの発生源(auth, cron, daemon, kern, mail, user等)
  • ログのプライオリティ(重要度順)
    emerg > alert > crit > err > warning > notice > info > debug

コマンド集

# journalctl(systemd環境)
journalctl                              # 全ログの表示
journalctl -f                           # リアルタイム追跡(tail -f相当)
journalctl -u sshd                      # 特定ユニットのログ
journalctl -u nginx --since "1 hour ago"  # 時間指定
journalctl -p err                       # エラー以上の重要度
journalctl -b                           # 現在のブートのログ
journalctl -b -1                        # 前回のブートのログ
journalctl --since "2026-03-01" --until "2026-03-02"  # 日付範囲
journalctl -k                           # カーネルメッセージのみ
journalctl --disk-usage                 # ジャーナルのディスク使用量

# logger(手動でsyslogにメッセージを送信)
logger "This is a test message"
logger -p auth.info "Authentication test"
logger -t mytag "Tagged message"

# ログファイルの確認
tail -f /var/log/syslog                 # Debian系
tail -f /var/log/messages               # Red Hat系
cat /var/log/auth.log                   # 認証ログ(Debian系)
cat /var/log/secure                     # 認証ログ(Red Hat系)

# logrotate(ログローテーション)
logrotate /etc/logrotate.conf           # 手動実行
logrotate -d /etc/logrotate.conf        # ドライラン(テスト)

rsyslogの設定フォーマット(/etc/rsyslog.conf)

# ファシリティ.プライオリティ    出力先
auth.*                           /var/log/auth.log
*.err                            /var/log/error.log
mail.info                        /var/log/mail.log
*.emerg                          :omusrmsg:*

重要ファイル

  • /etc/rsyslog.conf :rsyslogの設定
  • /etc/rsyslog.d/ :追加設定ディレクトリ
  • /etc/logrotate.conf :logrotateの設定
  • /etc/logrotate.d/ :追加設定ディレクトリ
  • /etc/systemd/journald.conf :journaldの設定
  • /var/log/ :ログファイルの格納ディレクトリ

主要ログファイル

ファイル 内容
/var/log/syslog (Debian) / /var/log/messages (RHEL) システム全般
/var/log/auth.log (Debian) / /var/log/secure (RHEL) 認証関連
/var/log/kern.log カーネルメッセージ
/var/log/cron cronジョブの実行ログ
/var/log/boot.log ブートプロセスのログ
/var/log/dmesg カーネルリングバッファ
/var/log/lastlog 最終ログイン情報
/var/log/wtmp ログイン履歴(lastコマンドで表示)
/var/log/btmp ログイン失敗履歴(lastbコマンドで表示)

108.3 メール転送エージェント(MTA)の基本(Weight: 3)

重要ポイント

  • MTA(Mail Transfer Agent):メールを転送するソフトウェア
  • 主なMTA:Postfix, Sendmail, Exim
  • MDA(Mail Delivery Agent):メールをメールボックスに配送
  • MUA(Mail User Agent):ユーザーがメールを読み書きするクライアント

コマンド集

# ローカルメールの送信
mail -s "Subject" user@example.com < body.txt
echo "Test" | mail -s "Subject" root

# メールキューの管理
mailq                      # メールキューの表示(sendmailq / postqueue -p)
postqueue -p               # Postfixのメールキュー表示
postqueue -f               # キュー内のメールを再送

# エイリアス
cat /etc/aliases            # メールエイリアスの確認
newaliases                  # エイリアスデータベースの更新

# メールの転送設定
cat ~/.forward              # ユーザーレベルの転送設定

重要ファイル

  • /etc/aliases :メールエイリアス(例:root: admin@example.com
  • ~/.forward :ユーザーレベルの転送先設定
  • /etc/postfix/main.cf :Postfixの主設定ファイル
  • /var/spool/mail/ :メールボックス

108.4 プリンタと印刷の管理(Weight: 2)

重要ポイント

  • CUPS(Common Unix Printing System):Linux標準の印刷管理システム
  • CUPSの管理画面:http://localhost:631
  • PPD(PostScript Printer Description):プリンタの能力を定義するファイル

コマンド集

# 印刷
lp file.txt                        # デフォルトプリンタで印刷
lp -d printername file.txt          # プリンタ指定
lpr file.txt                       # BSD互換の印刷コマンド

# 印刷キュー
lpq                                 # 印刷キューの表示
lpstat -a                           # プリンタの状態
lpstat -t                           # 全プリンタの詳細情報

# ジョブの管理
cancel <ジョブID>                   # 印刷ジョブのキャンセル
lprm <ジョブID>                     # BSD互換のキャンセル

# プリンタの管理
lpadmin -p printer -E -v uri        # プリンタの追加
lpadmin -d printername              # デフォルトプリンタの設定
cupsaccept printername              # プリンタのジョブ受付を有効化
cupsreject printername              # プリンタのジョブ受付を拒否
cupsenable printername              # プリンタの有効化
cupsdisable printername             # プリンタの無効化

重要ファイル

  • /etc/cups/cupsd.conf :CUPSデーモンの設定
  • /etc/cups/printers.conf :プリンタの設定
  • /etc/cups/ppd/ :PPDファイル

Topic 109:ネットワークの基礎

109.1 インターネットプロトコルの基礎(Weight: 4)

IP アドレスの基礎

クラス 範囲 デフォルトサブネットマスク プライベートアドレス範囲
A 1.0.0.0 〜 126.255.255.255 255.0.0.0 (/8) 10.0.0.0/8
B 128.0.0.0 〜 191.255.255.255 255.255.0.0 (/16) 172.16.0.0/12
C 192.0.0.0 〜 223.255.255.255 255.255.255.0 (/24) 192.168.0.0/16

CIDR表記の主要なサブネット

CIDR サブネットマスク ホスト数
/8 255.0.0.0 16,777,214
/16 255.255.0.0 65,534
/24 255.255.255.0 254
/25 255.255.255.128 126
/26 255.255.255.192 62
/27 255.255.255.224 30
/28 255.255.255.240 14
/30 255.255.255.252 2

主要プロトコルとポート番号

ポート プロトコル 用途
20 FTP(データ) ファイル転送
21 FTP(制御) ファイル転送
22 SSH セキュアリモートログイン
23 Telnet リモートログイン(非暗号化)
25 SMTP メール送信
53 DNS 名前解決
67/68 DHCP IPアドレス自動割当
80 HTTP Web
110 POP3 メール受信
123 NTP 時刻同期
143 IMAP メール受信
443 HTTPS Web(暗号化)
465 SMTPS メール送信(暗号化)
514 Syslog ログ転送
993 IMAPS メール受信(暗号化)
995 POP3S メール受信(暗号化)

TCP と UDP の違い

TCP UDP
接続 コネクション型(3ウェイハンドシェイク) コネクションレス
信頼性 高い(再送・順序保証) 低い(保証なし)
速度 遅い 速い
用途例 HTTP, SSH, FTP, SMTP DNS, NTP, DHCP, SNMP

IPv6

  • 128ビットアドレス(IPv4は32ビット)
  • 表記例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 省略形:2001:db8:85a3::8a2e:370:7334
  • ループバック:::1
  • リンクローカル:fe80::

109.2 永続的なネットワーク構成(Weight: 4)

コマンド集

# --- ip コマンド(iproute2、現在の主流)---
ip addr show                        # IPアドレスの表示
ip addr add 192.168.1.10/24 dev eth0   # IPアドレスの追加
ip addr del 192.168.1.10/24 dev eth0   # IPアドレスの削除
ip link show                        # ネットワークインターフェースの表示
ip link set eth0 up                 # インターフェースの有効化
ip link set eth0 down               # インターフェースの無効化
ip route show                       # ルーティングテーブルの表示
ip route add default via 192.168.1.1    # デフォルトゲートウェイの設定
ip route add 10.0.0.0/8 via 192.168.1.1 # スタティックルートの追加
ip neighbor show                    # ARPテーブルの表示

# --- ifconfig(レガシー、net-toolsパッケージ)---
ifconfig                            # 全インターフェースの表示
ifconfig eth0                       # 特定インターフェースの表示
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up   # IP設定

# --- route(レガシー)---
route -n                            # ルーティングテーブル
route add default gw 192.168.1.1    # デフォルトゲートウェイ

# ホスト名
hostname                            # ホスト名の表示
hostnamectl                         # 詳細表示(systemd)
hostnamectl set-hostname myserver   # ホスト名の設定

重要ファイル

ファイル 説明
/etc/hostname ホスト名
/etc/hosts 静的な名前解決
/etc/nsswitch.conf 名前解決の優先順位
/etc/network/interfaces Debian系のネットワーク設定
/etc/sysconfig/network-scripts/ifcfg-* RHEL系のネットワーク設定
/etc/netplan/ Ubuntu 18.04以降のネットワーク設定
/etc/NetworkManager/ NetworkManagerの設定

109.3 基本的なネットワークトラブルシューティング(Weight: 4)

コマンド集

# 疎通確認
ping 8.8.8.8                       # IPv4
ping -c 4 8.8.8.8                  # 4回だけ
ping6 ::1                          # IPv6

# 経路確認
traceroute 8.8.8.8                  # 経路追跡
tracepath 8.8.8.8                   # 経路追跡(root不要)
mtr 8.8.8.8                        # ping + traceroute の統合ツール

# 接続状態の確認
ss -tuln                            # リッスン中のTCP/UDPポート
ss -tunap                           # 全接続+プロセス情報
netstat -tuln                       # レガシー(ss推奨)
netstat -rn                         # ルーティングテーブル

# ネットワークインターフェース情報
ip addr show
ifconfig

# ARP
arp -a                              # ARPテーブル(レガシー)
ip neighbor show                    # ARPテーブル(ip コマンド)

# nc(netcat)
nc -zv 192.168.1.1 22               # ポートスキャン
nc -l 8080                          # ポート8080でリッスン

109.4 クライアント側DNSの設定(Weight: 2)

コマンド集

# DNS問い合わせ
host example.com                    # シンプルなDNS問い合わせ
host -t MX example.com              # MXレコードの問い合わせ
dig example.com                     # 詳細なDNS問い合わせ
dig example.com MX                  # MXレコード
dig @8.8.8.8 example.com            # DNSサーバー指定
nslookup example.com                # DNS問い合わせ(レガシー)
getent hosts example.com            # 名前解決(nsswitch.conf に従う)

重要ファイル

ファイル 説明
/etc/resolv.conf DNSサーバーの設定(nameserver 8.8.8.8
/etc/hosts 静的な名前解決(DNSより先に参照される)
/etc/nsswitch.conf 名前解決の順序(hosts: files dns

/etc/resolv.conf の書式

nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com
domain example.com

Topic 110:セキュリティ

110.1 セキュリティ管理タスクの実行(Weight: 3)

コマンド集

# ユーザー切り替え
su -                                # rootに切り替え(ログインシェル)
su - username                       # 特定ユーザーに切り替え
su username                         # 環境変数を引き継いで切り替え

# sudo
sudo command                        # root権限でコマンド実行
sudo -u username command             # 特定ユーザーとして実行
sudo -i                             # rootのログインシェルを起動
sudo -l                             # 実行可能なコマンドを表示
visudo                              # /etc/sudoers の安全な編集

# /etc/sudoers の書式
# ユーザー ホスト=(実行ユーザー) コマンド
# root    ALL=(ALL:ALL) ALL
# %sudo   ALL=(ALL:ALL) ALL
# taro    ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

# ファイルの特殊パーミッション検索(セキュリティ監査)
find / -perm -4000 -type f           # SUID ファイルの検索
find / -perm -2000 -type f           # SGID ファイルの検索
find / -nouser -o -nogroup           # 所有者/グループ不明のファイル

# 開いているポートの確認
ss -tuln
netstat -tuln
lsof -i                             # ネットワーク接続中のプロセス
fuser 80/tcp                        # ポート80を使用しているプロセス

# ログイン関連
who                                  # ログイン中のユーザー
w                                    # ログイン中のユーザーと作業内容
last                                 # ログイン履歴
lastb                                # ログイン失敗履歴
lastlog                              # 全ユーザーの最終ログイン

# プロセスのリソース制限
ulimit -a                            # 現在の制限を表示
ulimit -n 4096                       # オープンファイル数の上限変更

110.2 ホストセキュリティの設定(Weight: 3)

重要ポイント

  • 不要なサービスの無効化がセキュリティの基本
  • inetd / xinetd:オンデマンドでサービスを起動するスーパーデーモン(レガシー)
  • TCP Wrapper:ホストベースのアクセス制御

コマンド集

# サービス管理(systemd)
systemctl list-units --type=service          # サービス一覧
systemctl list-unit-files --type=service     # 自動起動設定一覧
systemctl enable sshd                        # 自動起動を有効化
systemctl disable telnet                     # 自動起動を無効化
systemctl stop telnet                        # サービスの停止
systemctl mask telnet                        # サービスの完全無効化(起動不可)
systemctl unmask telnet                      # maskの解除

TCP Wrapper

ファイル 説明
/etc/hosts.allow 接続を許可するホスト(先に評価される)
/etc/hosts.deny 接続を拒否するホスト
# /etc/hosts.allow
sshd: 192.168.1.0/24
ALL: LOCAL

# /etc/hosts.deny
ALL: ALL

inetd / xinetd

  • /etc/inetd.conf :inetdの設定
  • /etc/xinetd.conf, /etc/xinetd.d/ :xinetdの設定

110.3 暗号化によるデータの保護(Weight: 4)

SSH

# SSH接続
ssh user@hostname                    # リモートログイン
ssh -p 2222 user@hostname            # ポート指定
ssh -X user@hostname                 # X11転送を有効化

# SSH鍵の管理
ssh-keygen                           # 鍵ペアの生成(デフォルト: RSA)
ssh-keygen -t ed25519                # Ed25519鍵の生成(推奨)
ssh-keygen -t rsa -b 4096            # RSA 4096ビット鍵の生成
ssh-copy-id user@hostname            # 公開鍵をリモートホストに配置
ssh-agent bash                       # SSH エージェントの起動
ssh-add                              # 秘密鍵をエージェントに追加
ssh-add -l                           # 登録済み鍵の一覧

# SSHトンネル
ssh -L 8080:localhost:80 user@hostname   # ローカルポートフォワーディング
ssh -R 8080:localhost:80 user@hostname   # リモートポートフォワーディング

# SCP(ファイル転送)
scp file.txt user@hostname:/path/    # リモートへコピー
scp user@hostname:/path/file.txt .   # リモートからコピー
scp -r dir/ user@hostname:/path/     # ディレクトリ再帰コピー

SSH 重要ファイル

ファイル 説明
~/.ssh/id_rsa 秘密鍵(RSA)
~/.ssh/id_rsa.pub 公開鍵(RSA)
~/.ssh/id_ed25519 秘密鍵(Ed25519)
~/.ssh/id_ed25519.pub 公開鍵(Ed25519)
~/.ssh/authorized_keys ログインを許可する公開鍵の一覧
~/.ssh/known_hosts 接続済みホストの公開鍵
~/.ssh/config クライアント側の接続設定
/etc/ssh/sshd_config SSHサーバーの設定
/etc/ssh/ssh_config SSHクライアントの設定

sshd_config の主要設定

Port 22                        # 待ち受けポート
PermitRootLogin no             # rootログインの禁止(推奨)
PasswordAuthentication no      # パスワード認証の無効化(鍵認証のみ)
PubkeyAuthentication yes       # 公開鍵認証の有効化
X11Forwarding yes              # X11転送の許可
AllowUsers taro hanako         # ログイン許可ユーザー

GPG(GNU Privacy Guard)

# 鍵の管理
gpg --gen-key                        # 鍵ペアの生成
gpg --list-keys                      # 公開鍵の一覧
gpg --list-secret-keys               # 秘密鍵の一覧
gpg --export -a "User Name" > pub.key    # 公開鍵のエクスポート
gpg --import pub.key                 # 公開鍵のインポート
gpg --delete-key "User Name"         # 公開鍵の削除

# ファイルの暗号化・復号
gpg -e -r "User Name" file.txt      # 公開鍵で暗号化(→ file.txt.gpg)
gpg -d file.txt.gpg                  # 復号
gpg -c file.txt                      # 対称鍵(パスフレーズ)で暗号化
gpg -o decrypted.txt -d file.txt.gpg # 出力ファイル名を指定して復号

# デジタル署名
gpg --sign file.txt                  # 署名
gpg --clearsign file.txt             # クリアテキスト署名
gpg --detach-sign file.txt           # 分離署名
gpg --verify file.txt.sig file.txt   # 署名の検証

試験対策のポイント

出題比率(Weight)ランキング

101試験(出題比率が高い順)

順位 サブトピック Weight 内容
1 103.1 4 コマンドラインでの操作
1 103.3 4 基本的なファイル管理
1 103.4 4 ストリーム・パイプ・リダイレクト
1 103.5 4 プロセスの生成・監視・終了
5 101.2 3 システムのブート
5 101.3 3 ランレベル/ブートターゲット
5 102.4 3 Debianパッケージ管理
5 102.5 3 RPM/YUMパッケージ管理
5 103.7 3 正規表現によるテキスト検索
5 103.8 3 基本的なファイル編集(vi)
5 104.3 3 マウント/アンマウント
5 104.5 3 パーミッション・所有権
5 104.7 3 システムファイルの検索・FHS

102試験(出題比率が高い順)

順位 サブトピック Weight 内容
1 107.1 5 ユーザーとグループの管理
2 105.1 4 シェル環境のカスタマイズ
2 105.2 4 シェルスクリプトの作成
2 107.2 4 ジョブスケジューリング
2 108.2 4 システムログ
2 109.1 4 インターネットプロトコルの基礎
2 109.2 4 永続的なネットワーク構成
2 109.3 4 ネットワークトラブルシューティング
2 110.3 4 暗号化によるデータの保護

頻出テーマ 暗記チェックリスト

必ず覚えるべき項目

  • ブートシーケンス(BIOS/UEFI → GRUB → カーネル → init/systemd)
  • systemdのサービス管理コマンド(systemctl start/stop/enable/disable/status
  • パッケージ管理(apt vs yum/dnf vs rpm vs dpkg
  • パーミッションの数値表記と特殊パーミッション(SUID/SGID/Sticky bit)
  • viの基本操作(モード切替、保存・終了、検索・置換)
  • リダイレクト(>, >>, 2>, 2>&1, <, |
  • プロセス管理(ps, top, kill, シグナル番号)
  • nice値の範囲(-20〜19)と権限
  • crontabの書式(分 時 日 月 曜日 コマンド)
  • TCP/UDPの主要ポート番号
  • IPアドレスのクラスとプライベートアドレス範囲
  • SSH鍵認証の仕組みと設定ファイル
  • FHS(各ディレクトリの役割)
  • /etc/passwd, /etc/shadow, /etc/group のフォーマット
  • ログ管理(journalctl, rsyslog, ファシリティとプライオリティ)
  • 名前解決の順序(/etc/nsswitch.conf)と関連ファイル
  • GPGの基本操作(鍵生成、暗号化、署名)

おわりに

LPIC-1は範囲が広いですが、Topic 103(GNUとUnixコマンド)Topic 107〜110(管理タスク・ネットワーク・セキュリティ) がWeight的にも最も重要です。

学習の進め方としては:

  1. まずはコマンドを実際に手を動かして打つ(暗記より体で覚える)
  2. Weight の高いトピックから優先的に学習する
  3. ping-t 等の問題集で出題形式に慣れる
  4. 直前は本記事のチェックリストで漏れを確認する

この記事が合格への一助になれば幸いです。

ここまでお読みいただきありがとうございます。
ではまた、お会いしましょう。

参考リンク

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?