【Linux】viの使い方!必須のコマンドから作業効率出来るコマンドまで

ブログ運営

今回はLinuxサーバーviエディタの使い方です

Linuxsサーバーを使用していて、通常使用するテキストエディタはviエディタです。

しかしviエディタは癖が強く使いにくいといった声が多いです。

なので今回はLinuxサーバーデフォルトのviエディタの使い方を、現役エンジニアの筆者がまとめます。

筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!

Linuxサーバーではviエディタは必須なので、覚えておいた方が良いです。この記事を読めばLinuxのviエディタで効率よく作業が出来る様になり、エンジニアとしての価値があがります。

目次

Linuxのviの使い方

使い方

Linuxサーバーではデフォルトでテキストを編集するツールががviエディタです。

Linuxエンジニア

viエディタは癖のあるツールですのでしっかり使い方を覚えます。

管理人

一つの項目ごとにしっかり確認して、Linuxのviエディタを習得しましょう!

viエディタの起動のやり方

起動

まずはviエディタの起動のやり方をまとめます。

コマンド効果
vi 既存のファイル名既存のファイルを開いて編集する
vi 新規ファイル名新規にファイルを作成して編集する
vi新規にファイルを作成。保存する時にファイル名を指定する
viエディタの起動のやり方

Linuxでファイルを作成してからviエディタで編集する人も多いですが、新規にファイルを作成して編集する事が可能です。

Linuxでファイルを作成する時のコマンドについては以下の記事でまとめています。

viエディタのモードについて

viエディタにはモードがあり、viを起動してもいきなり文字を入力する事ができません。コマンドモードになっているからです。

viエディタのモード効果
コマンドモードコマンドを入力するモード。カーソルの移動や検索や保存などが可能
入力モード文字を入力するモード
viエディタのモード一覧

viエディタを起動したときはコマンドモードになっています。文字を入力したい場合には入力モードに変更するコマンドを入力します。

viエディタの入力モード移行コマンド効果
iカーソルの前に文字を入力
Iカーソルの先頭に文字を入力
aカーソルの後ろに文字を入力
Aカーソルの末尾に文字を入力
oカーソルの下に新しい行を追加して入力
Oカーソルの上に新しい行を追加して入力
viの入力モード移行コマンド一覧

「i」と「a」はどちらかを覚えておけば問題ありません。

行を追加して設定を入力する事は多いので、「o」や「O」は覚えておくと効率化になります。

「I」と「A」も覚えておくと稀に効率化出来ます。

逆に入力モードからコマンドモードに変更したい場合は、キーボードの「Esc」を押します。

viエディタの保存方法と終了方法

起動と終了

viエディタの保存方法

viエディタで編集した後の保存方法について説明します。

保存についてはコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタの保存コマンド効果
:w編集しているファイルを保存する
:w ファイル名ファイル名を変更して保存、または新規保存
viエディタの保存方法一覧

viエディタの起動方法で「vi」のみでファイル名を指定せずに起動した場合は、ファイル名を指定しないと保存できません。

viエディタの終了方法

viエディタの終了方法について説明します。

終了についてもコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタの終了コマンド効果
:wq編集しているファイルを保存して終了
:q!編集を破棄して終了
:wq ファイル名ファイル名を変更して保存して終了、または新規保存して終了
viエディタの終了方法一覧

viエディタの終了方法については以下の記事で詳しくまとめています。

viエディタの便利なコマンド

viエディタで便利で効率化できそうなコマンドを一つ紹介します。

これもコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタの便利なコマンド効果
:e!編集している内容を破棄して再読み込みする
viエディタの便利なコマンド

viエディタで編集していて、どこを編集したか忘れた。。編集していたけど最初からやり直したい。。そういった場合に編集を破棄して終了⇒再度ファイルを開いて編集としていませんか?

そういった場合はviコマンドの「:e!」で再読み込みすると効率化良いです。

viエディタでカーソルを移動する

moving

Linuxの設定ファイルなどは行が多く、viエディタで編集したい場所へ行くまでが大変ではないでしょうか?

そういった場合にカーソルの移動コマンドを使用すると効率化出来ます。

カーソルの移動コマンドについてはコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタのカーソル移動コマンド効果
Gファイルの最後まで移動
1Gファイルの一行目まで移動
nGファイルのn行目まで移動。nは行数を指定する
0現カーソルの先頭に移動
$現カーソルの末尾に移動
Ctrl+fファイルの末尾に向かい1画面ずつスクロール
Ctrl+bファイルの先頭に向かい1画面ずつスクロール
viエディタの移動方法一覧

Linuxの設定ファイルで最後の行に設定追加する事が良くあります。そんな時は「G」で移動しましょう!

Linuxエンジニア

先頭に移動するには「1G」です。14行目に移動なら「14G」です。

移動する行数を見たい場合は、以下のコマンドで表示できます。

viエディタで行数を表示する効果
:set number行数を表示する
:set nonumber行数表示を解除する
viエディタで行表示方法
Linuxエンジニア

また設定ファイルは長い為、「Ctrl+f」または「Ctrl+b」でスクロールしましょう!

viエディタで検索する

search

またviで指定した文字列にカーソル移動したい場合や、設定を見たい場合には検索がオススメです。

viで検索するにはコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタの検索コマンド効果
/検索文字列カーソルから下に向けて検索
?検索文字列カーソルから上に向けて検索
n検索した後、同じ向きに再検索
N検索した後、逆の向きに再検索
viエディタの検索方法一覧
Linuxエンジニア

設定ファイルやログは長いので、スクロールで見ずに検索する事でかなり効率化できます。

Linuxエンジニア

次の文字列に再検索する方法も覚えておきましょう!

Linuxのviエディタの検索については、以下の記事で詳しくまとめています。

viエディタの編集でよく使用するコマンド

編集

viエディタで編集する時に、一文字ずつ編集して時間を費やしていないでしょうか?

そんな時は編集で効率化できるコマンドを使用しましょう!

編集コマンドについてはコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

最低限覚えておくと良いコマンドをまとめます。

viエディタの基本編集コマンド効果
ddカーソルの一行を削除
yyカーソルの一行をコピー
pコピーしていたらカーソルの下の行へペーストする
Pコピーしていたらカーソルの上の行へペーストする
nddカーソルからn行削除
nyyカーソルからn行コピー
viエディタの基本編集コマンド一覧

行の削除やコピーペーストは基本なので覚えましょう!

覚えておけば効率化できるが、あまり使わないコマンドも紹介しておきます。

viエディタの応用編集コマンド効果
xカーソルの1文字削除
dwカーソルから次の単語を削除
Dカーソルから行の最後まで削除
dGカーソルから最終行まで削除
dH1行目からカーソル行まで削除
yI1文字コピー
ywカーソルの単語をコピー
y0カーソルの先頭からカーソルの直前までコピー
viエディタの応用編集コマンド一覧

編集モードに移行せずに1文字削除やカーソルから行の最後まで削除できたりします。慣れれば効率が上がります。

しかし入力モードに移行して「Back Space」や「Delete」を使う方が良い方はそれでよいと思います。

viエディタのその他の便利コマンド

viエディタでその他で便利なコマンドもありますのでご紹介します。

ここで紹介するコマンドはコマンドモードでしか行えません。編集モードになっている場合はEscをおします。

viエディタのその他の便利コマンド効果
u最後に実行した編集の取り消し。WindowsでいうCtrl+z
.最後に実行した編集の繰り返し。WindowsでいうF4
~カーソルの文字の大文字小文字を変換する
viエディタのその他の便利コマンド一覧

viエディタでの編集の取り消しは覚えておきましょう!Windowsの「Ctrl+z」をするとviエディタが終了してしまいます。

viエディタのコマンドについて詳細に知りたい方は以下の記事を参照下さい。

まとめ:Linuxのviの使い方

使い方のまとめ
Linuxエンジニア

Linuxのviエディタの使い方について説明しましたがいかがだったでしょうか?

Linuxエンジニア

効率化できそうなコマンドなどあったのではないでしょうか?

サイト管理人

とはいえ全て覚える必要はないので、よく編集の時に使用しそうなものから1つ1つ覚えて行って下さい!

ブログ運営

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次