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