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」のようにファイル名と書き込んだ行数と文字数が表示される。

 

:wキー:ファイルを保存し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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる