【Bash講座 第6回】「終了できない」恐怖からの脱出!Vimを使いこなせ
こんにちは!「リナックス先生」です。
前回は、cat や tail を使ってファイルの中身を「見る」方法を学びました。
コウ君、その後サーバー操作は順調?
先生、助けてください!!
ネットの記事を見て設定ファイルを直そうとしたら、vi ってコマンドを使うって書いてあって…。
実行したら画面が変わったんですけど、文字も打てないし、終了もできないし、マウスも効かないんです!
この黒い画面、どうやって閉じればいいんですか!?(泣)
出たわね、「Vimの牢獄」。
全世界の初心者が一度は通る道よ。
落ち着いて。まずは Esc キーを連打して、その後に :q! と入力して Enter を押しなさい。
それで脱出できるわ。
はぁ、はぁ…。助かりました…。
なんですかこの極悪なソフトは! 普通のメモ帳みたいに使えないんですか?
第6回となる今回は、Linux標準にして最強のテキストエディタ「Vi / Vim(ヴィム)」を特集します。
操作に強烈な癖がありますが、一度慣れてしまうと「これ以外では文字を書きたくない」と思わせるほどの魔力を持ったツールです。
本講座のカリキュラム(全12回)
AlmaLinux 9 (RHEL 9互換) 環境を前提に、基礎から応用までステップバイステップで進めます。
- Bash入門編:シェルとカーネルの関係、CUIの哲学、環境構築
- ファイル操作の極意:絶対パス・相対パスと「ワイルドカード」の魔術
- 権限(パーミッション)とユーザー:chmod, chown, sudoの仕組みを完全理解
- 入出力リダイレクトとパイプ:Linuxの真骨頂!コマンド同士を連携させる技術
- テキスト処理の基本:cat, head, tail, less…ファイルの中身を覗く道具たち
- 【今回】最強のエディタ「Vi/Vim」入門:サーバー内でテキストを編集する必須スキル
- シェルスクリプトの第一歩:ファイルにまとめて自動実行!変数と引数の基礎
- 条件分岐(if文):サーバーの状態を見て「判断」できるスクリプトを作る
- 繰り返し処理(for/while文):面倒な単純作業を1秒で終わらせるループ処理
- テキスト処理の応用:grep, sed, awk…ログ解析の達人になるための三種の神器
- 実践・自動化スクリプト:バックアップと監視を自動化し、Cronで定期実行する
- 総仕上げ:自作スクリプトの集大成と、エンジニアとしての歩き方
1. なぜ「Vim」を使わなきゃいけないの?
Windowsの「メモ帳」や、VSCodeのような便利なエディタがあるのに、なぜわざわざ操作が難しいVimを使う必要があるのでしょうか?
理由は大きく3つあります。
理由1:すべてのLinuxに「最初から入っている」
トラブル対応で緊急のサーバーに入った時、そこにVSCodeはありません。
しかし、Vi (Vim) は必ずあります。
どんな環境でも確実に使える唯一の武器、それがVimです。
理由2:マウス不要で高速操作が可能
Vimは「ホームポジションから手を離さない」ことを前提に設計されています。
慣れれば、マウスに手を伸ばしてカーソルを移動させる数倍の速さでテキスト編集が可能です。
理由3:リモート接続でもサクサク動く
CUI(文字だけ)で動作するため、回線が遅い海外のサーバーや、スペックの低いIoT機器でも軽快に動作します。
2. 最大の壁:「モード」という概念を理解せよ
Vimが初心者殺しと呼ばれる最大の理由。
それは「文字を打つためのモード」と「操作するためのモード」が分かれていることです。
コウ君がパニックになったのは、「ノーマルモード」のまま文字を打とうとしたからよ。
Vimを起動した直後は、キーボードは「文字入力」ではなく「コマンド入力(移動や削除)」のために使われるの。
まずはこの図式を頭に叩き込んで。
| モード名 | 役割 | 入り方 | 抜け方 |
|---|---|---|---|
| ノーマルモード (Normal Mode) |
【基本】 カーソル移動、削除、コピーなどを行う。起動時はここ。 | (起動直後) または Esc |
i, :, v など |
| インサートモード (Insert Mode) |
【入力】 普通のエディタのように文字を打つ。 | i, a, o |
Esc |
| コマンドラインモード (Command-line Mode) |
【命令】 保存、終了、検索、置換などを行う。 | : (コロン) |
Enter または Esc |
★鉄則:迷ったらとにかく Esc キーを押せ!
Esc を押せば、必ず基本の「ノーマルモード」に戻れます。
3. 【サバイバルガイド】起動・編集・保存・終了
まずは最低限、「ファイルを開いて、ちょっと修正して、保存して閉じる」手順をマスターしましょう。
これさえできれば、サーバー管理で困ることはありません。
Step 1:ファイルを開く
# 存在しないファイル名を指定すると新規作成になります [root@localhost ~]# vi practice.txt
Step 2:文字を入力する(インサートモード)
起動直後は「ノーマルモード」です。文字は打てません。
キーボードの i (Insert) を押してください。
画面の左下に -- INSERT -- と表示されたら、文字入力モードです。
適当に「Hello Vim!」と打ってみましょう。
Step 3:ノーマルモードに戻る
入力が終わったら、必ず Esc キーを押します。
左下の -- INSERT -- が消えればOKです。
Step 4:保存して終了する(コマンドラインモード)
: (コロン) を押すと、画面最下部に入力欄が出ます。
続けて wq と入力し、Enter を押します。
w(Write) : 保存q(Quit) : 終了
:wq
これで元のターミナル画面に戻ってこれたら成功です!
できた…! ちゃんと保存されて戻ってこれました!i で書いて、Esc で戻って、:wq で保存。これだけ覚えれば生きていけますね!
💡 覚えておきたい終了コマンド集
:wq: 保存して終了(基本):q: (変更がない時に)終了:q!: 保存せずに強制終了(失敗した時はこれ!):w: 保存だけする(終了しない)
4. カーソル移動の極意(hjkl)
Vimでは、矢印キー(↑↓←→)も使えますが、プロは使いません。
ホームポジションから手を動かさずに移動できる h j k l を使います。
h: ← 左j: ↓ 下 (JapanのJ、下っぽい形で覚える)k: ↑ 上 (Kingは上にいる)l: → 右 (RightのL…ではないけど右)
一瞬でジャンプする便利キー
長い設定ファイルを編集する時、j キー連打では日が暮れます。
gg: ファイルの先頭へワープG(Shift+g) : ファイルの末尾へワープ0(数字のゼロ) : 行頭へ$(Shift+4) : 行末へw: 次の単語へジャンプ
5. 編集テクニック:コピー、カット、ペースト
Vimでは、「行ごと削除」や「コピペ」もキーボードだけで爆速で行えます。
これらは全てノーマルモードで行います。
削除(カット)
x: カーソル上の1文字を削除(Deleteキーと同じ)dd: 【超重要】 カーソルのある行を1行まるごと削除(カット)5dd: 5行まとめて削除
コピー&ペースト
Vim用語ではコピーを「ヤンク (Yank)」、ペーストを「プット (Put)」と呼びます。
yy: カーソルのある行を1行コピーp: カーソルの下の行に貼り付けP(Shift+p) : カーソルの上の行に貼り付け
取り消し(Undo)
「あっ、間違って消しちゃった!」という時も安心です。
u: 直前の操作を取り消す(Undo)Ctrl + r: 取り消した操作をやり直す(Redo)
6. 検索と置換
長いログファイルから特定の文字を探したり、設定を一括変更したりする機能です。
検索(/)
ノーマルモードで / を押すと、検索モードになります。
/keyword: “keyword” を検索n: 次の候補へジャンプN: 前の候補へジャンプ
置換(:s)
ファイル内の文字を一括変換します。
:%s/old/new/g: ファイル内の全ての “old” を “new” に置換する
7. 自分好みにカスタマイズ:.vimrc
「行番号を表示したい」「シンタックスハイライト(色付け)が欲しい」
そんな時は、ホームディレクトリにある .vimrc という設定ファイルを作ります。
[root@localhost ~]# vi ~/.vimrc
中身に以下のように書いて保存してください。
set number " 行番号を表示 set title " タイトルを表示 syntax on " コードに色をつける set tabstop=4 " タブの幅を4にする
次にVimを開いた時から、劇的に使いやすくなっているはずです。
次回予告:スクリプト作成への第一歩
第6回は、エンジニアの必須教養「Vim」について解説しました。
最初は指が絡まるかもしれませんが、毎日少しずつ触ることで、ある日突然「あれ? 考えた通りに指が動く!」という瞬間が訪れます。
その時、あなたはもうマウスには戻れなくなっているでしょう。
さて、これで「ファイルの読み書き」は完璧になりました。
次回からはいよいよ、これまでの知識を総動員して「シェルスクリプト(プログラミング)」の世界に足を踏み入れます。
「コマンドをファイルに書いて、自動で実行させる」。
これができれば、面倒なサーバー構築やバックアップ作業を全自動化できます。
次回までに、Vimを使って「自己紹介を書いたテキストファイル」を作ってみてね。
コピー&ペーストや、行の削除も練習しておくこと!
▼Vimの練習も壊してもいい環境で!推奨VPS


コメント