[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

コンピュータIID(UNIXとHTML)第6回

目次
6.1 テキスト・ファイル
6.1.1 テキスト・ファイルとは
6.1.2 ビューアとエディタ
6.2 テキスト・ファイルの表示
6.3 viエディタ
6.3.1 起動と終了
6.3.2 モードの切り替え
6.3.3 挿入モード
6.3.4 コマンド・モード
6.4 演習6
6.5 レポート課題
6.6 参考文献
索引

6.1 テキスト・ファイル

6.1.1 テキスト・ファイルとは

テキスト・ファイルtext file )とは、文字だけで構成されるファイルです。

Microsoft Wordなどのワープロの文書ファイルは、文字だけのように見えますが、テキスト・ファイルではありません。 ワープロの文書ファイルには、文字だけでなく、用紙の大きさや文字の大きさなど、文字以外の情報も一緒に格納されるからです。

テキスト・ファイルは、色々な目的で使われます。 以下は、テキスト・ファイルが使われる具体例です。

6.1.2 ビューアとエディタ

例えば、Wordファイルの内容を表示したり編集したりするには、Wordというソフトウェアを利用する必要があります。 これに対して、テキスト・ファイルの内容を表示したり編集したりするには、何らかのソフトウェアを利用しますが、そのソフトウェアは唯一ではありません。

一般的に、ファイルの内容を表示するソフトウェアを、 ビューアviewer )と呼びます。 テキスト・ファイルのビューアを利用すれば、テキスト・ファイルの内容が表示できます。 また、テキスト・ファイルを編集するソフトウェアを、 テキスト・エディタtext editor )と呼びます。 テキスト・エディタを利用すれば、テキスト・ファイルが編集できます。 テキスト・エディタでもファイルの内容は表示できるので、ビューアは要らないように思えますが、ビューアの方が高速起動するので、ビューアも役に立ちます。

Windowsでは、「メモ帳」が標準的なテキスト・エディタです。 また、「秀丸エディタ」というシェアウェア(試用可能な有料ソフト)もよく利用されます。

Macでは、「テキスト・エディット」が標準的なテキスト・エディタです。 授業で利用している「Jedit X」は、Mac用のテキスト・エディタで、シェアウェアです。 (大学がお金を払っています。)

UNIXでは、「 vi 」(ブイアイ)が標準的なテキスト・エディタです。 また、「 Emacs 」(イーマックス)というフリーソフト(無料ソフト)も人気があります。 ビューアについては、いくつかのUNIXコマンドで、テキスト・ファイルの内容が表示できます。

この授業では、UNIXコマンドだけでパソコンを操作する方針でしたが、テキスト・ファイルの作成だけはJedit Xを利用しました。 その理由は、viがそれなりに難しいからです。 しかし、UNIXを勉強するなら、UNIXの標準テキスト・エディタであるviは無視できません。 以下では、テキスト・ファイルのビューアを紹介したあと、viエディタの使い方を説明します。


6.2 テキスト・ファイルの表示

今まで、テキスト・ファイルの内容を表示するのに、catコマンドを使ってきました。 このコマンドでは、長文のテキストの場合、「ターミナル」の画面に収まりません。 そのときは、ビューアのコマンドを利用します。

ここで、Jedit Xを起動し、以下の内容をコピーして、ファイルcalendar01.txtに保存してください。

                             2008                               

       January              February                March       
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
       1  2  3  4  5                  1  2                     1
 6  7  8  9 10 11 12   3  4  5  6  7  8  9   2  3  4  5  6  7  8
13 14 15 16 17 18 19  10 11 12 13 14 15 16   9 10 11 12 13 14 15
20 21 22 23 24 25 26  17 18 19 20 21 22 23  16 17 18 19 20 21 22
27 28 29 30 31        24 25 26 27 28 29     23 24 25 26 27 28 29
                                            30 31               
        April                  May                  June        
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
       1  2  3  4  5               1  2  3   1  2  3  4  5  6  7
 6  7  8  9 10 11 12   4  5  6  7  8  9 10   8  9 10 11 12 13 14
13 14 15 16 17 18 19  11 12 13 14 15 16 17  15 16 17 18 19 20 21
20 21 22 23 24 25 26  18 19 20 21 22 23 24  22 23 24 25 26 27 28
27 28 29 30           25 26 27 28 29 30 31  29 30               

        July                 August               September     
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
       1  2  3  4  5                  1  2      1  2  3  4  5  6
 6  7  8  9 10 11 12   3  4  5  6  7  8  9   7  8  9 10 11 12 13
13 14 15 16 17 18 19  10 11 12 13 14 15 16  14 15 16 17 18 19 20
20 21 22 23 24 25 26  17 18 19 20 21 22 23  21 22 23 24 25 26 27
27 28 29 30 31        24 25 26 27 28 29 30  28 29 30            
                      31                                        
       October              November              December      
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
          1  2  3  4                     1      1  2  3  4  5  6
 5  6  7  8  9 10 11   2  3  4  5  6  7  8   7  8  9 10 11 12 13
12 13 14 15 16 17 18   9 10 11 12 13 14 15  14 15 16 17 18 19 20
19 20 21 22 23 24 25  16 17 18 19 20 21 22  21 22 23 24 25 26 27
26 27 28 29 30 31     23 24 25 26 27 28 29  28 29 30 31         
                      30                                        

moreコマンド は、テキストを一画面ずつ表示します。 形式は

more file

です。 returnキーで1行スクロールし、スペース・キーで1画面スクロールします。 q キーで終了します。

次のlessコマンドやlvコマンドのほうがより便利なので、このコマンドはあまり使われません。

lessコマンド も、テキストを一画面ずつ表示します。 この名前は、moreの反対の動きもできるという意味です。 形式は

less file

です。 キー操作は以下の通りです

表 6.1  lessコマンドのキー操作
キー操作 動作
return, 下矢印 1行スクロール
スペース 1画面スクロール
k, 上矢印 1行バック・スクロール
b 1画面バック・スクロール
q 終了

lvコマンド も、テキストを一画面ずつ表示します。 これは、日本語など、多くの言語のテキスト・ファイルを表示できるようにしたものです。 形式は

lv file

です。 キー操作は、lessコマンドと同じです。

もし、大学のMacで、コマンドが見つからないと言われたら、

/sw/bin/lv file

としてください。


6.3 viエディタ

ここで、Jedit Xで新規にウィンドウを開き、以下の内容をコピーして、ファイルseason01.txtに保存してください。 これは、ドイツ語の季節を表しています。

Fruehling
Sommer
Herbst
Winter

ファイルに保存したら、ウィンドウを閉じてください。 この授業の目的は、viエディタを利用して、以下のように英語に書き換えることです。

spring
summer
fall
winter

具体的には、次のようにします。

  1. 1行目の"Fruehl"を削除して、"spr"を挿入する。
  2. 2行目の"So"を削除して、"su"を挿入する。
  3. 3行目を削除して、"fall"という行を挿入する。
  4. 4行目の"W"を削除して、"w"を挿入する。

6.3.1 起動と終了

viエディタを起動するには、viコマンドを実行します。 形式は

vi file

です。 これで、ファイル file が編集できます。

viエディタを終了するには、ZZと入力します。 ZZと入力すると、ファイルに保存して終了します。 ファイルに保存したくない場合は、:q!と入力します。

6.3.2 モードの切り替え

viエディタは、コマンド・モードと挿入モードを切り替えながら使います。 モードとは、viエディタの状態だと思ってください。 コマンド・モードでは、キー入力をコマンド(命令)と解釈します。 挿入モードでは、キー入力をテキストと解釈します。

viを起動した直後は、コマンド・モードです。 コマンド・モードから挿入モードに切り替えるには、aキーまたはiキーを押します。 (aとi以外でもできます。) 挿入モードからコマンド・モードに切り替えるには、escapeキーを押します。

                  aまたはi
コマンド・モード --------> 挿入モード
                 <--------
                  escapeキー

6.3.3 挿入モード

コマンド・モードでaキーを押す、すなわちaコマンドを実行すると、カーソルの後にテキストが追加されます。 aコマンドで行の中間にテキストを挿入できますが、特に行末にテキストを追加するにはaコマンドを使います。

コマンド・モードでiキーを押す、すなわちiコマンドを実行すると、カーソルの前にテキストが挿入されます。 iコマンドで行の中間にテキストを挿入できますが、特に行頭にテキストを挿入するにはiコマンドを使います。

6.3.4 コマンド・モード

カーソルを移動するには、コマンド・モードで、hキー、jキー、kキー、lキーを押します。 カーソルは、hコマンドで左に、jコマンドで下に、kコマンドで上に、lコマンドで右に、それぞれ移動します。

    k
    |
h --+-- l
    |
    j

xコマンドは、カーソルがある文字を削除します。 また、ddコマンドは、カーソルがある行を削除します。

以上のコマンドをまとめると、次のようになります。

コマンド 機能
a カーソルの後にテキストを追加
i カーソルの前にテキストを挿入
h カーソルを左に移動
j カーソルを下に移動
k カーソルを上に移動
l カーソルを右に移動
x カーソルのある文字を削除
dd カーソルのある行を削除
ZZ ファイルに保存して終了
:q! ファイルに保存せずに終了

viには、他にも大量のコマンドが定義されていますが、これだけ覚えておけば、最低限の作業はできます。

それでは、実際に書き換えましょう。

  1. 1行目の行頭にカーソルを移動し、6回xコマンドを実行し、iコマンドで挿入モードに入り、"spr"を挿入し、escapeキーで挿入モードを抜けます。
  2. 2行目の行頭にカーソルを移動し、2回xコマンドを実行し、iコマンドで挿入モードに入り、"su"を挿入し、escapeキーで挿入モードを抜けます。
  3. 3行目でddコマンドを実行し、行頭にカーソルを移動し、iコマンドで挿入モードに入り、"fall"と改行を挿入し、escapeキーで挿入モードを抜けます。
  4. 4行目の行頭にカーソルを移動し、1回xコマンドを実行し、iコマンドで挿入モードに入り、"w"を挿入し、escapeキーで挿入モードを抜けます。
  5. 最後に、ZZコマンドでファイルを保存して、viエディタを終了します。

6.4 演習6

まず、Jedit Xで新規にウィンドウを開き、以下の内容をコピーして、ファイルmonth01.txtに保存してください。 これは、ドイツ語の月の名前を表しています。

Januar
Februar
Maerz
April
Mai
Juni
Juli
August
September
Oktober
November
Dezember

ファイルに保存したら、ウィンドウを閉じてください。 そして、catコマンドでドイツ語を表示して、viエディタを利用して英語に書き換えて、catコマンドで英語を表示してください。

asiaa1:~/comp2d b08a001$ cat month01.txt
Januar
Februar
Maerz
April
Mai
Juni
Juli
August
September
Oktober
November
Dezember
asiaa1:~/comp2d b08a001$ vi month01.txt
asiaa1:~/comp2d b08a001$ cat month01.txt
January
February
March
April
May
June
July
August
September
October
November
December
asiaa1:~/comp2d b08a001$

6.5 レポート課題

今日の演習6の答案(「ターミナル」画面のコピー)をメールで提出してください。 差出人は学内のメール・アドレス(b08a001@cis.twcu.ac.jpなど)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(11月7日)を明記してください。


6.6 参考文献


[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2008年11月7日更新
小西 善二郎 <konishi@cis.twcu.ac.jp>
Copyright (C) 2008 Zenjiro Konishi. All rights reserved.