理解度チェック:ターミナルを制覇しよう
クイズの説明
Step 1で学んだ内容の理解度をチェックします。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. 以下のコマンドの出力として正しいものはどれですか?
bash
echo "apple banana cherry" | tr ' ' '\n' | sort -r | head -1- A) apple
- B) banana
- C) cherry
- D) エラーになる
正解: C
処理の流れ:
echoで文字列を出力tr ' ' '\n'でスペースを改行に変換(各単語が1行に)sort -rで逆順(アルファベット降順)にソート → cherry, banana, applehead -1で先頭1行を取得 → cherry
Q2. 標準エラー出力だけをファイルに保存するリダイレクトはどれですか?
- A)
command > errors.txt - B)
command 2> errors.txt - C)
command &> errors.txt - D)
command >> errors.txt
正解: B
>は標準出力(fd 1)のリダイレクト2>は標準エラー出力(fd 2)のリダイレクト&>は標準出力と標準エラー出力の両方>>は標準出力の追記
Q3. バックグラウンドで実行中のプロセスをフォアグラウンドに戻すコマンドはどれですか?
- A)
bg %1 - B)
fg %1 - C)
jobs %1 - D)
kill %1
正解: B
fg %1はジョブ番号1をフォアグラウンドに戻すbg %1はジョブ番号1をバックグラウンドで再開jobsはジョブ一覧を表示kill %1はジョブ番号1を終了
Q4. 以下の awk コマンドが表示するものとして正しいのはどれですか?
bash
echo "Alice 85 Bob 92 Carol 78" | awk '{print $2, $4, $6}'- A) Alice Bob Carol
- B) 85 92 78
- C) Alice 85 Bob
- D) エラーになる
正解: B
awk はスペース区切りでフィールドを分割します。
$1= Alice,$2= 85$3= Bob,$4= 92$5= Carol,$6= 78
{print $2, $4, $6} は2番目、4番目、6番目のフィールド(85, 92, 78)を出力します。
Q5. && と || の動作として正しいものはどれですか?
- A)
&&は前のコマンドが失敗したら次を実行する - B)
||は前のコマンドが成功したら次を実行する - C)
&&は前のコマンドが成功したら次を実行し、||は失敗したら次を実行する - D)
&&も||も結果に関係なく次を実行する
正解: C
&&(AND): 前のコマンドが成功(終了コード0)したら次を実行||(OR): 前のコマンドが失敗(終了 コード0以外)したら次を実行;: 前のコマンドの結果に関係なく次を実行
例: mkdir test && cd test はディレクトリ作成に成功したら移動
Q6. PATHについて正しい説明はどれですか?
- A) PATHはファイルの保存場所を示す変数である
- B) PATHはシェルがコマンドを検索するディレクトリのリストである
- C) PATHはカレントディレクトリのパスを保持する変数である
- D) PATHはホームディレクトリを指す変数である
正解: B
PATH はシェルがコマンド(実行ファイル)を探すディレクトリの一覧です。
: で区切られた複数のディレクトリパスで構成されます。
例: PATH=/usr/local/bin:/usr/bin:/bin
コマンドを実行すると、PATH に列挙されたディレクトリを左から順に検索し、 最初に見つかった実行ファイルを実行します。
</details>Q7. 以下のコマンドで、ログアウトしてもプロセスを継続させるのはどれですか?
- A)
command & - B)
nohup command & - C)
bg command - D)
exec command
正解: B
command &はバックグラウンド実行だが、ログアウト時にSIGHUPで終了する場合があるnohup command &はSIGHUPシグナルを無視するため、ログアウト後も実行が続行されるbgは停止中のジョブをバックグラウンドで再開するコマンドexecは現在のシェルを別のプロセスに置き換える
Q8. 以下のパイプラインの目的として正しいものはどれですか?
bash
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -5- A) ログファイルの最初の5行を表示する
- B) ログファイルから重複行を削除する
- C) アクセス元IPアドレスの上位5件を頻度順に表示する
- D) ログファイルを逆順にソートする
正解: C
処理の流れ:
cat access.log→ ログファイルを出力awk '{print $1}'→ 1列目(通常はIPアドレス)を抽出sort→ アルファベット順にソート(uniq のため必須)uniq -c→ 連続する重複をカウントsort -rn→ カウント数の降順にソートhead -5→ 上位5件を表示
これはアクセスログ解析の定番パターンです。
</details>結果
7問以上正解の場合
合格です。おめでとうございます。
Step 1「ターミナルを制覇しよう」を完了しました。 次は Step 2「シェルスクリプトの魔法を習得しよう」に進みましょう。
6問以下の場合
もう少し復習しましょう。
間違えた問題の内容を、該当するセクションで復習してください:
| 問題 | 復習セクション |
|---|---|
| Q1, Q4 | step1_2 上級コマンド(sort, awk) |
| Q2, Q8 | step1_3 パイプとリダイレクト |
| Q3, Q7 | step1_4 プロセス管理 |
| Q5, Q6 | step1_5 環境変数とPATH |
Step 1 完了
お疲れさまでした。
学んだこと
- 上級コマンド: sort, uniq, cut, tr, sed, awk, xargs
- パイプとリダイレクト: |, >, >>, 2>, /dev/null
- コマンド連結: &&, ||, ;
- プロセス管理: ps, top, kill, bg, fg, nohup
- 環境変数: export, PATH, .bashrc, alias
次のステップ
Step 2: シェルスクリプトの魔法を習得しよう(4時間)
ここまでの知識を「スクリプト」にまとめ、繰り返し使える自動化ツールとして仕上げます。
推定所要時間: 15分