viのファイルの保存と終了方法

viでのファイルの保存方法は以下のようにいくつかあります。

入力キー 意味
:w ファイルを保存
:q ファイルを保存せずに閉じる。ただし、内容が変更されている場合はファイルを閉じることはできません。
:wq ファイルを保存して閉じる。
:q! ファイルを強制的に閉じる。ファイルに変更があっても保存せずにファイルを閉じる。
:w ファイル名 別のファイル名で保存する

viの基本操作2

アンドゥとリドゥ

一つ前の状態に戻すには「u」を押します。
前の状態に戻した後に新しい状態に進めるためには「Ctrl-r」を入力します。

直前に行った処理を繰り返す

「.」を入力すると、直前に行った処理をもう一度実行します。

例えば「3x..」と入力すると合計9文字削除されます。

まず最初の「3x」で、3文字削除され、次の「.」では、直前に行った「3x」と同じ処理を行うため、さらに3文字削除されます。
さらに次の「.」で、更に、3文字削除され、合計9文字削除されます。

ファイルの一覧を見る

linuxのコマンドベースでファイルの一覧を表示したいときには「ls」コマンドを使用します。

カレントディレクトリのファイル一覧を見る時は単純に以下のように実行します。

$ ls

これに以下のように「-l」オプションをつけると更新日などの詳細情報を付加した形で表示されます。

$ ls -l

またカレントディレクトリではないディレクトリにあるファイル一覧を表示させたい場合は、以下のようにディレクトリを指定します。

$ ls -l /home/hoge/test

ファイル操作

teratermで接続して行う、コマンドラインベースでのlinuxのファイル操作はWindowsとは全く異なります。

コマンドラインベースなので、GUIベースのWindowsと異なるのは当たり前ですが‥

ファイルの移動

ファイルの移動には「mv」コマンドを使います。
例えば、カレントディレクトリにある「hoge.txt」というファイルを、カレントディレクトリにあるtestというディレクトリに移動したい場合は以下のようにします。

$ mv hoge.txt test

一つ上のディレクトリに移動したい場合は以下のようにします。

$ mv hoge.txt ..

ファイル名の変更

ファイル名を変更するときも「mv」コマンドを使用します。

例えばカレントディレクトリ内にある「hoge.txt」と言うファイルを同じくカレントディレクトリで「foo.txt」という名前に変更したい場合は以下のようにします。

$ mv hoge.txt foo.txt

カレントディレクトリのtestと言うディレクトリに名前を変えて移動したい場合は以下のようにします。

$ mv hoge.txt test/foo.txt

ファイルをコピーする

ファイルをコピーするには「cp」コマンドを使用します。

$ cp hoge.txt foo.txt

上記のようにするとhoge.txtと同じ内容のファイルがfoo.txtとして作成されます。
コピーなので、hoge.txtも存在したままです。

ファイルを削除する

ファイルを削除するには「rm」コマンドを使用します。

$ rm hoge.txt

空のディレクトリを削除する時は「rmdir」を使用します。

また、中身があるディレクトリを削除する場合は、rmdirじゃだめで「rm」コマンドに「-f」オプションを使います。

ディレクトリの移動

Windowsで言うところの「フォルダ」はlinuxだと「ディレクトリ」と言います。

Windowsではcドライブやdドライブを根っこにしたツリー構造ですが、linuxでは「/」を根っこにしたツリー構造です。
この「/」のことをルートと呼びます。

ユーザーアカウントでlinuxにログインしたばかりの状態では、そのユーザーのホームディレクトリにいます。

例えば、「hoge」というユーザーがログインすると、「/home/hoge」というディレクトリにいます。

ちなみに今いるディレクトリのことをカレントディレクトリといいます。

カレントディレクトリが/home/hogeの状態で「$ vi hoge.txt」とviを起動して、何か書き込んだりしてファイルを保存すると、そのファイルは「/home/hoge/hoge.txt」として存在することになります。

次に/home/hoge/testというディレクトリがあったとすると、このディレクトリに移動するためには以下を実行します。

$ cd /home/hoge/test

また、カレントディレクトリが/home/hogeの場合は以下でもたどり着けます。

$ cd test

この「cd」というコマンドは、「change directory」の略で、そのなの通りディレクトリを移動するためのコマンドです。

逆に一つ上のディレクトリに移動する場合は以下のようにします。

$ cd ..

この「..」は、一つ上のディレクトリ(parent directory)を意味します。

また、ディレクトリを作成するには以下のようにします。

$ mkdir test2

これで、カレントディレクトリにtest2というディレクトリが作成されます。

ディレクトリを削除するときは、以下のようにします。

$ rmdir test2

ただし、このコマンドはディレクトリが空のときしか使えません。

からじゃない時は以下のように削除します。

$ rm -r test2

現在の位置(カレントディレクトリ)を表示する

自分が今どこにいるかはpwdコマンドで確認できます。

$ pwd
/home/hoge

viの基本操作

「viとは」でviがどんなものか少しつかめたと思います。

次はviでテキストファイルを編集する上で知っておくべき基本的な操作方法を説明します。

1. コマンドモードと挿入モード

viには「コマンドモード」と「挿入モード」の二つのモードがあります。

コマンドモードでは、文字列検索、カーソルの移動、コピー&ペーストなどを行います。
一方挿入モードではファイルへの文字列挿入を行います。

この二つのモードの行き来は以下のようになります。

  • コマンドモード ➡︎ 挿入モード
    • i (カーソルの手前に挿入される)
    • a (カーソルの後ろに挿入される)
  • 挿入モード ➡︎ コマンドモード
    • ESCキー

ちなみにviを起動したらコマンドモードから始まります。

2. 文字の挿入

iやaを押して挿入モードになったらそこからのキー入力はそのままテキストファイルに挿入されます。
たとえばコマンドモードの状態で「abc」と入力するとbcが挿入されます。

3. カーソルの移動

カーソルの移動が素早く柔軟に行えるのもviの大きな長所の一つです。

以下にカーソルの移動方法一覧を示します。

入力キー 意味
p 一つ上の行に移動
pの前に数字を入れるとその数字の分だけ上の行に移動する
j 一つしたの行に移動
jの前に数字を入れるとその数字の分だけ上の行に移動する
h 一つ左の文字に移動
hの前に数字を入れるとその数字の分だけ上の行に移動する
l 一つ右の文字に移動
lの前に数字を入れるとその数字の分だけ上の行に移動する
G 最後の行に移動
数字G 数字で指定した行に移動
0 行の先頭に移動
^ 行の最初の文字に移動
$ 行の最後に移動
w 次のwordに移動する。
Ctrl-u 半画面上に戻る
Ctrl-d 半画面下に進む

4. コピーと切り取り

コピーや切り取りもコマンドモードで行います。

入力キー 意味
x 1文字切り取り(削除)。
xの前に数字を入れるとその数分の文字数が切り取られる。
dd 1行丸ごと切り取り(削除)。
ddの前に数字を入れるとその数分の行が切り取られる。
yy 1行丸ごとコピー。
yyの前に数字を入れるとその数分の行がコピーされます。

6. 貼り付け

貼り付け方法は以下の二種類あります。

入力キー 意味
p 文字の貼り付けならカーソルのある文字の右側に、行の貼り付けならカーソルのある行の次の行に貼り付けられます。
P 文字の貼り付けならカーソルのえる文字の左側に、行の貼り付けならカーソルのある行の手前の行に貼り付けられます。

7. 文字列の検索

文字列検索も簡単です。

•/検索文字列
/(スラッシュ)の後に検索したい文字列を入れるだけで検索できます。
たとえば「/abc」と入れて、エンターキーを押せばabcという文字列がある場所まで移動します。
続けてエンターキーを押すと次のabcに移動します。
検索は今ある位置から下に進みますが、SHIFTを押しながらエンターキーを押すと上に向かって検索できます。

9. 文字列の置換

置換の方法はいくつかあります。

入力キー 意味
r カーソルがある文字を別の文字に変更できます。
たとえばmという文字にカーソルがある状態で「rj」とすれば、mがjに変わります。
cw 一つの文字列を別の文字列に置き換えます。
例えば「abc efg hijk lll」という文章があった場合にeのところにカーソルがある状態で「cwjejeje」と入力し、最後にESCキーを押すと、efgという文字列がjejejeにかわります。

viとは

viはサーバー上のテキストファイルを直接編集する際に非常に便利なコマンドです。

sshが使えるサーバーを借りてる方は是非viで直接編集出来るようになって作業効率を上げてください。

1. viとは
UnixやLinuxで使用される最もよく使われるテキストエディタの一つ。
vi以外ではemacsがよく使われてます。

2. viの特徴
viは、マウスや方向キーを使わずに様々な編集をすることが可能です。
マウスや方向キーを使わないため、慣れると非常に高速にテキストファイルの編集が行えます。

一度viに慣れてしまうとvi五感エディタ以外使えない!という人も結構います。慣れればそれくらい使いやすいエディタなんです。

3. 実践

とりあえず実際に使ってみて何と無く感覚をつかんでみます。

$ vi hoge.txt

上記のように打ち込むと「hoge.txt」というファイルがviにより開きます。

新規ファイルの場合は何も内容がないはずです。

まずは、このファイルに「hello」という文字列を保存してみます。

viでファイルを開いたら次のように打ち込んで行ってください。
(カンマは単なる区切りなので入力は不要です)

「i, h, e, l, l, o, ESC, :, w, q, ENTER」

こうすると、「hello」という内容がhoge.txtに保存されます。

4. 実践の解説
これは何をしているかというとそれぞれ以下のようになります。

1. 「i」
挿入モードに移行します。
viでは挿入モードに移行して初めて入力したキーが文字列としてテキストファイルに挿入されます。
入力モードになる前の各キーボードのキーは文字の削除、コピー、貼り付け、カーソルの移動など様々な役割を担います。
その中で、この「i」は入力モードへの切り替えの役割を果たします。

2. 「hello」
直前に「i」があるので挿入モード中のキー入力になるため、全て文字列としてファイルに挿入されます。

3. 「ESC」
エスケープキーです。
キーボードの左上にあるやつです。
これを押すと挿入モードが解除されます。

4. 「:」
コロンです。
これを入力すると、画面の下部に入力カーソルが来て特殊コマンド入力モードになります。
このモードでは、ファイルの保存や、viの終了、文字列の一括変換、各種設定をすることができます。

5. 「wq」
直前に:(コロン)が入力されているので、特殊コマンドモード中の入力になります。

特殊コマンドモードでの「w」はファイルの保存を、「q」はviの終了を意味します。

ここでは、「wq」と連続で入力してますが、これでファイルを保存して終了という意味になります。

6. 「ENTER」
最後にエンターキーを押します。
これにより直前に入力していた特殊コマンドモードを実行します。

つまり、ファイルの保存とviの終了を実行します。

これで、hoge.txtというファイルがhelloという文字列を含んで作成されました。

このファイルを編集するときは、作成時と同じように以下を実行します。

$ vi hoge.txt

teratermの使い方(ファイルの作成•編集)

サーバーにログインできたら今度はファイルを作成してみます。

ファイルの編集には「vi」というコマンドを使うのが一般的です。

では早速viを使ってファイルを作成してみます。

$ vi hoge.txt

上記のように打ち込むと「hoge.txt」というファイルがviにより開きます。

新規ファイルの場合は何も内容がないはずです。

viはWindowsなどで使用するメモ帳などのテキスト編集ソフトとは全く使い勝手が違います。

viは全ての編集作業をキーボードだけでスムーズに出来るように工夫された作りになっています。

まずは、このファイルに「hello」という文字列を保存してみます。

viでファイルを開いたら次のように打ち込んで行ってください。
(カンマは単なる区切りなので入力は不要です)

「i, h, e, l, l, o, ESC, :, w, q, ENTER」

こうすると、「hello」という内容がhoge.txtに保存されます。

これは何をしているかというとそれぞれ以下のようになります。

1. 「i」
挿入モードに移行します。
viでは挿入モードに移行して初めて入力したキーが文字列としてテキストファイルに挿入されます。
入力モードになる前の各キーボードのキーは文字の削除、コピー、貼り付け、カーソルの移動など様々な役割を担います。
その中で、この「i」は入力モードへの切り替えの役割を果たします。

2. 「hello」
直前に「i」があるので挿入モード中のキー入力になるため、全て文字列としてファイルに挿入されます。

3. 「ESC」
エスケープキーです。
キーボードの左上にあるやつです。
これを押すと挿入モードが解除されます。

4. 「:」
コロンです。
これを入力すると、画面の下部に入力カーソルが来て特殊コマンド入力モードになります。
このモードでは、ファイルの保存や、viの終了、文字列の一括変換、各種設定をすることができます。

5. 「wq」
直前に:(コロン)が入力されているので、特殊コマンドモード中の入力になります。

特殊コマンドモードでの「w」はファイルの保存を、「q」はviの終了を意味します。

ここでは、「wq」と連続で入力してますが、これでファイルを保存して終了という意味になります。

6. 「ENTER」
最後にエンターキーを押します。
これにより直前に入力していた特殊コマンドモードを実行します。

つまり、ファイルの保存とviの終了を実行します。

これで、hoge.txtというファイルがhelloという文字列を含んで作成されました。

このファイルを編集するときは、作成時と同じように以下を実行します。

$ vi hoge.txt

teratermの使い方(ダウンロード〜ログイン)

ここでは、teratermのダウンロード、インストール、および、teratermでsshを使ってサーバーへログインする方法を説明します。

1. teratermのダウンロード
私はいつも窓の杜の以下のページからダウンロードしてます。

http://www.forest.impress.co.jp/library/software/utf8teraterm/

このページにあるポータブル版じゃない方をダウンロードします。

2. teratermのインストール
ダウンロードしたファイルを開くとインストーラが起動してインストールが始まります。

全て流れに任せて「はい」を選択して行けば無事にインストールできます。

3. サーバーへの接続
sshを起動するとアドレスやプロトコルを選択するダイアログが現れます。

そこにレンタルサーバーのアドレスを入力し、sshを選択して接続します。

すると別のダイアログが開いて今度はユーザーIDとパスワードを入力します。

入力に間違いがなければサーバーにログインできます。