PREVIOUS | TOP | NEXT

(第3回)UNIX の基礎

今日の目標

今日は、 UNIX での標準的なテキスト・エディタである Emacs を利用してテキストファイルを作成/編集できるようになることを目指します。 Emacsにおける日本語入力の方法についても学びます。

ファイル、ディレクトリの保護モード(アクセス権)の復習

前回(第2回)の内容を、さらにくわしくみます。

(プレーン)ファイル、およびディレクトリの読み、書き、実行可能状態をそれぞれ、 r, w, xで示すのでした。

すなわち、

文字 数値 内容
r 4 ファイルの内容を視る見る(readable)
w 2 ファイルの内容を変更する。生成・削除はできない。(writable)
x 1 ファイルをプログラム(コマンド)として実行する。(executable)

でした。

ディレクトリにかんしては、

文字 数値 内容
r 4 ファイル名の一覧の表示。ファイル名を見る。(readable)
w 2 ディレクトリの内容の変更。 新規ディレクトリ・ファイルの生成。 既存ディレクトリ・ファイルの改名・削除。(writable)
x 1 ディレクトリ・サーチ。ディレクトリ自身の詳細内容を知る。ディレクトリ 内のファイルへのアクセス。(executable)

となります。
※ この項、以下の文献をとくに参考(引用)にしました。
●都倉 信樹『新版 情報工学』(放送大学教育振興会、1999年)、12章。

いま観ているこのWeb ページをつかって試してみましょう。
(i) まず、筆者のホームディレクトリ内の ディレクトリ「public_html」のなかのディレクトリ「johoWeb」、および そのなかの関連ファイルの状態をみておきます。
$ cd  ~mmr14135/public_html/johoWeb
$ ls -al
$ drwxr-xr-x 8 mmr14135 teacher     8192  4月 14 14:23 2014 .
  drwxr-xr-x 3 mmr14135 teacher     4096  4月 14 13:32 2014 ..
                 ............................
$ -rwxr-xr-x 1 mmr14135 teacher    14408  4月 14 14:23 2014 unix03.html
                 ...............................

いま、このページ「unix03.html」が読むことができる ことがわかります。
(ii) つぎに筆者がこのファイル「unix03.html」のアクセス権 を変えます。この操作はもちろん筆者がおこないます。
$ chmod 640 unix03.html
$  ls -al unix03*
-rw-r----- 1 mmr14135 teacher 14408  4月 14 14:23 2014 unix03.html

このとき、Webページを「再読み込み」 して、どうなるかを実験してみてください。

Not Found

The requested URL was not found on this server.
と来るはずです。
(iii) 今度は、もういちど、 「unix03.html」のアクセス権を戻します。
$ chmod 644 unix03.html
「再読み込み」すると、イケますね。
(iv) つぎに、 unix03.htmlを包むフォルダである ディレクトリ「johoWeb」のアクセス権を 変更してみます。「johoWeb」は カレントディレクトリ(現在作業しているディレクトリ )だから、「.」で表わすことができます。
$ chmod 750 .
$ ls -al . -d
$ drwxr-x--- 8 mmr14135 teacher 8192  4月 14 14:23 2014 .
ここの操作は、もちろん、筆者のみがおこないます。 受講者は「再読み込み」してWebページの反応を観てください。
(v) さらに、「johoWeb」のアクセス権を 以下のように変更してみます
$ chmod 754 .
受講者は「再読み込み」してWebページの反応を観てください。 (vi) つぎは
$  chmod 751 .
受講者は「再読み込み」してWebページの反応を観てください。 通常
$  chmod 755 .
という設定になっているとおもいます。

この授業用の作業ディレクトリの作成

自分以外の誰にも「読み/書き/実行・サーチ」の権限がないディレクトリを、 自分のホームディレクトリ下に作成せよ。そのディレクトリの名前は「Documents」とする。

$ cd ・・・ホームディレクトリに移動し
$ mkdir Documents
$ ls -l
drwxr-xr-x 2 mmr14135 teacher   4096  4月 20 23:17 2014 Documents

$ chmod 700 Documents
$ ls -l Documents
$

drwx------ を確認する。今後はDocuments以下で作業を行う。

$ cd Documents
$

Emacs

表記のルール

Emacs 操作入門

起動

ターミナルから Emacs を起動するには、

$ emacs & 
$                                                         

これは新規ファイルで、未だファイル名はついていない。

このファイルに、次のように入力しよう

abcde
fghij
klmno
pqrst
uvwxy
z

ここではファイル名を指定しないでEmacsを起動したので、 ファイル名の所が*scratch*になっていることを確認せよ。

保存 C-x C-s
いま入力したのを名前をつけて保存するには、「C-x C-s」で保存する。

(練習)「C-x C-s」して、「alphabet.txt」として保存しよう。

File to save in: ~/Documents/

と、一番下の長細い窓(ミニバッファ)に出てくるので

File to save in: ~/Documents/alphabet.txt

と追記してエンターキーを押す。

別名保存 C-x C-w

(練習) 「C-x C-w」すると、Write file:~/Documents/と一番下の長細いまどに出てくるので

別の名前alphabet2.txtを打ち込んでリターンキーをおす。

ファイル名の所がalphabet2.txtとなっているのを確認し、次のように編集する。

aabbccddee
ffgghhiijj
kkllmmnnoo
ppqqrrsstt
uuvvwwxxyy
zz

この編集を保存するため「C-x C-s」する

開く C-x C-f
(練習)もう一度 「alphabet.txt」を編集しよう。Emacsからファイルを開くには 「C-x C-f」とすると、

Find file:~/Documents/

と出てくるので

Find file:~/Documents/alphabet.txt

してエンターキーを押す。

あるいは、ファイル名を追記しないで、エンターキーを押すとDocuments下のファイル一覧が

-rw-r--r-- 1 mmr14135 teacher 32  4月 20 23:22 2014 alphabet.txt
-rw-r--r-- 1 mmr14135 teacher 44  4月 20 23:23 2014 alphabet2.txt
...........

と出てくるので、ファイル名の所にカーソルを持っていってエンターキーを押すことでファイルを開くこともできる。ファイル名をうろ覚えのときに便利。

ファイル名を指定してemacsを起動

あるいはemacsを起動するときに、ファイル名を指定することもできる。
$ emacs alphabet.txt & 
$                                                         

カーソル移動

矢印キー(←、↑、→、↓)を使ってカーソルを移動する以外に、 徐々に使えるようになると便利。便利な機能がいろいろある。

一文字進むforward-char : C-f
一文字戻るbackward-char : C-b
次の行へnext-line : C-n
前の行へprevious-line : C-p
行頭へ移動 move-beginning-of-line : C-a
行末へ移動move-end-of-line : C-e
goto-line : M-g g or M-g g
次のページscroll-up : C-v
前のページscroll-down : M-v
ファイルの最初beginning-of-buffer : M-<
ファイルの最後end-of-buffer : M->

(練習)今開いている「alphabet.txt」の中を、 矢印キーの代わりにC-f,b,n,pでカーソルを移動したり、C-a,eで行頭、行末に移動してみよう。

取り消し(UNDO)

もし、間違った変更をしてしまったら、 取り消し(undo)コマンドでその変更を取り消すことができます。
undo : C-/ or C-_ or C-x u

デリート

普通にデリートキーでも文字を消せますが、次のようなやりかたもあります。

delete-char : C-d
delete-backward-char : DEL(Backspace) or C-h

コピー、カット(kill)、ペースト(yank)

カーソル以降をカット kill-line : C-k

ペースト yank : C-y

(練習)「alphabet.txt」の内容を、現在の

abcde
fghij
klmno
pqrst
uvwxy
z

から、

abcde
fghij
klmno
pqrst
uvwxy
z
abcde
fghij
 

に変更してみよう。 やり方は、 最初の状態からC-k,C-k,C-k,C-k(Controlキーを押しながらkを4回押す)して、

klmno
pqrst
uvwxy
z

まで持っていく。この時点でカットされた

abcde
fghij

はEmacsが覚えているので、C-yでペーストする

abcde
fghij
klmno
pqrst
uvwxy
z

覚えているのは何度でもペーストできるので、カーソルを最後の文字zの後ろに持っていって C-yでペーストする。これで変更できるはず。

検索、置換

検索 search-forward : C-s
後方検索 isearch-backward : C-r
query-replace : M-%
query-replace-regexp : C-M-%

・置換するときは、Space key

・置換しないときは、n と押す。

・一括置換するには、!を押せばよい。

関数の実行

実際の編集作業は、上で示したキーバインドを利用して行います。 関数名を指定して、実行するには

M-x function-name

とします。この方法で、キーバインドが定義されていない関数も実行できます。 たとえば、

M-x tetris

Emacs での日本語入力

Emacs で日本語を入力する方法は複数有りますが、ここでは Anthy+Anthy.el を使います。尚、具体的な操作に関してはRGL (PDF版) pp 62--81。応用編にも さらにすすんだ記述があります。

操作方法

半角/全角|漢字キー、または C-¥ と入力すると、Emacs のモード行に「Anthy: あ」と表示され、ローマ字かな変換モードに入ります。この状態でもう一度C-¥ と入力するともとに戻ります。ローマ字かな変換モードでキーを打つと平仮名が入力されます。適当に入力したところでSpace barを押すと漢字に変換されます。

変換と確定間の操作

課題提出

課題:
  • 学術分野(物理でなくともよい)で、あなたの好きなひと、尊敬するひとをEmacsで紹介してください。 業績を客観的に列挙するのではなく、どういうところ(業績でも人間的な面でも何でもかまいません)に惹かれるか、 を中心に書いてください。
    ファイル名は、A2のひとは「a2-名前.txt」、 B2のひとは「b2-名前.txt」とします。
    ※ 名前は半角英数文字にしてください。
  • 各自編集したファイルを松本までメールで提出せよ。 以下のふたつの方法の両方で提出すること。
    (い)ファイルの内容を 内容をメール本体に貼り付ける
    メールの件名
    A2(月1時限)の受講者 → 件名: 情報処理演習(A2)第3回課題(名前)
    B2(火4時限)の受講者 → 件名: 情報処理演習(B2)第3回課題(名前)
    提出期限:演習時間内+α (今日は楽勝じゃないかな!!?)
    (ろ)ファイルをメールに添付する。 ファイル名は、先に書いたように、「a2-名前.txt」、 B2のひとは「b2-名前.txt」である。

    発展

    時間が余った人は、emacs のチュートリアルをやってください。 emacs を起動して

    M-x help

    とすると、一番下の細長いところに、
    Type one of the options listed, or SPACE or DEL to scroll: 
    
    とでるので、t を入力。 あとは画面の指示に従って下さい。

    PREVIOUS | TOP | NEXT