【Linux初心者向け】できた!viコマンドで編集と保存
こんにちは!
株式会社ビヨンド四国オフィスのペルシャ猫、いのうえです。
今回はファイルを編集する「vi」コマンドについて!
オプション多くて検証に苦戦しました。
「vi」コマンドとは、「エディタを起動してー!」と命令するコマンドです。
同時にディレクトリにファイルが存在しない場合は、ファイル作成もしてくれます。
入社当初は、「エディタってそもそもなに???」って思ってましたが
Windowsでいうとこの「メモ帳」と考えるとわかりやすいですね。
viコマンドでファイルを作成し、編集しよう
まずは、「test」ディレクトリにviコマンドで「haruka」というファイル名を指定し、編集します。
[root@test-aws-harukainoue test]# pwd /root/test
[root@test-aws-harukainoue test]# vi haruka
上記コマンドを実行すると「haruka」のノーマルモードに移動します。
この時はまだファイルは作成されていません。
-rw------- 1 root root 12288 Jun 23 01:21 .haruka.swp
このようなSWAPファイルが一時的に作成されます。
SWAPファイルとは、アプリケーションがクラッシュしてデータが消えてしまうことを防ぐために
viが開かれた時に作成され、viで編集後に自動で削除される一時的な記録ファイルのことです。
これにより、もしもviがシステムエラーで強制終了しても、保存前のデータが失われることを防ぐことが出来ます。
そのため「:w」が実行されたときに初めて「haruka」というファイルは作成される仕組みになっています。
ファイルの中身をviで編集する場合は、「i」キーを押し、「INSERT」モードにします。
挿入モードになると「haruka」ファイルの中に記述することが出来ます。
適当にプロフィールでも書いてみます。
井上明香(ペルシャ猫) 趣味:料理 好きなもの:いちごと猫 -- INSERT --
「-- INSERT --」と表示されている間は、挿入モードになっています。
編集モードを抜ける時は「Esc」キーを押します。
:wq
挿入モードでエディタに内容を記述し、保存すると同時に「haruka」というファイルも作成されました!
viコマンドは、ノーマルモードから挿入モードに移行することにより、文字が打てるようになります。
既存のファイルがviで開かれている場合は上書き保存され
新しいファイルを開いていた場合は、ファイルが新規作成されます。
[root@test-aws-harukainoue test]# ll total 4 -rw-r--r-- 1 root root 83 Jun 21 07:42 haruka
「:」でコマンドモードに戻り、「wq」で上書き保存が出来ます。
また、保存済みのファイルを閲覧し終了する場合は、「q」
強制的にviを終了するときは「!」を付けます。
例えばviで編集したものを変更内容を保存せず、破棄して終了する場合は
:q!
を使用します。
知っておくと便利!
■カーソル移動コマンド
矢印キーでも移動できますが知っておくと便利なカーソル移動コマンドをご紹介します。
※「Esc」キーを押下し、編集モードが終了していることを必ず確認して実行してください。
0(ゼロ) | カーソルのある行の行頭にカーソルを移動する。 |
$ | カーソルのある行の行末にカーソルを移動する |
gg | ファイルの先頭にカーソルを移動する。 |
G | ファイルの末尾にカーソルを移動する。 |
nG | ファイルの末尾にカーソルを移動する。 |
■削除コマンド
xもしくは、dl | 現在のカーソル位置の文字を削除 |
dd | 現在のカーソルのある行を削除 |
d$ | 現在のカーソル位置から行末までを削除 |
d0 | 現在のカーソル位置から行頭までを削除 |
dw | 単語1つを削除 |
dgg | 最初の行まで削除 |
dG | 最後の行まで削除 |
■ヤンク
コピー(ヤンク)したい場合は、yを使用します。
yの後ろにカーソル移動コマンドを指定して使用します。
yy | 現在のカーソル位置の行をヤンク |
さいごに
viコマンドについてブログに書こうと思ったら、とにかく苦労しました。
viコマンドについて、分かってるようでわかってなかったんです。
エディタを編集した挿入モードから、コマンドモードにして、エディタを終了する正しい方法について。
それに含め、私のようなLinux初心者にわかる説明はどうすればいいのか・・・
トライアンドエラーを繰り返し、やっとこのブログが誕生しました!!(`・ω・´)
日々成長、日々前進。
毎日、私自身をアップデートしていかなければ!!!
最後まで読んでくださって、ありがとうございます。