Linux用語・演習 (2026/08/16時点 LinuCレベル1 101試験 出題範囲 )
LinuCレベル1は101試験・102試験の両方に合格して認定される。
この記事は101試験の公式出題範囲(Version 10.0)を土台に、
用語・path一覧とコマンド演習の2部構成でまとめたもの。
コマンド演習は出題項目ごとに分割せず、上から順に実行すれば一つの演習として通しで進められる構成。
仮想マシンかコンテナ環境を1つ用意して、実際に打ちながら読み進める。
102試験編は別記事にまとめる。
第1部:用語・path一覧
〇 用語
| 用語 | 説明 |
|---|---|
| UEFI/BIOS | ハードウェアの初期化とOSの起動を行うソフトウェア |
| パッケージグループ | 複数ソフトウェアパッケージを一度に管理/インストールできる単位 |
| ハイパーバイザー | ホストOS上で仮想マシンを動かす基盤ソフト(ベアメタル型/ホスト型) |
| 仮想化支援機能 | CPUがハードウェアレベルで提供するIntel VT-x/AMD-Vなどの機能 |
| コンテナ | ホストOSのカーネルを共有し、アプリケーションを実行するための環境をパッケージ化したもの |
| ブートターゲット | 従来のランレベルに相当(multi-user.target、graphical.targetなど) |
| シングルユーザモード | トラブルシュート用のroot向け最小起動状態 |
| X Window System | Xサーバー、Xクライアント、ウィンドウマネージャで構成され、GUI環境を提供する |
| SUID / SGID / スティッキービット | 特殊なアクセスモード |
| UUID / ラベル | デバイス名に依存しないファイルシステム識別方法(fstabでよく使う) |
| umask | 新規作成ファイルのデフォルト権限を決めるマスク値 |
| ワイルドカード | 文字列パターンを表現するための特殊な文字や記号 |
| ハードリンク | 同一inodeを指す別名(ファイルシステムをまたげない) |
| シンボリックリンク | パスを指すポインタ(ファイル・ディレクトリどちらも可) |
| FHS(Filesystem Hierarchy Standard) | ディレクトリ構成の標準 |
| 相対パス/絶対パス | カレントディレクトリ基準、ルート基準のpath |
| EDITOR(環境変数) | デフォルトエディタの指定 |
| sysfs、udev、dbus | デバイス管理の周辺仕組み |
| ESP(EFI System Partition) | UEFI環境でブートローダを格納するFAT形式パーティション |
| GPT(GUID Partition Table) | 現行主流のパーティション方式 |
| LVM | 物理ボリューム、論理ボリューム、動的拡張・縮小、スナップショット |
| ファイルシステム種別 | ext3 / ext4、XFS、VFAT、Btrfs、tmpfs |
| フォアグラウンド/バックグラウンド | シェル上での実行状態の区別 |
〇 重要path
| path | 用途 |
|---|---|
~/.ssh/authorized_keys |
接続を許可する公開鍵の一覧 |
~/.ssh/known_hosts |
接続したことのあるホストのフィンガープリント |
~/.ssh/id_rsa, ~/.ssh/id_rsa.pub |
秘密鍵・公開鍵ペア |
~/.bash_history |
コマンド履歴の保存先 |
/etc/updatedb.conf |
updatedbの除外設定 |
/etc/apt/sources.list |
aptのリポジトリ定義 |
/etc/yum.repos.d/ |
yumのリポジトリ定義ディレクトリ |
/etc/yum.conf |
yumの全体設定 |
/sys/ |
デバイス・カーネル情報を表すsysfs |
/proc/ |
プロセス・カーネル状態を表す仮想ファイルシステム |
/dev/ |
デバイスファイル |
/, /var, /home, /boot |
代表的なマウントポイントとその割当方針 |
/etc/fstab |
起動時の自動マウント設定 |
/media |
リムーバブルメディアのマウントポイント |
第2部:コマンド演習
ホームディレクトリに作業用ディレクトリlinuc-practiceを作るところから始めて、最後まで一連のものとして進める。
破壊的な操作は実機のディスクを直接壊さないよう、コメントで注意点を明記する。
該当箇所はスキップするか、使い捨てできる検証用ディスク/VMで試すこと。
Step 1. 作業ディレクトリの準備とシステム状態の確認
# ホームディレクトリに移動し、演習用ディレクトリを作成
cd ~
mkdir -p linuc-practice/{docs,logs,bin,archive}
cd linuc-practice
# 現在地とホスト情報の確認
pwd
hostname
uname -a
# systemdの現在のデフォルトターゲットを確認 (変更はしない)
systemctl get-default
# 主要サービスの状態確認 (存在しなければ sshd以外の手元の環境にあるものに置き換える)
systemctl status sshd
# シャットダウン・再起動コマンドの書式確認 (※停止できない環境なら書式確認にとどめること)
# shutdown -h +1 "メンテナンスのため停止します"
# shutdown -c
# reboot
Step 2. リモート接続とコンテナ・仮想マシンの操作
# SSH接続の書式 (手元にもう1台あれば実際に接続してみる)
# ssh -i ~/.ssh/id_rsa user@192.168.1.10
cd ~/linuc-practice
# コンテナイメージを取得してポートマッピング付きで起動 (dockerが入っている環境で)
docker run -d --name web -p 8080:80 nginx:latest
# 稼働中コンテナの確認
docker ps
# コンテナに入って中を見る
docker exec -it web bash
# (コンテナ内で ls /etc/nginx などを確認後 exit で戻る)
# 停止・削除
docker stop web
docker rm web
# 仮想マシンがある場合 (virsh)
virsh list --all
virsh start centos-lab
virsh shutdown centos-lab
Step 3. ファイル・ディレクトリ操作とパーミッションの演習
cd ~/linuc-practice/docs
# サンプルファイルの作成
touch report.txt draft.txt
echo "サンプルテキストです" > report.txt
# パーミッションの変更(記号モード→数値モードの順に試す)
chmod u+x report.txt
chmod 644 report.txt
ls -l report.txt
# 所有者・グループの変更 (権限があれば)
chown "$(whoami)":"$(whoami)" report.txt
# ディレクトリを掘って再帰的に権限変更
mkdir -p shared/team
chmod -R 750 shared
chmod g+s shared # SGID:配下の新規ファイルが親と同じグループになる
# umaskの確認と一時変更
umask
umask 022
touch after_umask.txt
ls -l after_umask.txt
# コピー・移動・削除
cp -av report.txt ../archive/report_$(date +%Y%m%d).txt
mv draft.txt draft_v2.txt
rm -f draft_v2.txt
# ディレクトリ構造をまとめて作成
mkdir -p ../projects/{app,app/logs,app/conf}
# アーカイブ化と展開
tar czvf ../archive/docs-backup.tar.gz .
mkdir -p ../restore
tar xzvf ../archive/docs-backup.tar.gz -C ../restore
# 古いファイル・大きいファイルの検索
find ~/linuc-practice -name "*.log" -mtime +7
find ~/linuc-practice -type f -size +10M 2>/dev/null
# 圧縮コマンド(xzで圧縮→unxzで展開して元に戻す)
xz ../archive/docs-backup.tar.gz
unxz ../archive/docs-backup.tar.gz.xz
Step 4. リンクとファイル検索
cd ~/linuc-practice/docs
# ハードリンクとシンボリックリンクの違いを確認
ln report.txt report_hardlink.txt
ln -s report.txt report_symlink.txt
ls -lFi report.txt report_hardlink.txt report_symlink.txt
# → 同じinode番号を持つのはハードリンクだけ
# ファイル名検索(即時、負荷は高め)
find ~/linuc-practice -name "report*"
# locate用DBを更新して高速検索 (要sudo、環境次第で未インストール)
sudo updatedb
locate report.txt
# コマンドの実体を調べる
type ls
type cd
whereis python3
which python3
# コマンドのヘルプ表示
ls --help | head -20
# マニュアルの参照 (セクション指定:1=コマンド、5=設定ファイル)
man 1 passwd
man 5 passwd
# キーワードでmanページを横断検索
man -k partition
Step 5. GNU/Unixコマンドでテキスト処理の演習
cd ~/linuc-practice/logs
# サンプルログを作成 (演習用のダミーログ)
cat > access.log << 'EOF'
192.168.1.10 - - [12/Aug/2026:10:00:01] "GET /index.html" 200
192.168.1.11 - - [12/Aug/2026:10:00:05] "GET /about.html" 404
192.168.1.10 - - [12/Aug/2026:10:01:10] "POST /login" 500
192.168.1.12 - - [12/Aug/2026:10:02:00] "GET /index.html" 200
192.168.1.11 - - [12/Aug/2026:10:03:33] "GET /favicon.ico" 404
EOF
# 表示系
cat -n access.log
head -n 3 access.log
tail -n 2 access.log
# 列の抽出 (スペース区切りで1列目=IPアドレスを取得)
cut -d' ' -f1 access.log
# 並べ替え・重複カウント(頻出IPアドレスの集計)
cut -d' ' -f1 access.log | sort | uniq -c | sort -nr
# 正規表現検索 (404エラーだけ抽出)
grep "404" access.log
grep -E "404|500" access.log
egrep "404|500" access.log
grep -c "200" access.log
# 置換 (sedでステータスコードにラベルを付与)
sed 's/ 200$/ 200 OK/' access.log
sed -i.bak 's/404/NOT_FOUND/g' access.log
cat access.log
# access.logを元の内容に戻す (以降のless/vi演習で"404"を検索するため。.bakは後述のxargs演習で使う)
cp access.log.bak access.log
# 文字種変換・行数カウント
tr 'a-z' 'A-Z' < access.log | head -1
wc -l access.log
# リダイレクトとパイプ
grep "192.168.1.10" access.log > ip10.log
cat ip10.log
ps aux | grep bash
# lessでのページング表示 (長い出力を1画面ずつ確認、qで終了)
ps aux | less
less access.log
# less内での主な操作:
# スペース/Enter : 次の画面へ
# b : 前の画面へ
# /404 : "404"を前方検索
# q : 終了
# xargsで検索結果を一括処理
find ~/linuc-practice/logs -name "*.bak" -print0 | xargs -0 rm -f
# 画面表示しつつファイルにも保存
cut -d' ' -f1 access.log | sort -u | tee unique_ips.txt
Step 6. viエディタでの編集演習
cd ~/linuc-practice/logs
vi access.log
viの中で以下を順に試します。
i " 挿入モードへ
(1行入力してみる)
ESC " ノーマルモードに戻る
/404 " "404"を検索、nで次候補へ
dd " カーソル行を削除
5yy " 5行コピー(ファイルの行数に応じて調整)
p " カーソル下に貼り付け
:wq " 保存して終了
# デフォルトエディタの設定 (crontab -eなどで利用される)
export EDITOR=vim
Step 7. パッケージ管理の演習 (該当ディストリビューションのコマンドのみ実行)
# --- Debian/Ubuntu系 (apt / dpkg) ---
sudo apt update
sudo apt install -y tree
apt-cache show tree
dpkg -l | grep tree
apt-file search /usr/bin/tree # apt-fileが入っていれば
sudo apt purge -y tree
sudo apt autoremove -y
# --- Red Hat/CentOS系 (yum / rpm) ---
sudo yum install -y tree
yum info tree
rpm -q tree
rpm -ql tree
rpm -qf /usr/bin/tree
sudo yum remove -y tree
Step 8. ハードウェア情報の確認
lsmod | head
lsusb -v 2>/dev/null | head -30
lspci -v 2>/dev/null | head -30
cat /proc/cpuinfo | head -20
cat /proc/meminfo | head -10
ls /sys/class/block/
Step 9. ディスク・パーティション・ファイルシステムの演習 (要:検証用の予備ディスク or 追加した仮想ディスク)
注意:このステップは既存データを破壊する可能性あり。仮想マシンに検証用ディスク(例:/dev/sdb)を追加した上で実施すること。
# ディスク一覧の確認 (まずは現状把握のみ)
lsblk
fdisk -l
# 対象ディスクのパーティション状況確認 (/dev/sdbを検証用ディスクと仮定)
fdisk -l /dev/sdb
# fdiskで対話的にパーティション作成 (n→p→1→Enter→Enter→w の流れ)
# ※以下のfdisk/gdisk/partedは同じ作業の3通りのやり方です。いずれか1つを選んで実行
fdisk /dev/sdb
# GPT専用ツールで作成する場合
gdisk /dev/sdb
# 非対話でのパーティション作成(データ用80% + スワップ用20%の2パーティションを作成)
parted /dev/sdb --script mklabel gpt mkpart primary ext4 0% 80% mkpart primary linux-swap 80% 100%
# ※fdisk/gdiskで作る場合も、同様にn(新規)を2回実行して2パーティション目を確保する
# LVMの一連の流れ
pvcreate /dev/sdb1
vgcreate vg_practice /dev/sdb1
lvcreate -L 2G -n lv_data vg_practice
lvcreate -L 500M -s -n lv_data_snap /dev/vg_practice/lv_data
# ファイルシステムの作成
mkfs.ext4 /dev/vg_practice/lv_data
# マウントポイントを作成して手動マウント
sudo mkdir -p /mnt/practice_data
sudo mount /dev/vg_practice/lv_data /mnt/practice_data
df -h /mnt/practice_data
# UUIDを調べてfstabに追記する準備 (実際の追記は自己責任で)
blkid /dev/vg_practice/lv_data
# echo 'UUID=xxxx-xxxx /mnt/practice_data ext4 defaults 0 2' | sudo tee -a /etc/fstab
# アンマウントとスワップの作成・確認
sudo umount /mnt/practice_data
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2
swapon --show
sudo swapoff /dev/sdb2
Step 10. プロセス管理の演習
cd ~/linuc-practice
# バックグラウンドで時間のかかる処理を模擬実行
sleep 300 &
jobs -l
# フォアグラウンドに戻す→ Ctrl+Zで一時停止→ bgでバックグラウンド再開 を試す
fg %1
# (Ctrl+Zを押す)
bg %1
# ログアウトしても継続するプロセスを作成
cd bin
cat > long_task.sh << 'EOF'
#!/bin/bash
for i in $(seq 1 100); do
echo "processing $i" >> ../logs/long_task.log
sleep 2
done
EOF
chmod +x long_task.sh
nohup ./long_task.sh &
# プロセスの監視・検索・終了
pstree -p
pgrep -f long_task.sh
top -o %CPU -n 1 -b | head -20
# シグナルは番号と名前のどちらでも指定できる (下記は主要な対応)
# 番号 名前 意味
# 1 SIGHUP 端末切断・設定の再読み込み
# 2 SIGINT Ctrl+Cによる割り込み
# 9 SIGKILL 強制終了(プロセス側で無視できない)
# 15 SIGTERM 正常終了の要求 (デフォルト、後片付け処理を挟める)
# 利用可能なシグナル一覧の確認
kill -l
# プロセスの終了 (番号指定・名前指定は等価。実際のPIDに置き換える)
kill -15 $(pgrep -f long_task.sh)
# kill -SIGTERM $(pgrep -f long_task.sh) # 上と全く同じ意味 (名前指定の例)
# tmuxでセッションを分離して作業 (演習用に一度体験しておくこと)
tmux new -s work
# tmux内で何か実行 → Ctrl+B, D でデタッチ
tmux attach -t work
Step 11. 後片付け
cd ~
# 演習で作成したプロセスの終了
pkill -f long_task.sh
# 演習用ディレクトリを丸ごと削除
ls -la linuc-practice
# rm -rf linuc-practice
まとめ
101試験は「GNUとUnixのコマンド」と「ハードウェア・ディスク・パーティション・ファイルシステム」が特に配点の厚い領域。
今回の演習を通しでもう一度実行し、grep -Eとegrepのような等価コマンド、fdisk/gdisk/partedのような似た役割のコマンドの使い分けを体で覚えていく。
102試験範囲は(シェルスクリプト、ネットワーク、システム管理、セキュリティなど)は別記事でまとめる。