クイズ 1. Linux ターミナルを使ってみる
対応バージョン: Ubuntu Server 24.04 LTS(主対象)、Rocky Linux 9(代替) 最終更新日: 2026年9月15日
解説を開く前に答えを選んでください。各シナリオでは、レッスン1で用意した使い捨てのゲスト環境とプライベートノートブックを使います。設問内のコマンドは意味を考えるためのものであり、ホスト上で実行する指示ではありません。
cat /etc/os-releaseでは Ubuntu 24.04 と表示されますが、uname -rでは異なるバージョン番号が表示されました。どの説明が当てはまりますか。- A) Linux のバージョン番号は1つしかないため、どちらかのコマンドが壊れている。
- B) Ubuntu はライブラリで、
unameはターミナルを識別する。 - C) Ubuntu はディストリビューションであり、
uname -rは実行中のカーネルを報告する。ライブラリとシェルは別のユーザー空間コンポーネントである。 - D) 新しいエディターをインストールすると、必ずカーネルも置き換わる。
答えを表示
答え: C
解説: ディストリビューションは、カーネル、ライブラリ、ツール、リポジトリ、設定をまとめたものです。カーネルはリソースを管理してシステムコールを提供し、ライブラリは再利用可能な関数を提供します。その一部はシステムコールを使用します。Bash はユーザー空間でコマンドを解釈します。それぞれのバージョンがディストリビューションのリリースと一致する必要はありません。Ubuntu は Debian 系ですが、その関係だけでデフォルト設定まで同じだとは限りません。
作業ディレクトリは自分専用のスクラッチ領域です。
cp -i notes/draft.txt notes/copy.txtを実行し、その後mv -i notes/copy.txt archive/saved.txtを実行しました。両方が成功した後、何が残っていますか。- A)
cpが下書きを削除したため、archive/saved.txtだけが残る。 - B)
notes/draft.txtとarchive/saved.txtが残り、notes/copy.txtはなくなる。 - C)
mvは copy の別表記なので、3つのファイルすべてが残る。 - D) 相対パスは
/から始まるため、ファイルは/notesと/archiveに作られる。
- A)
答えを表示
答え: B
解説: cp はコピー元を残して複製を作り、mv はその複製の場所または名前を変更します。相対パスは作業ディレクトリを起点にするため、pwd の確認が重要です。-i は移動先に既存ファイルがある場合に上書き前の確認を求めますが、一般的な取り消し履歴を提供するものではありません。保存したコピーを使えば、後で下書きを復元できます。
空の練習用ファイルを作るつもりで
touch notes/draft.txtを実行しましたが、そのファイルにはすでにメモが入っていました。touchは通常どのように動作しますか。- A) ファイルを空にし、以前のタイムスタンプを保持する。
- B) 同じ名前のディレクトリを作成する。
- C) 既存ファイルの内容を保ったまま、タイムスタンプを更新する。
- D) ファイルをホームディレクトリに移動する。
答えを表示
答え: C
解説: touch は、指定したパスが存在しない場合にだけ空のファイルを作成します。既存ファイルに対しては、通常、内容ではなくアクセス時刻と更新時刻を変更します。cat で内容を確認し、ls -l でサイズを確認できます。使われているか分からないファイル名を前提にせず、レッスンを専用ディレクトリから始めるのもこのためです。
vi で保存していない編集内容を破棄するには、どの操作が正しいですか。
- A) Bash のプロンプトで
:q!と入力する。 - B) vi の中で Esc を押し、
:q!と入力して Enter を押す。 - C)
iを押してから:wqと入力する。 - D) Ctrl+O を押すと、すべてのエディターで保存して終了する。
- A) Bash のプロンプトで
答えを表示
答え: B
解説: Esc で vi のノーマルモードに戻り、:q! を実行すると、最後の保存以降の変更を破棄して終了します。:wq は保存して終了し、:q は未保存の変更がある場合に終了を拒否します。nano では Ctrl+O でファイル名を確認して書き込み、Ctrl+X で終了します。未保存の nano の変更を破棄するには、終了時の保存確認で保存しない方を選びます。エディターのコマンドはシェルではなくエディター内で入力します。
ファイルの基本モードは
640(-rw-r-----)です。正しい解釈はどれですか。- A) 所有者には読み取り/書き込み権限があり、グループには読み取り権限があり、その他には基本的なファイル権限がない。
- B)
6は最も大きい数字なので、全員に読み取り/書き込み権限がある。 - C) 所有者には実行権限がある。
6は読み取りと実行を表す。 - D) 実行ビットがないため、そのファイルは削除できない。
答えを表示
答え: A
解説: 読み取りは4、書き込みは2、実行は1です。そのため、所有者の 6 は読み取り+書き込み、グループの 4 は読み取りを表します。ディレクトリの権限やその他の制御もアクセスやディレクトリエントリの削除に影響します。ファイルへの書き込み権限だけで削除可否が決まるわけではありません。レッスンで chmod 600 を使った場合は、想定で 644 に戻すのではなく、記録しておいた元の数値モードに戻してください。
ノートブックを保存しようとすると「Permission denied」と表示されました。最初に行うべき対応はどれですか。
- A)
/home以下の権限を再帰的に変更する。 - B) root シェルを起動し、残りのレッスンのコマンドをすべて再実行する。
- C)
pwd、id、対象ディレクトリ/ファイルの所有者と権限を確認する。 - D) ゲストのファイアウォールを無効にする。
- A)
答えを表示
答え: C
解説: 間違ったディレクトリにいるか、別のアカウントが所有するファイルを編集しようとしている可能性があります。ノートブックは自分専用のスクラッチディレクトリにあり、通常は権限昇格を必要としません。sudo は、許可されたコマンドをデフォルトでは root として実行するものであり、原因を診断する手段ではありません。sudo whoami とその後の whoami を実行すると、1つのコマンドだけを権限昇格しても、通常のシェルが恒久的に root になるわけではないことを確認できます。
Ubuntu で
sudo apt updateが正常に完了しました。インストール済みのすべてのパッケージがアップグレードされ、nano もインストールされたと考えてよいですか。- A) はい。
updateは利用可能な更新をすべてインストールし、エディターがなければ追加するという意味です。 - B) いいえ。パッケージリポジトリのインデックスを更新しただけです。ソフトウェアのインストールやアップグレードには別のパッケージ操作が必要です。
- C) 現在実行中のカーネルだけが変更された。
- D) 新たに検出されたサービスがすべて有効になった。
- A) はい。
答えを表示
答え: B
解説: apt update は利用可能なパッケージの情報を更新します。apt install nano はインストールと依存関係の解決を要求し、apt upgrade は別の目的で使います。ゲストでは、確定する前に提案されたトランザクションを確認してください。ローカルの dpkg-query でインストール済みパッケージの記録を調べられます。後からパッケージを削除しても、依存関係、キャッシュ、ログ、設定への変更がすべて正確に元に戻るわけではありません。任意のインストールから完全に復旧するには、記録しておいた VM スナップショットを使います。
Rocky Linux 9 のゲストにエディターが必要です。レッスンの手順に合う準備方法はどれですか。
- A) Ubuntu のリポジトリを追加して APT を実行する。
- B) ローカルのパッケージ一覧には
rpm -qを使い、インストールには DNF を使う。yumとの互換性はあるが、両方を実行する必要はない。 - C) すべてのソフトウェアはサービスなので、
systemctl install nanoを使う。 - D) パッケージをインストールする前にカーネルを再構築する。
答えを表示
答え: B
解説: Rocky は RPM パッケージと DNF による依存関係管理を使います。レッスンで代替エディターとして扱うパッケージは nano と vim-minimal です。Ubuntu では別のパッケージファミリーとパッケージ名を使います。ディストリビューションごとの違いを理解すれば適切なツールを選べますが、リポジトリを混在させたり、サービスやネットワークのデフォルト設定が同じだと決めつけたりしてはいけません。
ps -p $$ -o pid,ppid,user,commとsleep 30の演習では、何を確認できますか。- A) シェルのプロセス識別情報と、シェルを一時的に占有するフォアグラウンドプロセス。
- B) ゲストにインストールされたすべてのパッケージ。
- C) シェルコマンドを実行するたびに作成される永続的なサービス。
- D) 2台の VM とすべての再起動後で同じ値になる PID。
答えを表示
答え: A
解説: $$ は現在の Bash の PID に展開され、PPID は親プロセスを示します。プロセスはプログラムが実行中のインスタンスであり、パッケージはディスクにインストールされたソフトウェアです。sleep は30秒後に終了するか、Ctrl+C で中断できます。サービスは有効化されていません。また、文書からコピーした PID を使って、正体の分からないプロセスを終了させてはいけません。
systemctl is-active systemd-journald.serviceはactiveを報告し、is-enabledはstaticを報告しました。どの結論が妥当ですか。
- A) ログサービスは
enabledではないため、障害が発生している。 - B) ユニットは現在稼働しており、通常の enablement セクションはない。依存関係や有効化経路から起動できる。
- C)
staticはログが永久に凍結されていることを意味する。 - D) 両方のコマンドが同じ単語を返すまで
enableを繰り返す必要がある。
答えを表示
答え: B
解説: 実行時の状態と enablement は別のものです。start は現在の動作に影響し、enable は enablement 用のリンクを作成します。また、--now を併用しない限り、enable だけでユニットが起動するわけではありません。static ユニットだからといって、故障しているとは限りません。表示を特定の状態にするためにシステムサービスを変更するのではなく、Loaded、Active、関連ログを確認してください。
sudo journalctl -b -u systemd-journald.service -n 20 --no-pagerは、何を選択しますか。
- A) すべてのブートにおける、すべてのログファイルの先頭20行。
- B) 現在のブートで、そのユニットに一致する直近の保持済みログエントリ20件を、ページャーを使わずに出力する。
- C) すべてのエントリを表示した後、最後の20件を削除する。
- D) ジャーナルのメッセージはすべてエラーなので、エラーだけを表示する。
答えを表示
答え: B
解説: -b はブートを、-u はユニットを、-n は直近のエントリ数を指定します。これは読み取り操作です。タイムスタンプとメッセージの前後関係を確認してください。情報メッセージは障害を意味しません。一致するエントリがない場合は、フィルター条件または保持設定が原因の可能性があります。また、権限の低いユーザーには一部の情報が見えないことがあります。ログ機能が壊れていると結論付ける前に、サービスの状態と照らし合わせてください。
- VM コンソールを開き直したところ、
LAB_DIRが空でした。適切なクリーンアップ手順はどれですか。
- A) 名前が
network-beginnerで始まるディレクトリをすべて削除する。 - B) 前のシェルの作業ディレクトリを推測して、再帰的な削除を実行する。
- C) 記録した正確なパスから
LAB_DIRを復元し、その内容を確認する。名前を指定した練習用ファイルだけを削除してから、空のディレクトリを削除する。 - D) すべてのスクラッチファイルが消えるように
/tmpを削除する。
答えを表示
答え: C
解説: 変数はセッションをまたいで自動的に保持されません。記録した専用パスと明示したファイル名で、操作範囲を限定できます。rmdir が空でないディレクトリの削除を拒否した場合は、それが有用な手掛かりです。権限を上げて広範囲に削除するのではなく、エディターの一時ファイルや未完了の手順が残っていないか確認してください。test ! -e "$LAB_DIR" が終了ステータス 0 を返せば、その特定のパスが存在しないことを確認できます。
間違えた解説があれば、該当するレッスンの演習を復習してから、アドレスとインターフェイスに進んでください。