【新卒 / 中途採用】サーバー / クラウドエンジニア 募集中!【大阪】

【新卒 / 中途採用】サーバー / クラウドエンジニア 募集中!【大阪】

【導入実績300社以上】AWS 構築・運用保守サービス

【導入実績300社以上】AWS 構築・運用保守サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【スマホ決済】PayPay ミニアプリ開発サービス

【スマホ決済】PayPay ミニアプリ開発サービス

【メッセージアプリ】LINE アプリ開発サービス

【メッセージアプリ】LINE アプリ開発サービス

【100URLの登録が0円】Webサイト監視サービス「Appmill」

【100URLの登録が0円】Webサイト監視サービス「Appmill」

【対談記事】彼らはどのようにサービスを移管しているのか?インフラ担当会社ビヨンドと共に内情を明かす

【対談記事】彼らはどのようにサービスを移管しているのか?インフラ担当会社ビヨンドと共に内情を明かす

ビヨンド公式YouTubeチャンネル「びよまるチャンネル」

ビヨンド公式YouTubeチャンネル「びよまるチャンネル」

【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初心者にわかる説明はどうすればいいのか・・・
トライアンドエラーを繰り返し、やっとこのブログが誕生しました!!(`・ω・´)

日々成長、日々前進。
毎日、私自身をアップデートしていかなければ!!!
最後まで読んでくださって、ありがとうございます。


この記事をかいた人

About the author

井上明香

ビヨンドに四国オフィス設立メンバーとして入社。IT業界に未経験で飛び込みました。ビヨンドの「賢いキャラ」確立のために日々奮闘中(笑)
地元が大好き。地元愛が止まらない。
小難しい技術ブログが書けるよう日々勉強。日々アップデート。