viコマンドについて詳しくまとめました 【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket

viはLinuxの標準のテキストエディタを起動するコマンドだ。Linuxを使う上で、viエディタを使うケースは非常に多い。

このページでは基本的なviエディタの使い方を解説する。ぜひLinuxユーザーとしてのスキルアップに役立ててほしい。

viとは

Linuxを含むUnixベースのOSで利用できるテキストエディタだ。

世の中にマウスのようなポインティングデバイスがまだ普及しておらず、キーボード入力が主流だった時代からある。

Linuxにはプリインストールされているため、スタンダードなエディタとなっている。

 

演習の準備

今回は流れにそって実際に演習できるように構成した。

実際に演習する場合は、次のコマンドを実行し、はじめに演習するためのファイルを作成しておこう。

$ mkdir ./work/
$ echo '### 初期設定ファイル ###' >work/config.php
$ echo >>work/config.php
$ echo '# ワークディレクトリ' >>work/config.php
$ echo '$workdir = "/home/work/";' >>work/config.php
$ echo '# 管理者アカウント' >>work/config.php
$ echo '$admin = "wolker";' >>work/config.php
$ echo '# デバッグモード' >>work/config.php
$ echo '$debugmode = "Yes";' >>work/config.php

viコマンドの基本

viコマンドの基本動作

viは、Linuxの標準のエディタを起動するコマンドだ。

基本的な書式は次のようになる。

 

$ vi ファイル名

ファイル名で指定しているファイルが存在していれば、そのファイルを開く。

workディレクトリのconfig.phpという名前のファイルをviで開く場合は、次のとおりだ。

$ vi work/config.php

 

viコマンド

workディレクトリ内のconfig.phpをviエディタで開く。

viコマンド

viエディタでworkディレクトリ内のconfig.phpが開かれた。

はじめは、編集することができないコマンドモードで始まる。

この状態では、カーソルキーを動かして閲覧ができる。

編集前に編集箇所を確認しておくといいだろう。

 

viエディタの基本的な使い方

viエディタは入力モードに移るためのキーと、切り取りやコピーをするコマンドモードのキーがある。

詳細は後から説明するが、まずは一覧で見ていこう。

入力モードのキー一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

iキー

現在のカーソル位置に文字を挿入する

Rキー

現在のカーソル位置から文字を上書きする

Aキー

現在のカーソル行の最後に文字を追加する

Oキー(大文字)

現在のカーソル行の前の行に行を挿入する

oキー(小文字)

現在のカーソル行の次の行に行を挿入する

コマンドモードのキー一覧

xキー

1文字削除

yyキー

1行コピーしクリップボードへ格納する

ddキー

1行切り取りしクリップボードへ格納する、または1行削除

pキー

クリップボードの内容をカーソル行の下の行に貼り付ける

:qキー

ファイルを閉じる。変更があった場合はメッセージが表示され、閉じることができない

:q!キー

ファイルを閉じる。変更があった場合は変更を破棄する

:wキー

ファイルを保存する。viは終了しない

:wqキー

ファイルを保存しviを終了する

 

それぞれ詳細を紹介していく。

 

入力モードとは

文字を入力する場合は、入力モードに移るキーを入力する。

入力モードに移るキーは次の5つである。

 

iキー:現在のカーソル位置に文字を挿入する

現在のカーソル位置に文字を挿入する場合は「i」キーを入力する。

$workdir = "/home/work/";を$workdir = "/home/work1/";に変更してみよう。

workの次の/へカーソルを合わせてiキーを押すと現在のカーソル位置に文字を挿入する編集モードになる。

「1」のキーを押す。

viコマンド

$workdir = "/home/work1/";

に変更された。

ESCキーを押し、コマンドモードに戻ろう。

 

Rキー:現在のカーソル位置から文字を上書きする

現在のカーソル位置から文字を上書きする場合は「R」(大文字)キーを入力する。

$admin = "wolker";を$admin = "worker";に変更してみよう。

lへカーソルを合わせてR(大文字)キーを押すと現在のカーソル位置から文字を上書きする編集モードになる。

「r」(小文字)のキーを押す。

viコマンド

今度は挿入されずに、lがrに上書きされ、

$admin = "worker";

に変更された。

ESCキーを押し、コマンドモードに戻ろう。

 

Aキー:現在のカーソル行の最後に文字を追加する

現在のカーソル行の最後に文字を追加する場合は「A」(大文字)キーを入力する。

管理者アカウントの後ろに続けてnot useと入力してみよう。

# 管理者アカウントのどこでも構わないのでカーソルをあわせて

viコマンド

A(大文字)キーを押すと行の最後にカーソルが移動し編集モードになる。

viコマンド

そのままnot useと入力できる。

viコマンド

# 管理者アカウントの後ろにnot useが入力された。

ESCキーを押し、コマンドモードに戻ろう。

 

Oキー(大文字):現在のカーソル行の前の行に行を挿入する

現在のカーソル行の前の行に行を挿入する場合は「O」キーを入力する。

# 管理者アカウントnot useの上に空白行を挿入してみよう。

# 管理者アカウントnot useのどこでも構わないのでカーソルをあわせてO(大文字)キーを押す。

viコマンド

上の行に1行挿入された。

ESCキーを押し、コマンドモードに戻ろう。

 

oキー(小文字):現在のカーソル行の次の行に行を挿入する

現在のカーソル行の次の行に行を挿入する場合は「o」キーを入力する。

$admin = "worker";の上に空白行を挿入してみよう。

$admin = "worker";のどこでも構わないのでカーソルをあわせてoキー(小文字)を押す。

viコマンド

下の行に1行挿入された。

ESCキーを押し、コマンドモードに戻ろう。

 

入力モードの注意点

入力モードは、ESCキーを押すことで、コマンドモードに戻る。

上記のように、入力したらESCキーを押すことを忘れないように意識しよう。

上下左右へのカーソルの移動、delete、BackSpaceなどの文字をしようとすると、想定外の文字が入力される。

これらのことは入力モードではできない。

間違えて入力した場合は、そのままコマンドモードに移行し、コマンドモードで削除などの操作を行おう。

 

コマンドモードとは

コマンドモードでできることはたくさんある。

今回は、使用頻度の高い文字列の編集とviを閉じる操作を紹介する。

 

xキー:1文字削除

1文字を削除する時は「x」キーを入力する。

$debugmode = "Yes";をesを削除し$debugmode = "Y";に変更してみよう。

eにカーソルをあわせる。

viコマンド

xキーを2回押す。

viコマンド

esの2文字が削除された。

 

yyキー:1行コピーしクリップボードへ格納する

1行をコピーしクリップボードへ格納する時は「yy」と入力する。

$admin = "worker";を次の行にもコピーしてみよう。

# $admin = "worker";のどこでも構わないのでカーソルをあわせてyyと入力するとこの行がクリップボードに入力される。

クリップボードの文字を貼り付ける時は、貼り付け先の前の行にカーソルをあわせて「p」キーを入力する。

# $admin = "worker";のどこでも構わないのでカーソルをあわせてpと入力する。

viコマンド

先ほどクリップボードに格納された文字列が貼り付けされた。

 

ddキー:1行切り取りクリップボードへ格納する

1行を切り取り、クリップボードへ格納する時は「dd」と入力する。

### 初期設定ファイル ###をファイルの最終行へ移動してみよう。

### 初期設定ファイル ###のどこでも構わないのでカーソルをあわせてddと入力する。

この行が切り取られクリップボードに入力される。

viコマンド

クリップボードの文字を貼り付ける時は、貼り付け先の前の行にカーソルをあわせて「p」キーを入力する。

最終行へ移動しどこでも構わないのでカーソルをあわせてpと入力する。

viコマンド

先ほどクリップボードに格納された文字列が貼り付けされた。

 

 

:qキー:viを閉じる

viを閉じる時は「:q」と入力する。

変更がある場合は、警告が表示され、終了できない。

viコマンド

今回は変更があったので、「E37: No write since last change (add ! to override)」の警告が表示され、viエディタが終了しない。

 

:q!キー:ファイルを破棄してviを閉じる

ファイルを破棄してviを閉じる時は「:q!」と入力する。

保存されずにviが閉じられ、コマンドプロンプトの画面に戻る。

viコマンド

ファイルの更新日付を確認してみよう。

$ ls -l work

viコマンド

変更内容は保存されず破棄されたため、ファイル日付が変更されていないことが確認できた。

演習のためにviでファイルを開いておこう。

$ vi work/config.php

 

:wキー:viは終了しないでファイルを保存する

ファイルを保存する時は「:w」と入力する。

保存されるだけで、viは閉じない。

viコマンド

確認のメッセージ「"work/config.php" 8 lines, 180 characters written」のようにファイル名と書き込んだ行数と文字数が表示される。

 

:wqキー:ファイルを保存しviを終了する

ファイルを保存しviを閉じる時は「:wq」と入力する。

保存されてviが閉じられ、コマンドプロンプトの画面に戻る。

viコマンド

$ ls -l work

viコマンド

ファイル日付が変更されている。

 

viでファイルを新規作成する

viで新規ファイルを新規作成する時は、作成したいファイル名を指定するだけでよい。

$ vi ファイル名

ファイル名で指定しているファイルが存在していなければ、ファイルが新規作成される。

ディレクトリも存在していないのであれば、作成する。

ファイルを保存する動作をするまでは、実際にファイル、ディレクトリが作成されない。

workディレクトリにnewfile.phpという名前のファイルをviで新規作成する場合は、次のとおりだ。

$ vi work/newfile.php

viコマンド

テキストファイルを新規作成した。

ここまでで、演習は終了だ。

:qキーでそのまま終了しよう。

 

関連項目

ファイルの内容を変更するのではなく、閲覧、確認するだけなら次のコマンドを使用する。

cat

ファイルの内容を表示する。

more

ファイルの内容を1画面毎に表示する。Enterキーで次の行を順次表示する。

less

ファイルの内容を表示する。上下カーソルキーでスクロールができる。

 

まとめ

単純なテキストファイルの変更ならGUIベースのテキストエディタを使用したくなるが、アクセス制限のかかったファイルや設定ファイルなどは、テキストエディタでは開くまでの手続きが面倒なケースもある。

その点、CUI環境のviエディタであれば、Linuxコマンドベースでアクセスできるため、アクセスしやすくなる場合が多い。

なによりもLinuxはGUIだけではなく、キーボード入力ベースのCUIでの操作を行うことが非常に多い。サーバーマシンなどはCUIでしか動かさない場合もある。

そのようなことから、viエディタを使うことがスタンダードでありWebや書籍でも利用するように解説しているケースも多い。

しかし、GUIベースのテキストエディタと違い少し操作に癖のあるエディタのために初心者は混乱するかもしれない。

viエディタに慣れるまで時間がかかったというエンジニアも多い。

基本となるテキストエディタなので、ぜひ参考にしてほしい。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. 洛西かわさき より:

    初めまして、Linuxの超初心者です。
    日本語化のために「ファイルA」の途中に「ファイルB」スクリプトを全コピーして書き込みたいのですが、Viを使っての方法、色々調べましたが、さっぱり判りません。ご教授戴けましたら幸いです。宜しくお願いいたします。

    1. リカレントテクノロジー より:

      いつもご愛読ありがとうございます。
      viエディタではctrl + vがうまくいかないため、
      入力モードにしてから、SHIFT + Insert を押してみてください。
      SHIFT + Insertでクリップボードからテキストを貼り付けることができます。
      宜しくお願い致します。

  2. Linux初心者 より:

    ためになる記事ありがとうございます
    1点だけ,記事の目次および小項目のタイトルで:qコマンドと:q!コマンドが両方とも:qキーとなっており,また:wコマンドと:wqコマンドもタイトルが両方とも:wキーとなっているので,修正していただけると嬉しいです!

    1. リカレントテクノロジー より:

      いつもご愛読ありがとうございます。
      記事に反映させていただきました。
      ご指摘ありがとうございました。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する