誰でも COMPUTER

Windows, Linux関係の操作方法、等々

viの使い方(必要最小限)

Linuxを使い始めると、必ず引っかかるのがviというテキストエディタの使いづらさです。Linux環境では、設定変更のほとんどはテキストファイルで編集するため、テキストファイルの編集作業は、非常に重要です。

好みのエディタを入れるという回避策もありますが、様々な環境で臨機応変に対応するには、最低限度の使い方はマスターしておく必要があります。

今回は、viの最低限度の使い方のみに絞って、わかりやすく説明します。

今回は、~/.profileに定義されているPATH変数の内容を変更します。 今回紹介している操作さえ覚えれば、とりあえずどのLinux環境でも、とりあえずテキストファイルの編集は対応可能だと思います。

ファイルを開く

viというコマンド名に続けて、ファイル名を指定します。ファイルが存在しない場合はそのファイル名で新たにファイルが作成されます。

vi ファイル名


例:.profileというファイルを、viで開きます。

vi .profile


先頭が"."で始まるファイルは、Linux隠しファイルと呼ばれているものです。lsコマンドで確認する際は、-aオプションを付けると確認できます。

$ ls -la
total 60
drwxr-xr-x 4 appliance appliance  4096 Jan  4 11:35 .
drwxr-xr-x 3 root      root       4096 Nov  9 23:31 ..
-rw------- 1 appliance appliance 16753 Jan  3 19:13 .bash_history
-rw-r--r-- 1 appliance appliance   220 Nov  9 23:31 .bash_logout
-rw-r--r-- 1 appliance appliance  3775 Jan  4 11:15 .bashrc
(略)
-rw-r--r-- 1 appliance appliance   701 Jan  4 11:35 .profile
(略)


※環境ファイルやシステム系のファイルを編集する前には、必ずバックアップファイルを作成しましょう。

cp -p .profile .profile.bak

-pは、ファイルの属性、タイムスタンプ、所有者を変更せずにコピーするというオプションです。

行のコピー

以下はviでファイルを開いたときの状態です。
末尾のPATH変数の設定のところを今回修正します。

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
(略)
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"


行をコピーする手順
1. 該当の行に矢印キーで移動する
2. コピーコマンド yy (yを続けて2回)を押す
f:id:Unam:20180104120511p:plain

続けて pを押すと、カーソルのある行の下に、コピーした行が挿入されます。
f:id:Unam:20180104120857p:plain

行の編集(文字の追加)

今回は、元の設定をコメントにして保存しておくため、編集する行の先頭にカーソルを移動し、i を押します。これで 行に文字を追加する(insert)モードになります。
f:id:Unam:20180104132259p:plain

元の行をコメントにするため # を追加します。追加したい文字はこれだけなので、 すぐ escキーを押して、追加モードを終了します。
f:id:Unam:20180104122148p:plain

今度は、コピーしたほうの行に、文字を追加します。先ほどと同じように、カーソルを文字を挿入したい位置に移動して、iを押します。 f:id:Unam:20180104122708p:plain

文字を挿入し、escキーを押す。 f:id:Unam:20180104122801p:plain

編集のやり直し

文字の編集モードで矢印キーを動かしてしまうと、以下のように別の行に文字が入ってしまい、おかしくなってしまう場合があります(Linuxの環境により挙動が異なり、ならない場合もあります)。
f:id:Unam:20180104123439p:plain

こうなってしまった場合は、 一度、escキーを押したあと、不要な行で ddキー(1行削除)を押し、削除してください。
f:id:Unam:20180104123830p:plain

やり直しも1回だけなら、uキー(undo)で可能です。

ぐちゃぐちゃになって、わけがわからなくなってしまったら(viを使い始めの頃は、よくあると思います)、一度編集内容を破棄して、やり直した方がよい場合もあります。

escキーと : を押すと、画面の下に操作コマンドが入力可能になります。ここで q! と入力し、Enterを押せば、編集内容を破棄して終了します。最初からやり直しましょう。
f:id:Unam:20180104125342p:plain

行の追加

行を追加する場合はoを押すと、下の行に行が追加されます。そのまま編集モードになるので、文字の入力が可能です。
f:id:Unam:20180104124411p:plain

追加したい文字を入力し、escを押します。
f:id:Unam:20180104125532p:plain

文字の削除

不要な文字を削除したい場合は、xキーで1文字ずつ削除できます。
f:id:Unam:20180104125752p:plain

ファイルの保存

編集が終了したら、escを押した後、:wq(保存して終了)と入力し、Enterを押します。
f:id:Unam:20180104125944p:plain

まとめ

今回紹介した操作方法です。

操作 コマンド
ファイルを開く vi ファイル名
1行コピー yy
ペースト p
文字の追加 i
1行削除 dd
やり直し u
1文字削除 x
保存せず終了 :q!
保存して終了 :wq

慣れてくれば、ほかにももっと便利なコマンド、操作方法はたくさんあります。

ただ、テキストファイルの編集するのに、いちいちコマンドのリファレンス見ていては作業にならないので、まずは、上記のシンプルなコマンドだけでviの操作に慣れることをおススメします。

ある程度慣れてきて、「こういうことはできないのかな?」と思ったら、その操作方法を検索してみてください。すぐにやり方を見つけられると思います。

少しずつできることを増やしていきましょう。