このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

新Linuxコマンド演習21

新Linuxコマンド演習21 概要

 「新Linuxコマンド演習21」では、viエディタの編集操作 に焦点を当て、Linux上で効率的にテキストを編集する技術を学びます。

 vi エディタはシステム設定ファイルやスクリプト編集など、Linux管理において最も重要なツールの一つです。
この演習では、以下の内容を中心に練習します。

  • 文字・行の削除(x, dd)
  • コピーと貼り付け(yy, p)
  • 取り消しと繰り返し(u, . )

 これらのコマンドは、設定ファイル編集やスクリプト修正時に頻繁に使用するため、確実に習得しておく必要があります。

vi エディタの編集モードと操作概要

vi エディタはコマンドモードで操作を行います。以下の表に、主要な編集コマンドをまとめます。

コマンド操作対象説明
x文字カーソル位置の1文字を削除
dd現在の行を削除
yy現在の行をコピー(ヤンク)
p行・文字列コピーまたは削除した内容を貼り付け
u直前の操作直前の操作を取り消す(Undo)
Ctrl + r取り消し操作取り消しをやり直す(Redo)
.直前のコマンド直前の編集操作を繰り返す

上記のコマンドは、コマンドモードで使用します。
挿入モードから戻るには Escキー を押します。

演習問題+模範解答例

演習01:文字単位の削除と貼り付け操作

問題
file1.txt を作成し、vi エディタで特定の文字を削除したあと、貼り付けを行ってください。

模範解答例

[suzuki@AlmaLinux ~]$ date > file1.txt
[suzuki@AlmaLinux ~]$ date >> file1.txt
[suzuki@AlmaLinux ~]$ vi file1.txt

操作手順

  1. 「 i 」キーで挿入モードに切り替える。
  2. 任意の位置にカーソルを合わせ、「Esc」でコマンドモードへ。
  3. カーソル上の文字を削除するには: x
  4. その文字を貼り付けるには: p
  5. 操作後、「:wq」で保存して終了。

出力例(編集前 → 編集後)

2024年  1月 20日 曜日 22:12:28 JST ←カーソルを削除したい文字の上に移動
2024年  1月 20日 土曜日 22:14:02 JST

2024年  1月 20日 曜日 22:12:28 JST ←x を入力して文字を削除
2024年  1月 20日 土曜日 22:14:02 JST
2024年  1月 20日 曜日 22:12:28 JST
2024年  1月 20日 曜日 22:14:02 JST ←コピー先にカーソルを移動
2024年  1月 20日 曜日 22:12:28 JST
2024年  1月 20日 土曜日 22:14:02 JST ←p を入力して削除した文字を貼り付け

解説

  • x は1文字削除。複数文字削除したい場合は数字を指定(例:3x)。
  • p は直前に削除またはコピーした内容をカーソル位置の後に貼り付けます。

演習02:行のコピーと貼り付け操作

問題
file2.txtを作成し、特定の行をコピーして下に貼り付けてください。

模範解答例

[suzuki@AlmaLinux ~]$ date > file2.txt
[suzuki@AlmaLinux ~]$ date >> file2.txt
[suzuki@AlmaLinux ~]$ vi file2.txt

操作手順

  1. コピーしたい行の先頭にカーソルを移動。
  2. 行をコピー(ヤンク)するには: yy
  3. 貼り付けたい場所にカーソルを移動し、貼り付ける: p
  4. 編集完了後、「:wq」で保存して終了。

出力例(編集前 → 編集後)

2024年  1月 20日 土曜日 23:15:31 JST ←カーソルをコピーしたい行の先頭に移動
2024年  1月 20日 土曜日 23:15:36 JST

2024年  1月 20日 土曜日 23:15:31 JST ←yy を入力して行をコピー
2024年  1月 20日 土曜日 23:15:36 JST

2024年  1月 20日 土曜日 23:15:31 JST 
2024年  1月 20日 土曜日 23:15:36 JST ←コピー先にカーソルを移動

2024年  1月 20日 土曜日 23:15:31 JST
2024年  1月 20日 土曜日 23:15:36 JST ←p を入力してコピーした行を貼り付け

2024年  1月 20日 土曜日 23:15:31 JST
2024年  1月 20日 土曜日 23:15:36 JST
2024年  1月 20日 土曜日 23:15:31 JST ←コピーした内容が貼り付けられます

解説

  • yy は現在行をコピー。複数行コピーは数字指定(例:3yy で3行)。
  • p はコピーした行をカーソルの下に貼り付け。

演習03:操作の繰り返しと取り消し

問題
file3.txt を作成し、「dd」「 . 」「u」コマンドを用いて操作の繰り返しと取り消しを行ってください。

模範解答例

[suzuki@AlmaLinux ~]$ date > file3.txt
[suzuki@AlmaLinux ~]$ date >> file3.txt
[suzuki@AlmaLinux ~]$ date >> file3.txt
[suzuki@AlmaLinux ~]$ date >> file3.txt
[suzuki@AlmaLinux ~]$ vi file3.txt

操作手順

  1. 行を削除する: dd
  2. 同じ削除をもう一度実行: .
  3. 直前の削除を取り消す: u
  4. 編集完了後、「:wq」で保存して終了。

出力例(操作の流れ)

2024年  1月 21日 日曜日 13:01:00 JST
2024年  1月 21日 日曜日 13:01:14 JST
2024年  1月 21日 日曜日 13:01:15 JST ←dd を実行して1行削除します。
2024年  1月 21日 日曜日 13:01:16 JST

2024年  1月 21日 日曜日 13:01:00 JST
2024年  1月 21日 日曜日 13:01:14 JST
2024年  1月 21日 日曜日 13:01:15 JST ←「.」を実行して直前のコマンドを繰り返します。

2024年  1月 21日 日曜日 13:01:00 JST
2024年  1月 21日 日曜日 13:01:14 JST ←「u」を実行して直前の操作を取り消します。

2024年  1月 21日 日曜日 13:01:00 JST
2024年  1月 21日 日曜日 13:01:14 JST
2024年  1月 21日 日曜日 13:01:16 JST

解説

  • .(ドット)は直前の編集操作を繰り返します。
  • u は直前の操作を取り消します(複数回押すと連続取り消し)。
  • Redoしたい場合は Ctrl + r を使用します。

演習終了時の作業:不要ファイルの削除

問題
演習で作成したファイルを削除してください。

模範解答例

[suzuki@AlmaLinux ~]$ rm file*.txt
[suzuki@AlmaLinux ~]$ ls
Desktop    Downloads  Pictures  Templates
Documents  Music      Public    Videos

viエディタの編集コマンドまとめ

分類コマンド内容
文字削除xカーソル位置の文字を削除
行削除dd現在行を削除
コピーyy現在行をコピー
貼り付けpコピーまたは削除した内容を貼り付け
取り消しu操作を取り消す
やり直しCtrl + r取り消した操作をやり直す
繰り返し.直前の編集操作を再実行

補足
 vi の編集機能は、WindowsのCtrl + Z や Ctrl+C に相当する基本機能をキーボード操作で行う仕組みです。
慣れると非常に高速にテキスト編集が可能になります。

まとめ

新Linuxコマンド演習21」では、vi エディタでの基本的な編集操作を習得しました。

  • 文字・行の削除(x, dd)
  • コピーと貼り付け(yy, p)
  • 操作の取り消しと繰り返し(u, . )

これらの操作を覚えることで、Linux上でのテキスト編集が格段に効率化されます。
今後の演習では、検索や置換など、さらに高度なviエディタ機能にも挑戦していきます。