Let's start from here

Linuxのファイルの編集

今までは、コマンドを使用してファイルやディレクトの操作をしてきましたが今回はファイルの中身の編集を行います。Windowsでは、OS付属の「notepad」や使い勝手の良いフリーのエディタもいくつかありますが。Linuxでは「vi」エディタを使用します。
テキスト編集もCUIなので操作に慣れるまで少し時間がかかりますが、これもコマンドど同様に慣れてしまえばかなり効率よくテキストを編集することができます。なお、このテキスト編集で重要な設定ファイルを書き換えてしまうとLinuxが動かなくなる場合があるので注意する必要があります。

viの起動とモード変更

viにファイル名を指定するとそのファイルを表示して編集する事ができます。存在しないファイル名を指定場合は、空のファイルとして扱い保存ができます(以下で説明します)。

大事なファイルを書き換えてトラブルになってもまずいので新規でファイルを作って練習しましょう。

# vi [ファイル名]
(指定したファイルを開いて起動する)

viには、文字で操作する「コマンドモード(ノーマルモード)」と、文字を入力する「編集モード」の2つのモードがあります。例えば、コマンドモードでの[h]キーは「1つ左へ移動する」、編集モードの[h]キーは「hという文字を入力する」という意味になります。

vi エディタの起動直後では、”コマンドモード”になっているので、文字などを入力する事はできません。 文字を入力する場合には、モードを入力モードへ変更する必要があります。 コマンドモードから入力モードへ移行するには、「i」コマンドを入力します。 コマンドは大文字/小文字を区別しますので、注意して下さい。 コマンドモードで入力したコマンドは、エディタの最下部に表示されます。

コマンドモードでキーボードの「i」を押すとカーソルの位置から編集モードになり移動する場合はカーソルキー(↑↓←→)を使用します。[Esc]キーで常にコマンドモードになります。コロン「:」を入力するとカーソルが画面下に移動しますので続けてコマンドを入力します。「ファイルを保存したい」「viを終了したい」といった操作を行いたい場合には[Esc]キーを押してコマンドモードにしてコロンを入力して終了コマンドを入力して「Enter」(実行)となります。

終了コマンド
:q! 保存しないで終了
:wq 保存して終了

viエディタの起動から終了までの流れは以下の手順になります
① vi エディタでファイルを開く
② コマンドモードから入力モードに移行する
③ 編集を行う
④ 入力モードからコマンドモードへ戻る
⑤ 保存をする/しない(終了)

では実際にやってみましょう。先ほど作成した「testfile」を編集して保存します。

# vi testfile

キーボードの「i」を押して編集モードに

画面下に「insert」が表示されれば編集モードです。
テキトーな文字を入力する。

キーボードのESCを押してコマンドモードに変更
画面下に「insert」が非表示になる

:wq を入力して確定するとviが終了する。

ちゃんと保存されているか確認

# cat testfile

viの主なコマンド

i 入力モードへ移行(カーソルの位置から)
Esc コマンドモードへ移行
右へカーソル移動「l」も同じ
左へカーソル移動「h」も同じ
上へカーソル移動「k」も同じ
下へカーソル移動「J」も同じ
x 1文字削除
dd 1行削除
yy 1行コピー
dd 1行カット
p ペースト
/ /検索文字列(後方検索)
? ?検索文字列(前方検索)
n 次の候補
N 前の候補
:q! 保存せずに終了
:wq 保存して終了
:zz 保存して終了
:w 上書き保存
:w ファイルを別名で保存
:wq ファイルを別名で保存して終了