インフラエンジニアの羅針盤

インフラエンジニア1〜3年目のための技術ガイド

Linuxコマンドラインの基本操作とBashキーバインド・viエディタの使い方【LinuC 101試験対策】

公開
,
LinuC Level 1 第01回 主題1.03 GNUとUnixのコマンド



LinuCレベル1(101試験)の学習において、最初に取り組むべき基礎分野が「主題1.03 GNUとUnixのコマンド」に含まれる「1.03.1 コマンドラインの操作」および「1.03.5 エディタを使った基本的なファイル編集の実行」です。

Linuxシステム管理の実務および試験本番では、GUIのない黒い画面(キャラクターユーザーインターフェース:CUI)でのキーボード操作が前提となります。Bashの入力支援機能(タブ補完、履歴展開、Readlineキーバインド)を使いこなし、標準テキストエディタであるvi(vim)による設定ファイルの編集手順を体系的に身につけることが、すべての学習の土台となります。

本記事の到達目標

  • シェル(Bash)の基本構文、メタ文字、引用符(クォート)の厳密な展開ルールを説明できる
  • Bashのコマンド履歴(history)とReadlineショートカットキーを活用して効率的な入力が行える
  • シェル変数と環境変数の違いを理解し、exportunset を用いて設定・管理できる
  • viエディタの3つの動作モード(ノーマル・挿入・コマンドライン)を自在に遷移し、保存・終了・編集・置換ができる
  • LinuC 101試験の記述式問題(コマ問)で頻出するコマンド名、オプション、環境変数名を正確に記述できる

検証環境情報

  • ディストリビューション:AlmaLinux 9.8 (Olive Jaguar)
  • カーネルバージョン:Linux 5.14.0-570.el9.x86_64
  • シェル環境:GNU bash バージョン 5.1.8(1)-release
  • エディタ:VIM – Vi IMproved 8.2 (2019 Dec 12)
  • 検証ホスト:linuc-node01 (192.168.2.138)
目次
  1. 1. Linuxコマンドラインの基礎とBashの基本概念
    1. 1.1 シェル(Bash)と端末(ターミナル)の役割
    2. 1.2 コマンドの構文構造(コマンド名・オプション・引数)
    3. 1.3 コマンドの連続実行と条件実行(;、&&、||)
  2. 2. コマンドライン操作を高速化するBash機能
    1. 2.1 タブ補完機能の活用(コマンド・ファイル名)
    2. 2.2 コマンド履歴(history)の参照・検索・履歴展開
    3. 2.3 Readlineショートカットキー(カーソル移動・編集・インクリメンタル検索)
  3. 3. シェル変数・環境変数と引用符のルール
    1. 3.1 シェル変数と環境変数の違いと定義方法(export, env, set, unset)
    2. 3.2 LinuCで頻出する重要環境変数一覧(PATH, HOME, HISTSIZE等)
    3. 3.3 引用符の使い分け(シングルクォート・ダブルクォート・バッククォート・バックスラッシュ)
  4. 4. vi/vimエディタの基本概念と3つのモード
    1. 4.1 viエディタがLinux管理で必須とされる理由
    2. 4.2 3大モードの全体像(ノーマルモード・挿入モード・コマンドラインモード)
    3. 4.3 挿入モードへの移行コマンドの使い分け(i, a, o, I, A, O)
  5. 5. viエディタの実践操作テクニック
    1. 5.1 効率的なカーソル移動コマンド(h/j/k/l, w/b, 0/$, G/gg)
    2. 5.2 テキストの編集・削除・コピー・貼り付け(x, dd, dw, yy, p, u, Ctrl+r)
    3. 5.3 ファイルの保存と終了コマンド(保存・終了・強制終了・ZZ)
    4. 5.4 文字列の検索と一括置換(/, ?, n, N, :%s)
  6. 6. 実機ハンズオン演習:AlmaLinux 9環境でコマンドとviを体験する
    1. 6.1 実機検証環境の確認
    2. 6.2 演習1:Bashキーバインド・環境変数・引用符の挙動確認
    3. 6.3 演習2:viエディタによる設定ファイル模倣編集と保存
  7. 7. LinuC 101試験対策まとめとコマ問頻出チェック
    1. 7.1 コマ問(記述式)頻出キーワード一覧表
    2. 7.2 Ping-t演習へのブリッジ(対象分野と推奨学習順)
  8. 8. まとめと次回予告

1. Linuxコマンドラインの基礎とBashの基本概念

1.1 シェル(Bash)と端末(ターミナル)の役割

Linuxを操作する際、ユーザーとカーネル(OSの中核)の間を橋渡しするソフトウェアを「シェル(Shell)」と呼びます。ユーザーがキーボードから入力した文字列を解釈し、対応するプログラムをカーネルに実行させ、その結果を画面に返す役割を持ちます。

Linuxディストリビューションにおいて標準採用されている代表的なシェルが「Bash(Bourne Again Shell)」です。ターミナルエミュレータ(端末)を起動してログインすると、通常以下のような「シェルプロンプト」が表示されます。

[user01@linuc-node01 ~]$ 

このプロンプトは、左から「ログインユーザー名(user01)」、「ホスト名(linuc-node01)」、「現在の作業ディレクトリ(カレントディレクトリ、~ はホームディレクトリを示す)」を表します。末尾の記号はユーザー権限を示しており、一般ユーザーの場合は $、システム管理者(rootユーザー)の場合は # となります。

1.2 コマンドの構文構造(コマンド名・オプション・引数)

Linuxのコマンドラインは、原則として「コマンド名」「オプション」「引数(ひきすう)」の3要素を半角スペースで区切って入力します。

コマンド名 [オプション] [引数]
要素 役割 具体例(ls -l /var/log の場合)
コマンド名 実行したいプログラム名 ls(ファイル一覧を表示する)
オプション コマンドの挙動を変更・修飾する指定(- または -- で開始) -l(詳細情報をリスト形式で表示する)
引数 コマンドの処理対象となるファイル名やディレクトリ名、文字列 /var/log(対象ディレクトリ)

オプションには、ハイフン1つの後に英字1文字を指定する「短縮形式(例: -a, -l)」と、ハイフン2つの後に単語を指定する「完全形式(例: --all, --human-readable)」が存在します。多くのコマンドでは、ls -a -l のように複数の短縮形式オプションを ls -alls -la のようにまとめて記述できます。

1.3 コマンドの連続実行と条件実行(;、&&、||)

1行のコマンドラインの中で、複数のコマンドを続けて実行するための制御演算子(メタ文字)が用意されています。LinuC試験では、終了ステータス(成功: 0、失敗: 0以外)に応じた分岐処理の挙動が頻繁に出題されます。

演算子 動作名称 実行条件・動作規則 具体例
; 無条件連続実行 前のコマンドの成否に関わらず、左から右へ順に実行する date ; hostname
&& 条件付き実行(AND) 直前のコマンドが正常終了(終了ステータス0)した場合のみ、次のコマンドを実行する mkdir testdir && cd testdir
|| 条件付き実行(OR) 直前のコマンドが異常終了(終了ステータス0以外)した場合のみ、次のコマンドを実行する cd testdir || echo "Directory not found"

実機検証ログ:終了ステータスによる分岐

[user01@linuc-node01 ~]$ true && echo "成否判定:成功"
成否判定:成功

[user01@linuc-node01 ~]$ false || echo "成否判定:失敗時の代替処理"
成否判定:失敗時の代替処理

true コマンドは常に終了ステータス 0 を返し、false コマンドは常に 1 を返します。スクリプトやパイプライン処理において極めて基礎的な概念です。

2. コマンドライン操作を高速化するBash機能

2.1 タブ補完機能の活用(コマンド・ファイル名)

Bashのコマンドライン操作において、入力の手間を省きスペルミスを防ぐ最も有効な機能が「タブ補完(Tab completion)」です。

コマンド名やファイルパスの先頭数文字を入力した状態で Tab キーを1回押すと、一意に定まる場合は残りの文字列が自動補完されます。候補が複数存在する場合は、Tab キーを素早く2回連続で押すことで、該当する候補一覧がターミナル上に表示されます。

[user01@linuc-node01 ~]$ sys[Tab][Tab]
sysctl          systemctl       systemd-analyze systemd-cat ...

実務および試験では、正確なファイル名(長いログファイル名や設定ファイル名)を手動で打ち込むのではなく、タブ補完を積極的に活用して誤字を防ぐ運用が基本となります。

2.2 コマンド履歴(history)の参照・検索・履歴展開

Bashは、過去に入力したコマンドをメモリ上のバッファに記憶しており、history コマンドを実行することで一覧表示できます。

[user01@linuc-node01 ~]$ history | tail -n 5
  996  cat /etc/os-release
  997  uname -r
  998  ip addr show
  999  systemctl status NetworkManager
 1000  history

コマンド履歴に関しては、以下の試験頻出ポイントを押さえる必要があります。

対象 機能・設定内容 デフォルト値 / 説明
~/.bash_history 履歴保存ファイル ログアウト時にメモリ上のコマンド履歴が書き込まれるファイル
HISTSIZE メモリ上の履歴保存件数 1000(現在のシェルセッションで保持する最大行数)
HISTFILESIZE ファイル内の履歴保存件数 ~/.bash_history に永続化される最大行数
HISTFILE 履歴ファイルのパス指定 指定しない場合は ~/.bash_history が使用される
history -c 履歴バッファの消去 現在のシェルセッション内の履歴リストをクリアする

また、感嘆符(!)を用いた「イベント指定子(履歴展開)」により、過去のコマンドを再入力せずに呼び出すことができます。

記法 展開内容 具体例
!! 直前に実行したコマンド全体を再実行 sudo !!(権限不足で失敗した直前のコマンドをsudoで実行)
!n 履歴番号 n のコマンドを実行 !998(履歴番号998の ip addr show を実行)
!-n 現在の位置から n 個前のコマンドを実行 !-2(2つ前に実行したコマンドを実行)
!string string で始まる直近のコマンドを実行 !sys(直近に実行した systemctl ... を実行)
!$ 直前のコマンドの最後の引数を参照 cat /etc/hosts の後に vi !$ を実行すると vi /etc/hosts となる

2.3 Readlineショートカットキー(カーソル移動・編集・インクリメンタル検索)

Bashのコマンドライン入力機能は、内部で「GNU Readline」ライブラリによって処理されています。デフォルトではEmacsスタイルのキーバインドが有効になっており、矢印キーやバックスペースキーに手を伸ばすことなく、ホームポジションから素早くカーソル移動や編集が行えます。

キー操作 動作内容 分類
Ctrl + A カーソルを行の先頭(行頭)へ瞬時に移動 カーソル移動
Ctrl + E カーソルを行の末尾(行末)へ瞬時に移動 カーソル移動
Ctrl + U カーソル位置から行頭までの文字列を一括削除(キル) 文字列削除
Ctrl + K カーソル位置から行末までの文字列を一括削除(キル) 文字列削除
Ctrl + W カーソルの直前にある1単語を削除 文字列削除
Ctrl + Y 直前に削除(キル)した文字列をカーソル位置に貼り付け(ヤンク) 貼り付け
Ctrl + L 端末画面をクリアしてプロンプトを最上部に表示(clear コマンドと同等) 画面制御
Ctrl + C 現在実行中の処理に SIGINT シグナルを送信して強制中断 プロセス制御
Ctrl + D 入力終了(EOF)を送信。空行で入力した場合はシェルからログアウト シェル制御
Ctrl + R コマンド履歴のインクリメンタル逆検索モードを開始 履歴検索

Ctrl + R によるインクリメンタル検索の手順

Ctrl + R を押すと、プロンプトが (reverse-i-search)`': に変化します。探したいコマンドのキーワード(例: systemctl)を入力していくと、過去の履歴から一致する直近のコマンドが自動表示されます。目的のコマンドが見つかったら Enter で即時実行するか、左右矢印キーでコマンドラインに呼び出して編集できます。

Linux Bashコマンドライン操作とキーバインド・引用符の仕組み
図1:Bash主要キーバインド(Readline)と引用符(クォート)の展開ルール

3. シェル変数・環境変数と引用符のルール

3.1 シェル変数と環境変数の違いと定義方法(export, env, set, unset)

Bashで扱う変数には、「シェル変数」と「環境変数」の2種類が存在します。この2者の違いと、子プロセスへの継承ルールはLinuC試験で最重要の頻出概念です。

項目 シェル変数 環境変数
有効スコープ 変数を定義した「現在のシェルプロセス内のみ」で有効 現在のシェルプロセスおよび「そのシェルから起動された子プロセス」へ引き継がれる
定義方法 変数名=値= の前後に空白を入れない) export 変数名=値 または export 変数名
確認コマンド set(シェル変数と環境変数の両方を表示) env または printenv(環境変数のみを表示)
削除コマンド unset 変数名 unset 変数名

代入時の空白禁止ルール

Bashにおいて変数を代入する際、VAR = value のように = の前後に半角スペースを入れてはいけません。スペースを入れると、Bashは VAR という名前のコマンドに =value という2つの引数を渡して実行しようとするため、command not found エラーとなります。

3.2 LinuCで頻出する重要環境変数一覧(PATH, HOME, HISTSIZE等)

Linuxシステムには、OSやアプリケーションの動作を決定づける事前定義済みの環境変数が多数存在します。試験で問われる重要変数を以下にまとめます。

環境変数名 意味・設定内容 代表的な値の例
PATH コマンド検索パス(実行ファイルの格納ディレクトリをコロン : 区切りで列挙) /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
HOME カレントユーザーのホームディレクトリの絶対パス /home/user01(rootユーザーは /root
USER(または LOGNAME 現在ログインしているユーザー名 user01
SHELL ユーザーがログイン時に起動するデフォルトのログインシェル /bin/bash
PWD 現在の作業ディレクトリ(カレントディレクトリ)の絶対パス /var/log
OLDPWD 直前にいた作業ディレクトリ(cd - で参照されるパス) /home/user01
PS1 シェルの基本プロンプトの表示形式を定義する文字列 [u@h W]$
LANG システムの標準言語・文字コード設定(ロケール) ja_JP.UTF-8en_US.UTF-8
TERM 使用している端末の種類(ターミナルエミュレータ種別) xterm-256color

特に PATH 環境変数は重要です。ユーザーが ls とだけ入力した際、シェルは PATH に登録されたディレクトリ群を左から順に探索し、最初に見つかった実行ファイルを実行します。現在のディレクトリ(.)を検索対象に含めることはセキュリティ上のリスク(悪意ある偽装コマンドの意図しない実行)となるため、一般的なLinux環境では意図的に PATH から除外されています。

3.3 引用符の使い分け(シングルクォート・ダブルクォート・バッククォート・バックスラッシュ)

Bashがコマンドラインを解釈する際、特定の記号(メタ文字)は特別な処理を引き起こします。文字列を意図通りに扱うためには、4種類の引用・エスケープ構文の挙動差を正確に把握する必要があります。

記号 名称 機能・解釈ルール 実例 出力結果
' ' シングルクォート 囲まれたすべての文字の特殊な意味を無効化し、純粋な文字列として文字通り解釈する(変数展開やコマンド置換は一切行われない) echo '$USER' $USER
" " ダブルクォート 空白やパイプ等のメタ文字は無効化するが、$(変数展開)、`(コマンド置換)、(エスケープ)の特殊効果は保持される echo "$USER" user01
` ` または $( ) バッククォート / コマンド置換 囲まれた文字列を独立したコマンドとして実行し、その標準出力結果をコマンドライン内に展開する echo "Today: $(date +%Y-%m-%d)" Today: 2026-09-08
バックスラッシュ(エスケープ) 直後の1文字だけの特殊な意味を無効化する echo "Price: $100" Price: $100

コマンド置換における $( ) と ` ` の推奨

バッククォート “ `command` “ は古くから使われていますが、視認性が低く、入れ子(ネスト)にする際にバックスラッシュによるエスケープが複雑化します。現代のBashスクリプトでは、可読性が高くネストが容易な $(command) 構文を使用することが強く推奨されています。

4. vi/vimエディタの基本概念と3つのモード

4.1 viエディタがLinux管理で必須とされる理由

Linuxサーバー管理において、テキストファイルの編集作業は避けて通れません。GUI環境のないサーバーや、最小構成でインストールされたシステム、さらにはシステム障害時のシングルユーザーモードであっても、すべてのLinuxディストリビューションに必ず標準搭載されているテキストエディタが「vi(ブイアイ)」です。

現代のLinuxディストリビューション(AlmaLinuxやUbuntuを含む)では、オリジナルのviを高機能に拡張した互換エディタ「vim(Vi IMproved)」が vi コマンドの実体としてリンクされているケースが主流です。

4.2 3大モードの全体像(ノーマルモード・挿入モード・コマンドラインモード)

メモ帳などの一般的なテキストエディタとviが根本的に異なるのは、「操作モード」の概念が存在する点です。viには主に以下の3つのモードがあり、キー入力量を最小限に抑えつつ効率的な編集を行えるよう設計されています。

モード名 役割 画面の目印 他モードへの移行キー
ノーマルモード
(コマンドモード)
viの起点となる基本モード。カーソル移動、テキストの削除、コピー、貼り付けなどを行う。起動時は必ずこのモードになる 画面下部に特段の表示がない状態 ・挿入モードへ:i, a, o
・コマンドラインモードへ::, /, ?
挿入モード
(インサートモード)
通常のワープロソフトと同様に、キーボードから文字をファイルに入力するモード 最下行に -- INSERT --(または -- 挿入 --)と表示 ・ノーマルモードへ復帰:Esc キー
コマンドラインモード
(Exモード)
ファイルの保存、終了、文字列の検索・一括置換、行番号表示などの全体設定を行うモード 最下行に :/ が表示されカーソルが移動 ・実行してノーマルモードへ:Enter
・キャンセルして復帰:Esc キー
vi・vimの3大操作モードとコマンド体系
図2:vi/vimエディタの3つの動作モード遷移フローと主要コマンド

vi操作で迷ったときの鉄則

viを操作していて「現在どのモードにいるのか分からなくなった」「意図しない文字が入力された」という場合は、慌てずに Esc キーを2〜3回連打してください。どの状態からでも確実に起点である「ノーマルモード」へ戻ることができます。

4.3 挿入モードへの移行コマンドの使い分け(i, a, o, I, A, O)

ノーマルモードから文字入力を開始する際、カーソルのどの位置から入力を始めるかに応じて複数のコマンドが用意されています。LinuC試験では、これらの細かな移行位置の違いが問われます。

キー 動作名称 入力開始位置の仕様
i insert 現在のカーソル位置の直前から文字入力を開始する
I Insert (行頭) カーソルがある行の行頭(最初の非空白文字の前)から文字入力を開始する
a append 現在のカーソル位置の直後(1文字後ろ)から文字入力を開始する
A Append (行末) カーソルがある行の行末から文字入力を開始する
o open below カーソルがある行の下(次行)に新しい空行を挿入し、入力を開始する
O Open above カーソルがある行の上(前行)に新しい空行を挿入し、入力を開始する

5. viエディタの実践操作テクニック

5.1 効率的なカーソル移動コマンド(h/j/k/l, w/b, 0/$, G/gg)

ノーマルモードにおけるカーソル移動は、矢印キーでも可能ですが、ホームポジションを崩さない専用キーの習得が推奨されます。

キー 移動先 分類
h 左へ1文字移動 1文字単位(基本)
j 下へ1行移動 1行単位(基本)
k 上へ1行移動 1行単位(基本)
l 右へ1文字移動 1文字単位(基本)
w 次の単語の先頭へ移動 単語単位
b 前の単語の先頭へ移動 単語単位
0(数字ゼロ) 行の先頭(1文字目)へ移動 行内移動
^ 行の最初の非空白文字へ移動 行内移動
$ 行の末尾へ移動 行内移動
G ファイルの最終行へ移動 ファイル全体移動
1G または gg ファイルの先頭行(1行目)へ移動 ファイル全体移動
:n(例: :25 指定した n 行目へ直接移動 行番号ジャンプ

5.2 テキストの編集・削除・コピー・貼り付け(x, dd, dw, yy, p, u, Ctrl+r)

ノーマルモードで行うテキストの削除やコピーは、直感的なショートカットキーで構成されています。viにおける「削除」は、内部的にクリップボード(レジスタ)へ格納されるため、実質的に「カット(切り取り)」として機能します。

キー 動作内容 回数指定の例
x カーソル位置の文字を1文字削除 5x(5文字削除)
dd カーソルがある行を丸ごと1行削除(カット) 3dd(カーソル行から3行削除)
dw カーソル位置から単語の末尾まで削除 2dw(2単語削除)
D カーソル位置から行末まで削除
yy カーソルがある行を丸ごと1行コピー(ヤンク) 3yy(3行コピー)
yw カーソル位置から単語の末尾までコピー
p コピーまたは削除したテキストをカーソルの下(または直後)に貼り付け(ペースト)
P コピーまたは削除したテキストをカーソルの上(または直前)に貼り付け
u 直前の操作を取り消す(アンドゥ / 元に戻す)
Ctrl + R 取り消した操作をやり直す(リドゥ)

5.3 ファイルの保存と終了コマンド(保存・終了・強制終了・ZZ)

編集作業が終わった後の保存・終了操作は、コマンドラインモード(ノーマルモードで : を入力)から実行します。また、ノーマルモードから直接実行できる2文字コマンドも試験の定番です。

コマンド モード 処理内容
:w コマンドライン 編集内容をファイルに書き込んで保存する
:w filename コマンドライン 指定したファイル名で新規保存(別名保存)する
:q コマンドライン viを終了する(未保存の変更がある場合はエラーとなり終了できない)
:wq コマンドライン 編集内容を保存してviを終了する
:x コマンドライン 変更がある場合のみ保存してviを終了する(:wq とほぼ同等)
:q! コマンドライン 編集内容を破棄し、保存せずに強制終了する
ZZ(大文字) ノーマル 保存して終了する(:wq と同等)
ZQ(大文字) ノーマル 保存せずに強制終了する(:q! と同等)

5.4 文字列の検索と一括置換(/, ?, n, N, :%s)

ファイル内の特定文字列を検索したり、一括で置き換える操作は実務の設定変更作業で多用されます。

記法 / コマンド 機能 説明
/pattern 前方検索 カーソル位置からファイル末尾方向へ文字列 pattern を検索
?pattern 後方検索 カーソル位置からファイル先頭方向へ文字列 pattern を検索
n 次の候補へジャンプ 検索した方向と同じ方向で次の一致箇所へ移動
N 逆方向の候補へジャンプ 検索した方向と逆の方向へ移動
:s/old/new/ 行内置換(1箇所) 現在カーソルがある行の最初の oldnew に置換
:s/old/new/g 行内置換(全箇所) 現在カーソルがある行の全 oldnew に置換
:%s/old/new/g ファイル全体置換 ファイル内全域に存在する oldnew に一括置換
:%s/old/new/gc 確認付き全体置換 置換するたびに replace with new (y/n/a/q/l/^E/^Y)? と確認を求める

行番号の表示設定

vi上で現在行を把握したい場合、コマンドラインモードで :set number(短縮形: :set nu)を実行すると各行の左側に行番号が表示されます。非表示に戻すには :set nonumber(短縮形: :set nonu)を実行します。

6. 実機ハンズオン演習:AlmaLinux 9環境でコマンドとviを体験する

6.1 実機検証環境の確認

ここからは、手元のAlmaLinux 9環境で実際にコマンドを実行し、動作を確認していきます。まずはターミナルを開き、ログインユーザー名とホスト名、シェルのバージョンを確認します。

[user01@linuc-node01 ~]$ whoami
user01

[user01@linuc-node01 ~]$ bash --version | head -n 1
GNU bash, バージョン 5.1.8(1)-release (x86_64-redhat-linux-gnu)

6.2 演習1:Bashキーバインド・環境変数・引用符の挙動確認

Bashの環境変数の設定と、引用符による展開の差異を実機で実証します。

  1. シェル変数の定義と確認:シェル変数 MY_APP を定義し、現在値を出力します。
    [user01@linuc-node01 ~]$ MY_APP="WebEngine"
    [user01@linuc-node01 ~]$ echo $MY_APP
    WebEngine
  2. 子プロセスへの未継承の確認:新しいbashプロセス(子プロセス)を起動し、シェル変数が引き継がれていないことを確認します。
    [user01@linuc-node01 ~]$ bash -c 'echo "子プロセス内の値: [$MY_APP]"'
    子プロセス内の値: []
  3. 環境変数への昇格(export)export コマンドを用いて環境変数に設定し、子プロセスへ値が引き継がれることを確認します。
    [user01@linuc-node01 ~]$ export MY_APP
    [user01@linuc-node01 ~]$ bash -c 'echo "子プロセス内の値: [$MY_APP]"'
    子プロセス内の値: [WebEngine]
  4. 引用符の展開ルールの実証:シングルクォート、ダブルクォート、バックスラッシュの挙動の違いを比較します。
    [user01@linuc-node01 ~]$ echo 'Single: App is $MY_APP'
    Single: App is $MY_APP
    
    [user01@linuc-node01 ~]$ echo "Double: App is $MY_APP"
    Double: App is WebEngine
    
    [user01@linuc-node01 ~]$ echo "Escape: App is $MY_APP"
    Escape: App is $MY_APP
  5. 変数の削除unset コマンドで変数を破棄します。
    [user01@linuc-node01 ~]$ unset MY_APP
    [user01@linuc-node01 ~]$ echo "確認: [$MY_APP]"
    確認: []

6.3 演習2:viエディタによる設定ファイル模倣編集と保存

実務のWebサーバー設定を想定し、viエディタを用いて設定ファイルの作成、編集、文字列の一括置換、保存終了を行います。

  1. viの起動と新規ファイル作成:ターミナルから vi test_server.conf を実行してエディタを起動します。
    [user01@linuc-node01 ~]$ vi test_server.conf
  2. 挿入モードへの移行とテキスト入力:ノーマルモードで i を押し、画面左下に -- INSERT -- が表示されたことを確認して以下の内容を入力します。
    server_name=web01
    server_role=web
    server_port=80
  3. ノーマルモードへの復帰Esc キーを押し、画面左下の -- INSERT -- 表示が消えることを確認します。
  4. 文字列の一括置換:コマンドラインモードへ移行するため : を押し、ファイル内の web という文字列をすべて api に置き換えます。
    :%s/web/api/g

    Enter を押すと、該当する2箇所が置換されます。

  5. 保存して終了:再び : を押し、wq と入力して Enter を押します。
    :wq
  6. 編集結果の検証:ターミナル上で cat コマンドを実行し、変更内容が正しく反映されていることを確認します。
    [user01@linuc-node01 ~]$ cat test_server.conf
    server_name=api01
    server_role=api
    server_port=80

7. LinuC 101試験対策まとめとコマ問頻出チェック

7.1 コマ問(記述式)頻出キーワード一覧表

CBT本番試験で、選択式ではなくキーボードから直接文字列を入力させられる「コマ問」の頻出キーワードを整理しました。スペルミスや大文字小文字の誤りは不合格に直結するため、確実に記述できるよう復習してください。

出題区分 コマンド・変数・記法 出題の論点・記述ポイント
環境変数設定 export VAR=value イコールの前後に空白を含めない書式
変数削除 unset VAR 引数に $ を付けずに変数名のみを指定する点
コマンド履歴参照 history 履歴消去のオプションは -c(clear)
直前コマンド実行 !! 感嘆符2つの記法
直前引数の参照 !$ 末尾引数を表すドル記号の組み合わせ
履歴ファイルパス ~/.bash_history ホームディレクトリ直下の隠しファイル(ドットで始まる)
履歴サイズ制御 HISTSIZE / HISTFILESIZE メモリ上の件数(HISTSIZE)と保存ファイル件数の区別
コマンド検索パス PATH すべて大文字、区切り文字はコロン :
vi保存終了 :wq / :x / ZZ ノーマルモードの ZZ はコロン不要、すべて大文字
vi強制終了 :q! / ZQ 変更を破棄する感嘆符の指定位置
vi一括置換 :%s/old/new/g ファイル全体を表す % と、行内全置換を表す g フラグ

7.2 Ping-t演習へのブリッジ(対象分野と推奨学習順)

本記事の学習を終えた後は、資格学習サイト「Ping-t」のWeb問題集を活用し、以下の順序で演習を進めてください。

  1. 「主題1.03 GNUとUnixのコマンド(1.03.1 コマンドラインの操作)」の未出題問題を解き、すべて「銀(1回正解)」にする
  2. 「主題1.03 GNUとUnixのコマンド(1.03.5 エディタを使った基本的なファイル編集の実行)」の未出題問題を解く
  3. 間違えた問題を中心に復習し、全問を「金(連続2回正解)」ステータスへ引き上げる
  4. Ping-t内の「コマ問道場」を開き、export, unset, HISTSIZE, PATH, :wq, :%s などの記述式特訓を行う

確認演習問題 1

現在のシェルセッションで設定されている環境変数 MY_VAR を完全に消去したい。実行すべき適切なコマンドを記述しなさい。

解答と解説を見る

正解: unset MY_VAR

解説: シェル変数や環境変数を削除するには unset コマンドを使用します。引数には $MY_VAR ではなく、ドル記号を含まない変数名 MY_VAR を指定します。MY_VAR="" と実行した場合は「空文字を代入した」状態となり、変数自体は消去されません。

確認演習問題 2

viエディタにおいて、ノーマルモードから「カーソルがある行の下に新しく空行を挿入し、直ちに文字入力を開始する」ために押すキーとして適切なものを1文字で記述しなさい。

解答と解説を見る

正解: o(小文字のオー)

解説: 下の行に空行を挿入して挿入モードに入るには小文字の o を押します。大文字の O を押した場合は「カーソルの上の行に空行を挿入」して挿入モードに入ります。i はカーソル位置の前、a はカーソル位置の後、A は行末からの入力開始となります。

8. まとめと次回予告

本記事では、LinuCレベル1(101試験)の根幹となるLinuxコマンドラインの基本操作、Bashの入力支援機能(タブ補完、履歴展開、Readlineキーバインド)、環境変数の管理、およびviエディタの3つのモード遷移と編集テクニックを解説しました。

これらのスキルは、単に試験に合格するためだけでなく、Linuxサーバーを管理・運用するエンジニアとして日々の業務を遂行する上での基本動作となります。手元の検証環境で繰り返しターミナルを叩き、思考と指先を直結させておくことが重要です。

次回は、Linuxを操作する上で最も頻繁に行う「ファイル・ディレクトリの操作と検索・アーカイブ圧縮【主題1.02 (1.02.2, 1.02.4)】」を取り上げます。cp, mv, rm, find コマンドの応用や、ファイルシステム配置標準(FHS)、targzip によるバックアップ圧縮展開の仕組みを実機検証を交えて学習します。

前の記事
次の記事