Linuxコマンドリファレンス

viエディタ

 vi はサーバ保守で最も出番の多いテキストエディタです。最大の特徴はモードにあります。基本はノーマルモード(移動・編集指示)、挿入モード(文字入力)、コマンドラインモード(:で始まる保存・終了・検索置換など)です。Esc でいつでもノーマルに戻れることを体で覚えると、操作が安定します。以下では、よく使うキーと手順を「まず覚える最小セット → すぐ効く編集 → 検索・置換 → 保存・終了」で整理します。
※環境によっては vim 互換の拡張が有効です(ここでは素の vi でも有効な範囲を中心に記載)。

モードと基本

操作説明
Escどのモードからでもノーマルモードへ戻る
:コマンドラインモードに入る(保存・終了・置換など)
i / aその位置から入力開始 / 直後から入力開始(挿入モードへ)
I / A行頭から入力開始 / 行末の次位置から入力開始
o / O現在行の下に新規行 / 上に新規行を挿入して入力開始

挿入モード(入力開始の定番)

キー説明
iカーソル位置から入力を開始する。
aカーソルの右側の位置から入力を開始する。
I行頭に移動して入力を開始する。
A行末に移動して入力を開始する。
o現在行の下に空白行を挿入し入力を開始する。
O現在行の上に空白行を挿入し入力を開始する。

ノーマルモード:移動(速く・正確に動く)

入力説明
h j k l左 下 上 右へ1文字移動
0 / ^ / $行頭 / 行頭の最初の非空白 / 行末へ移動
w / b / e次の単語頭 / 前の単語頭 / 単語末へ移動
gg / Gファイル先頭 / 末尾へ移動
H / M / L画面の上端 / 中央 / 下端の行へ移動
Ctrl-f / Ctrl-b1画面進む / 戻る
{ / }段落単位で前へ / 次へ
数字 + コマンド繰り返し回数(例: 3w で3単語進む、10jで10行下)

編集コマンド(削除・コピー・貼り付け・取り消し)

入力説明
x / Xカーソルの文字を削除 / 左の1文字を削除
dd現在行を切り取り(削除)
yy現在行をコピー
p / Pカーソルの後 / 前に貼り付け
u直前の操作を取り消す
Ctrl-r取り消しの取り消し(やり直し)
.直前の編集操作を繰り返す
J現在行と次行を結合
r 文字その場で1文字置換
c + 移動その範囲を変更(削除して挿入モードへ、例: cw, c$)
d + 移動その範囲を削除(例: dw, d$, d0, d3w)

検索・置換(絞り込みと一括修正)

入力説明
/文字列前方検索(Enterで実行、n で次、N で前)
?文字列後方検索(n / N で移動)
:%s/旧/新/gファイル全体で一括置換
:%s/旧/新/gc1件ずつ確認しながら置換
:g/正規表現/pマッチ行を一覧表示(grep 的に確認)

保存・終了とファイル操作(コマンドライン)

入力説明
:w保存
:q終了(未保存があると拒否)
:wq または 😡保存して終了
:q!変更を破棄して終了
:e ファイル名別ファイルを開く
:w 新しいファイル名別名で保存
:r ファイル名指定ファイルの内容を現在位置に挿入

検索ナビゲーションの補助

入力説明
n / N直前の検索方向へ次 / 逆方向へ戻る
* / #カーソル上の単語を前方 / 後方に検索(vim 互換環境で可)

実用レシピ(コピペで最速習得)

1.行番号を表示して、error を notice に全置換して保存終了

:set number
:%s/error/notice/g
:wq

2.100〜150行目を削除

:100,150d

3.設定ファイルからテンプレートを現在行に取り込み

:r /etc/skel/.bashrc

4.表の列末までを3回連続で削除して打ち直し(d$ を使い回す)
ノーマルで d$ → . → . → i で入力開始

覚えておくと効率が跳ね上がるコツ

  • Esc を頻繁に打ち、ノーマルで移動→編集→Escのリズムを作る。
  • 移動と編集は組み合わせが基本(d$, c3w など)。数字指定で作業をまとめる。
  • 置換はまず :%s/旧/新/gc の確認付きで安全に。慣れたら g に切り替える。
  • .(ドット)で直前操作を繰り返し、u と Ctrl-r で安全に試行錯誤。