このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習22

新Linuxコマンド演習22 概要
「新Linuxコマンド演習22」では、viエディタの中でも特に実務で頻繁に使用される便利な機能を学びます。
ここでは、以下の2つの重要な機能を中心に練習します。
- 文字列検索機能(/name など)
- エディタ設定コマンド(:set number, :set tabstop など)
これらは大規模な設定ファイル(例:/etc/services、/etc/passwd など)を編集する際に欠かせません。
検索コマンドを活用すれば目的の箇所を素早く見つけ、:setコマンドを使えば編集環境を自分好みにカスタマイズできます。

viエディタの基本構成と設定
viエディタでは、コマンドモードで操作を行います。
検索や設定変更もすべてコマンドモードで入力します。
主なモード切り替え方法を以下の表に示します。
| モード | 操作内容 | 切り替え方法 |
|---|---|---|
| コマンドモード | 検索・設定・削除などを実行 | Escキーで戻る |
| 挿入モード | テキストを入力 | i または a |
演習問題+模範解答例
演習01:vi エディタで文字列を検索する
問題
/etc/services ファイルを開き、name という文字列を検索してください。
模範解答例
[suzuki@AlmaLinux ~]$ vi /etc/services操作手順
Escキーを押してコマンドモードに戻る。/nameと入力してEnterキーを押す。- 一致する箇所がハイライトされ、カーソルが該当行へ移動する。
- 次の一致箇所へ移動するには
n、前の一致へはShift + nを押す。
検索コマンド一覧
| コマンド | 説明 |
|---|---|
| /文字列 | 指定した文字列を下方向に検索 |
| ?文字列 | 指定した文字列を上方向に検索 |
| n | 同じ方向に次の検索結果へ移動 |
| Shift + n | 逆方向に検索結果をたどる |
出力例(抜粋)
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
nameserver 42/udp name # IEN 116
nicname 43/tcp whois
nicname 43/udp whois
domain 53/tcp # name-domain server
domain 53/udp解説
- /name と入力すると、ファイル全体から「name」という文字列を検索します。
nを押すたびに次の一致箇所にジャンプします。- 大文字・小文字は区別されるため、両方検索したい場合は
:set ignorecaseを使用します。
演習02:viエディタで行番号を表示する
問題
viエディタで /etc/services を開き、行番号を表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ vi /etc/services操作手順
- コマンドモードで
:を入力。 set numberと入力してEnterキーを押す。
設定コマンド一覧
| コマンド | 説明 |
|---|---|
| :set number | 行番号を表示する。 |
| :set nonumber | 行番号の表示を解除する。 |
| :set tabstop=4 | タブ幅を4文字分に設定する。 |
| :set ts=<数値> | タブストップを任意の文字数に変更する。 |
出力例
1 # /etc/services:
2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
3 #
4 # Network services, Internet style
5 # IANA services version: last updated 2013-04-10
6 #
7 # Note that it is presently the policy of IANA to assign a single well-kno...
8 # port number for both TCP and UDP解説
:set numberを実行すると、各行の左に行番号が表示されます。:set nonumberで非表示に戻せます。- この設定は一時的なもので、次回起動時にはリセットされます。
永続化するにはホームディレクトリの.vimrcに追記します。
vi エディタ設定操作のまとめ
| 分類 | コマンド例 | 内容 |
|---|---|---|
| 検索操作 | /name | 文字列を検索 |
| 検索結果移動 | n / Shift + n | 次・前の検索結果へ移動 |
| 行番号表示 | :set number | 行番号を表示 |
| 行番号非表示 | :set nonumber | 行番号を非表示に戻す |
| タブ幅設定 | :set tabstop=4 | タブ幅を4文字に設定 |
| 大文字小文字無視 | :set ignorecase | 検索時に大文字小文字を区別しない |
補足
:set コマンドを活用すると、viの動作を柔軟にカスタマイズできます。
特に number や tabstop の設定は、コード編集や設定ファイルの整形に役立ちます。
まとめ
「新Linuxコマンド演習22」では、viエディタの検索機能と設定機能を学びました。
- /文字列 で特定のキーワードを検索できる。
- n、Shift + n で検索結果を移動できる。
- :set number や :set tabstop=4 などで編集環境を整えられる。
これらの操作を習得することで、長大な設定ファイルの編集効率を大幅に向上させることができます。
