UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版...

257
UNIX 0.08 1 2002 11 28 ( ) 1 大学

Transcript of UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版...

Page 1: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

UNIX入門第 0.08版

半塲 滋 1

2002年 11月 28日 (木)

1琉球大学工学部電気電子工学科

Page 2: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 3: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

iii

この文書について

この文書は, 琉球大学工学部電気電子工学科の 1年次学生を対象としたコンピュータリテラシの講義で

ある

電 101 プログラミング基礎

の講義資料として作成されたものです. 1999年から 2002年までの 4年間にわたって, この資料に基づく講

義がおこなわれていました.

この資料を準備した目的は, コンピュータの知識をまったく持たない学生に講義や実験で当学科の学生用

端末を利用するための必要最低限の知識を与えることでした.

当学科の学生用端末のオペレーティングシステムは 1997年までは IBM AIX, 1998年は RedHat 4.2, 1999

年から 2000年は FreeBSD 2.2.8-Release, 2001年から 2002年までは FreeBSD 4.2-Releaseでした. 上記の

オペレーティングシステムの変遷を反映して, この資料は 1998年にまず RedHat 4.2 を前提として準備さ

れ, 1999年に FreeBSD 2.2.8-Release 用に書き換えられ, さらに 2001年に FreeBSD 4.2-Release向けに改

訂されています. 上述の講義資料の作成および改訂作業はすべて半塲が一人でおこなっています.

本文書の性格は「初学者が読み捨てるタイプの資料」であり, 読者が実際にチュートリアル形式でコマン

ドを実行しながらコンピュータの使い方を学んでゆくことを想定しています. リファレンスとしての性格は

持たせていません. ですから, 本文書で紹介されているアプリケーション等のより詳細な使い方を調べるた

めには, オンラインマニュアルを参照したり他の書籍を参照したりする必要があります.

読者が実行することを想定しているコマンドについてはページの左端に番号が振られています (これ以外

にも番号が振られている箇所が多数あります).

この文書はコピーフリーとします. 本文書に一切改変を加えないという条件の下で, 自由な再配布を許可

します.

著者は本文書の内容に関して正確を期してはいますが, 本文書の内容の正しさに関しては一切保証しませ

ん. また, 本文書の内容に関する質問は一切受け付けません. ただし, 誤りの報告については歓迎します.

Page 4: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 5: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

v

目 次

第 1章 コンピュータの使い方 1

1.1 電源の投入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 キーボード, マウス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 キーボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.2 トラックボールとマウス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 ログイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 ログインに成功すると . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5 ログアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6 電源の遮断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.7 タッチタイピングについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.8 コンピュータを利用するときの注意事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

第 2章 基本コマンド (1) 11

2.1 ホームディレクトリの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 ファイルとディレクトリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4 ファイルとディレクトリの操作 (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4.1 cd と mkdir : ディレクトリの移動と作成 . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4.2 ls : ディレクトリにあるファイルの一覧を見る . . . . . . . . . . . . . . . . . . . . . 15

2.4.3 cat : ファイルの中身を見る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.4 rmdir : ディレクトリを消す . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 タッチタイピングの練習 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

第 3章 基本コマンド (2) 21

3.1 コマンドライン編集, ヒストリ機能, 補完 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2 ファイルとディレクトリの操作 (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1 cat, jless: ファイルを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.2 lsのオプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.3 touch: 新しいファイルを作る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.4 rm: ファイルを消す . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.5 cp: ファイルを複写する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.6 mv: ファイルの名前を変える . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.7 chmod: ファイルの保護モード (パーミッション)を設定する . . . . . . . . . . . . . 25

3.2.8 jman: マニュアルを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 X Window Systemと fvwm2 の基本的な用語と操作 . . . . . . . . . . . . . . . . . . . . . . 27

3.3.1 ウィンドウ各部の名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3.2 各部のはたらき . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3.3 仮想デスクトップとページャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

第 4章 エディタと印刷 31

4.1 エディタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2 Muleの起動と終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.3 Ctrlキーとメタキー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Page 6: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

vi

4.4 Muleの基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4.1 Muleの起動から終了まで . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4.2 Muleのウィンドウ各部の名称と機能 . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.4.3 Muleのよく使われるコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.4.4 Muleチュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.5 かんなによる日本語入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.1 かんなの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.2 ひらがなを入力する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5.3 漢字に変換する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.5.4 カタカナ, アルファベットの入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.5.5 半角文字と全角文字に関する注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.5.6 かんなの操作のまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.6 印刷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.6.1 lpr: 印刷する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.6.2 lpq: プリンタの状態を調べる . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.6.3 lprm: 印刷待ちのデータを消す . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.6.4 印刷関連のコマンド一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

第 5章 電子メール 47

5.1 電子メールの宛先の記法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2 mailコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2.1 電子メールを送信する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2.2 電子メールを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.2.3 ファイルを電子メールで送る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3 Muleを使った電子メールの読み書き . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.1 電子メールを送信する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3.2 電子メールを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.4 電子メール利用上の注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.5 文字コード, 漢字コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

第 6章 ネットニュース 57

6.1 ネットニュースとは何か . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.2 ローカルニュースとグローバルニュース . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.3 ネットニュースを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.4 署名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6.5 ネットニュースに記事を書く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.5.1 記事を書くときの注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.5.2 ステップ 1:ニュースグループの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.5.3 ステップ 2: 記事を書く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.5.4 ステップ 3: 記事を投稿する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6.6 テスト投稿した記事のチェック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.7 記事のキャンセル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.8 今読んでいる記事に対する続報 (Followup)を書く . . . . . . . . . . . . . . . . . . . . . . . 67

6.9 mnewsを使った電子メールの読み書き . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.9.1 電子メールを出す . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.9.2 電子メールを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.10 mnewsのマニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 7: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

vii

第 7章 基本コマンド (3) 73

7.1 パスワードおよびユーザ情報の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.1.1 passwd:パスワードを変更する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.1.2 chfn: ユーザ情報を変更する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

7.2 ディレクトリの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.2.1 環境変数 PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.2.2 env: 環境変数の一覧を表示する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.2.3 echo: 文字列などの内容を表示にする . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.3 プロセスやジョブに関するコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.1 プロセス, ジョブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.2 ps: 稼働中のプロセスの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.3 バックグラウンドジョブとフォアグラウンドジョブ . . . . . . . . . . . . . . . . . . 79

7.3.4 フォアグラウンドで動いているプロセスの強制終了と一時的中断 . . . . . . . . . . . 80

7.3.5 fg:ジョブのフォアグラウンドでの再開 . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.3.6 bg:ジョブのバックグラウンドでの再開 . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.3.7 ジョブの中断とアイコン化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.3.8 kill: プロセスを強制終了する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.3.9 egrep: 特定のパターンの抜き出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.4 いくつかのコマンドを組み合わせて使う . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.4.1 パイプ (|) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.4.2 リダイレクト (「<」と「>」) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.5 jman: オンラインマニュアルを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

7.6 その他のオンラインマニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

7.7 ハードディスクの消費, ファイルの圧縮と展開 . . . . . . . . . . . . . . . . . . . . . . . . . 84

7.7.1 dfと du: ハードディスクの消費量を調べる . . . . . . . . . . . . . . . . . . . . . . . 84

7.7.2 tar: 複数のファイルやディレクトリをまとめる . . . . . . . . . . . . . . . . . . . . 85

7.7.3 フロッピーディスクの利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.7.4 ファイルの圧縮と展開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.7.5 uuencode と uudecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

7.8 その他のコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

第 8章 X Window System上で動作するツール 91

8.1 kinput2: X Window System での日本語入力 . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.2 xwdと xwpick: X Window Systemの画面の一部をファイルに保存する . . . . . . . . . . . 91

8.3 convert: 画像の形式の変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

8.4 gv: PostScriptファイルを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

8.5 練習: xwd, convertと gvの利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

8.6 acroread4: PDFファイルを読む . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.7 Tgif: シンプルな描画ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8.7.1 Tgifの起動と終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8.7.2 簡単な図形の描画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

8.7.3 折れ線や曲線を描く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

8.7.4 四角形を描く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.7.5 日本語を入力する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.7.6 描き終わった図を保存する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8.7.7 描き終わった図を印刷する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8.7.8 ファイルを開く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.8 gnuplot: 2次元および 3次元グラフ作成ツール . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.8.1 gnuplotを起動する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.8.2 gnuplotを終了する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Page 8: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

viii

8.8.3 基本的な操作法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

8.8.4 1変数関数を描画する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

8.8.5 epsファイルに保存する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8.8.6 非対話的な gnuplotの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8.8.7 ファイルからコマンドを実行する . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.8.8 コマンドのファイルへの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.8.9 データファイルのプロット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.9 gimp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

第 9章 数式処理/数値計算ソフトウエア 119

9.1 MuPAD入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.1.1 MuPADとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.1.2 MuPADの起動と終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.1.3 オンラインマニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

9.1.4 MuPADの基本的な使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

9.1.5 演算子, 定数と数学関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

9.1.6 微分, 積分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

9.1.7 フーリエ変換とラプラス変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

9.2 Scilab入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

9.2.1 Scilabとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

9.2.2 Scilabの起動と終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

9.2.3 いくつかの例題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

9.2.4 Scilabのオンラインマニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

9.2.5 Scilabの実行環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9.2.6 Scilabの構文と関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9.2.7 線形代数の例題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

第 10章 ネットワークコマンド 151

10.1 ホスト名, ドメイン名, IPアドレス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

10.2 ネットワーク番号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

10.3 ネットマスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

10.4 MACアドレス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

10.5 ifconfig: ネットワークインターフェースの情報を取得 . . . . . . . . . . . . . . . . . . . . . 154

10.6 ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

10.7 nslookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

10.8 いわゆる rコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

10.8.1 rlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

10.9 telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.10セキュリティに関する注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.11ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

第 11章WWWブラウザ 159

11.1 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.1.1 Netscapeの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.1.2 Netscapeの基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.2 w3m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Page 9: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

ix

第 12章 シェル, 環境設定ファイル, Perl入門 169

12.1 シェル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

12.2 シェルプログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

12.3 環境設定ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

12.3.1 環境設定ファイルとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

12.3.2 環境設定ファイルのカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.4 Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

12.4.1 Perlの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

12.4.2 Perlの基本的な文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

12.4.3 制御構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

12.4.4 if文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

12.4.5 while文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

12.4.6 for文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

12.4.7 foreach文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

12.4.8 ファイル中に含まれる各単語の出現頻度を数える . . . . . . . . . . . . . . . . . . . 184

第 13章 LATEX 191

13.1 LATEXによる処理の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

13.2 LATEXソースプログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

13.3 LATEXの文書の基本的な構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

13.3.1 LATEXのコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

13.3.2 文書の論理的な構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

13.3.3 環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

13.3.4 相互参照 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

13.4 AUC TEXによる LATEX文書作成の自動化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

13.5 数式の組み方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

13.5.1 数式環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

13.5.2 いくつかの数式の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

13.6 図の取り込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

第 14章 補遺 207

14.1 遠隔端末の X Window System用アプリケーションの利用 . . . . . . . . . . . . . . . . . . 207

14.2 ディレクトリの整理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

14.3 バックアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

14.4 Muleの操作に関する注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

14.4.1 複数のウィンドウの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

14.4.2 複数のバッファの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

14.4.3 複数のフレームの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

14.4.4 diredモード: ディレクトリの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

14.4.5 Muleのより高度な機能について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

14.5 Octave入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

14.5.1 Octaveとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

14.5.2 Octaveの起動と終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

14.5.3 Octaveのコマンド行編集機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

14.5.4 Octaveの実行環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

14.5.5 Octaveの構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

14.5.6 演算子, 定数と代表的な数学関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

14.5.7 オンラインヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

14.5.8 チュートリアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

14.5.9 行列の要素の参照と部分抽出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Page 10: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

x

14.5.10行列やベクトルの演算のためのいくつかの関数 . . . . . . . . . . . . . . . . . . . . . 224

14.5.11線形方程式を解く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

14.5.12スクリプトファイルの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

付 録A 学生用の環境設定ファイル 233

A.1 .login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

A.2 .cshrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

A.3 .xinitrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

A.4 .Xdefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

A.5 .emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

Page 11: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xi

図 目 次

1.1 ノートパソコン (ふたが閉じられた状態) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 ノートパソコン (ふたが開いた状態) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 ノートパソコンのキーボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 マウス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5 ログイン直後の画面の様子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.6 マウスの左ボタンを押した状態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.7 メニューウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.8 サブメニューが表示されたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.9 マウスの中央ボタンを押した状態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.10 ログアウト確認ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.11 タッチタイピングのための各指の役割分担 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 コマンド pwdを入力したときの画面の様子 . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 ディレクトリの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 lectureという名前のディレクトリを作ったところ . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 コマンド lsを入力したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 コマンド catによってファイルの中身が表示されたところ . . . . . . . . . . . . . . . . . . . 16

2.6 コマンド jlessを使っているところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.7 Muleを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.8 trrの起動 (その 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.9 trrの起動 (その 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.10 trrの成績判定画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.11 Muleの Files メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1 コマンド cpを実行したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 コマンドmvを実行したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3 ls -lによって表示される文字列の意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4 ファイルの保護モードの意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.5 chmodを使ったパーミッションの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.6 ウィンドウマネージャなしで X Window System を起動 . . . . . . . . . . . . . . . . . . . 27

3.7 ウィンドウ各部の名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.8 いろいろなアイコンが画面にたまったところ . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1 Muleのウィンドウが開いたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.2 Muleのフレーム各部の名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.3 かんなが起動しているときのモード行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4 かんなの日本語入力モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5 かんなのアルファベット入力モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.6 変換候補一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.7 変換作業中の文節 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1 mailコマンドで電子メールの送信を終わった状態 . . . . . . . . . . . . . . . . . . . . . . . 49

5.2 mailコマンドで電子メールを読んでいるところ . . . . . . . . . . . . . . . . . . . . . . . . 49

Page 12: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xii

5.3 Muleにおける rmailの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.4 Muleにおける rmailのヘルプ画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.5 電子メールに返事を書こうとしているところ . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.1 ニュースグループの分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.2 mnewsを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.3 mnewsでカテゴリ ura を開いたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.4 mnewsでカテゴリ ura.eee を開いたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.5 mnewsでニュースグループ ura.eee.announce を開いたところ . . . . . . . . . . . . . . . . 61

6.6 mnewsで記事を読んでいるところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.7 mnews の記事選択画面の意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.8 記事を投稿するニュースグループの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.9 記事の題目の入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.10 記事の配布範囲の指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.11 記事の編集画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.12 記事の編集が終了したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.13 記事投稿の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.14 記事をふつうに読んでいるところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.15 記事のヘッダをすべて表示したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.16 mnewsにおける電子メールの宛先の指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.17 mnewsにおける ccの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.18 mnewsにおける電子メールの題目の指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.19 mnewsにおける電子メール本文の編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.20 mnewsにおける電子メール本文の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.21 mnewsで電子メールを送信しようとしているところ . . . . . . . . . . . . . . . . . . . . . . 69

6.22 mnewsのMAILモードでのメッセージ一覧表示 (1) . . . . . . . . . . . . . . . . . . . . . . 71

6.23 mnewsで電子メールを送信しようとしているところ . . . . . . . . . . . . . . . . . . . . . . 71

6.24 mnewsで電子メールを削除しようとしているところ . . . . . . . . . . . . . . . . . . . . . . 71

7.1 コマンド passwdを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7.2 パスワードの変更が終わったところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7.3 chfnを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

7.4 ディレクトリ構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.5 コマンド envを実行したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.6 環境変数 PATHの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.7 echo PATHとしたときの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.8 コマンド psの出力の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.9 コマンド psの出力の見方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.10 コマンド psでプロセス番号を探しているところ . . . . . . . . . . . . . . . . . . . . . . . . 82

7.11 コマンド df の出力例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

8.1 kinput2が起動した状態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

8.2 xwpickを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

8.3 gvを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

8.4 gvの印刷ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

8.5 gvの保存ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

8.6 gvでファイルを開くためのウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

8.7 gvの倍率選択メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.8 gvのエラー表示ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.9 Acrobat Readerの画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Page 13: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xiii

8.10 メニューバーウィンドウのアイコンの意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

8.11 Acrobat Readerの Fileメニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

8.12 Acrobat Readerのファイル選択ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

8.13 Acrobat Readerにおける倍率の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

8.14 Acrobat Readerにおける拡大と縮小の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

8.15 Acrobat Readerの印刷ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

8.16 Tgifを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

8.17 Tgifのファイルメニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

8.18 モードメニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

8.19 直線と折れ線を描いたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8.20 ハンドルが表示されたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8.21 Tgifの各種設定メニューが開いたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8.22 線のスタイルのメニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8.23 線の種類メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

8.24 折れ線を曲線に変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

8.25 塗りつぶしパターンの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.26 四角形を描き終わったところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.27 フォントメニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.28 文字がこれから入力されてゆく箱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.29 日本語入力のウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.30 ひらがなを入力したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.31 漢字に変換されたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.32 漢字変換の全候補の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8.33 変換後の漢字がキャンバスウィンドウに書かれたところ . . . . . . . . . . . . . . . . . . . . 111

8.34 ファイル名を入力するウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8.35 ファイルを開く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.36 gnuplotの起動画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

8.37 正弦関数のグラフ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8.38 ファイルへの保存が終わったときの gnuplot のウィンドウの状態 . . . . . . . . . . . . . . . 116

8.39 データファイル sample.dat の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.40 データファイル sample.datのプロット (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.41 データファイル sample.datのプロット (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

9.1 MuPADの起動画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.2 MuPADのオンラインマニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

9.3 Scilabの起動画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

9.4 デモ (例題)を選択するためのウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

9.5 デモ “Introduction to SCILAB”が実行されている画面 . . . . . . . . . . . . . . . . . . . . 133

9.6 デモ “Introduction to SCILAB”を途中まで実行した画面 . . . . . . . . . . . . . . . . . . . 134

9.7 デモ “Graphics: Introduction”の選択メニュー . . . . . . . . . . . . . . . . . . . . . . . . . 135

9.8 空白のグラフ描画用ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

9.9 これから実行するコマンドを確認するためのウィンドウ . . . . . . . . . . . . . . . . . . . . 135

9.10 plot2dの例題で描画されたグラフ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

9.11 Scilabのヘルプ画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

9.12 三角関数のマニュアルを探そうとしているところ . . . . . . . . . . . . . . . . . . . . . . . 136

9.13 文字列 cos を含むトピックの一覧が表示されたところ . . . . . . . . . . . . . . . . . . . . . 136

9.14 関数 cos のマニュアルが表示されたところ . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

9.15 項目 Elementary Functions に含まれるトピックの一覧が表示されたところ . . . . . . . . . 137

10.1 コンピュータの名前とドメイン名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Page 14: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xiv

10.2 IPアドレスの読み方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

10.3 サブネットへの分割の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

10.4 ifconfigの出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

10.5 pingの出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

10.6 コマンド nslookup の実行結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

10.7 telnet でログインに成功したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

11.1 Netscape起動直後にあらわれるウィンドウ (1) . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.2 Netscape起動直後にあらわれるウィンドウ (2) . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.3 Netscapeの利用許諾条件表示画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.4 Netscapeの起動画面 (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.5 Netscapeの起動画面 (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.6 総合情報処理センターのWebページ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11.7 琉球大学の総合Webページ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11.8 Netscapeの「ファイル」メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11.9 NetscapeでWebページやファイルなどを指定するためのウィンドウ . . . . . . . . . . . . 162

11.10Netscapeのファイル選択ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.11最近閲覧した URLなどの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.12Netscapeの印刷ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

11.13Netscapeのブックマーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.14Netscapeのブックマーク編集画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.15「編集」メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.16総合情報処理センターのWebページ (w3mによる表示) . . . . . . . . . . . . . . . . . . . . 166

11.17琉球大学の総合Webページ (w3mによる表示 (1)) . . . . . . . . . . . . . . . . . . . . . . . 167

11.18琉球大学の総合Webページ (w3mによる表示 (2)) . . . . . . . . . . . . . . . . . . . . . . . 167

12.1 シェルスクリプトの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

12.2 ファイル .cshrcの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.3 利用可能な色一覧の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

12.4 fvwm2の再起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

12.5 .fvwm2rcで xfishtankなどを起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

12.6 ファイル welcome.pl の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

12.7 welcome.plを実行したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

12.8 配列とハッシュの違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

12.9 ファイル if.pl の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

12.10ファイル while.pl の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

12.11ファイル for.plの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

12.12ファイル foreach.plの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

12.13ファイル word-count.pl の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

13.1 LATEXによる処理の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

13.2 ソースプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

13.3 LATEXで処理した結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

13.4 環境の例 (箇条書き), ソースプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

13.5 環境の例 (箇条書き), 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

13.6 相互参照を多用したソースプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

13.7 相互参照の処理結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

13.8 PostScriptファイルを取り込んだ LATEXのソースコードの例 . . . . . . . . . . . . . . . . . 206

14.1 遠隔端末で Tgif を起動しようとして失敗している例 . . . . . . . . . . . . . . . . . . . . . 207

14.2 コマンド xhost により ed01からのアクセスを許可した例 . . . . . . . . . . . . . . . . . . . 208

Page 15: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xv

14.3 ウィンドウの上下 2分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

14.4 下半分のウィンドウの左右 2分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

14.5 Muleでバッファの一覧を表示しているところ . . . . . . . . . . . . . . . . . . . . . . . . . 212

14.6 diredモードを起動したところ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

14.7 Octaveの起動画面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

14.8 ファイル sample.m の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Page 16: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 17: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xvii

表 目 次

1.1 電気電子工学科の端末室開放時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2.1 ディレクトリの標記の仕方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 第 2週目に学んだコマンドの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1 コマンドライン編集およびヒストリ機能一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2 今週取り上げるコマンドの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1 Ctrl キーとメタキーを使うときの表記法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.2 カーソルの移動と文字の消去 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3 ファイル操作など . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.4 かんなの基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.5 印刷関連のコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.1 コンピュータを使った情報伝達の手段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2 メールアドレスの記法 (例) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.3 mailコマンドを実行中に有効なコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.4 rmailの主要なコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.1 mnewsの主要なコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.2 琉大で講読しているニュースグループのトップカテゴリの例 . . . . . . . . . . . . . . . . . 59

6.3 mnews初期画面の角括弧の中の記号の意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.1 今回の講義で学ぶコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.2 コマンド ps のよく使われるオプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.3 プロセスの強制終了と一時的中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

7.4 コマンド tar の代表的な使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.5 コマンド tar を使ったフロッピーディスクとのデータのやりとり . . . . . . . . . . . . . . . 87

7.6 Windows9X/Me/NT/2000 フォーマットのフロッピーディスクを操作するためのコマンド . 87

7.7 ファイルの圧縮と展開のためのコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

8.1 今回の講義で学ぶツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.2 xwdの使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

8.3 画像データの形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

8.4 Tgifで利用可能な日本語フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.5 文節の操作の仕方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.6 文節の操作の仕方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8.7 gnuplotにおけるキー入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

9.1 MuPADのコマンドライン編集およびヒストリ機能 . . . . . . . . . . . . . . . . . . . . . . 121

9.2 MuPADの数学演算子と定数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

9.3 数学関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

9.4 Scilabのマニュアル閲覧中の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

9.5 Scilabのコマンド行編集機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9.6 Scilabの演算子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Page 18: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

xviii

9.7 Scilabの定数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

12.1 代表的な環境設定ファイルとディレクトリ . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.2 プロンプトにおける代表的な特殊記号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

12.3 Perlの演算子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

12.4 printfにおける書式指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

13.1 題目や著者などの宣言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

13.2 LATEXの代表的な環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

13.3 AUC TEXの基本的なコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

13.4 C-c C-rなどの後で指定する文字列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

13.5 ごく簡単な数式の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

14.1 Muleのウィンドウ操作コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

14.2 Muleのバッファ操作コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

14.3 Muleのフレーム操作コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

14.4 diredモードのコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

14.5 Octaveのコマンド行編集機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

14.6 Octaveの演算子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

14.7 Octaveの定数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

14.8 Octaveの代表的な数学関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

Page 19: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

1

第1章 コンピュータの使い方

この講義では, みなさんに, コンピュータの使い方についてチュートリアル形式で勉強してもらいます.

これからの講義ではいろいろなコマンドやプログラムの使い方を紹介をしてゆくのですが, 講義時間内に

これらの各々について詳細な説明をするのは時間的に無理ですし, 講義資料にこれらすべての説明を載せる

のも不可能です. これを補うために参考書を紹介してあります.

この講義の第 1回では, 電気電子工学科のコンピュータを使うための手順を説明します.

電気電子工学科では, 1年生の講義ではおもに工学部 3号館 3階の 305号室を使います. 3階の 305号室

には, ノートパソコンがあります. この部屋にはふだんは鍵かかかっていて, 講義のときだけ入室できます.

一方, 3号館 2階の 205号室にはデスクトップパソコンがあります. この部屋は, 授業期間には, 平日の午前

9時から午後 8時まで常時開放されています (ただし, 講義で使う時間帯のみ入室制限されることがありま

す). また, 休業期間 (夏休み等)や休講日には, 平日の午前 9時から午後 5時まで開放されています. 端末室

の開放時間を表にしてまとめておきましょう.

表 1.1: 電気電子工学科の端末室開放時間

3号館 2階 205号室

平日 (授業期間) 9:00–20:00

平日 (休業期間, 休講日) 9:00–20:00

土日, 祝祭日 閉室

3号館 3階 305号室

講義のときのみ開室

コンピュータの使い方は, 2階と 3階でおおむね同じなのですが, パソコンを使い始めるときとパソコン

の利用を終了するときの手順だけ少し違います. 具体的にどこが違うかというと,

2階のデスクトップパソコン 電源は入れっぱなし; 利用者はコンピュータ本体の電源スイッチとリセット

ボタンに触ってはいけない; 利用者は, 使いたいときにはディスプレイのスイッチを入れ, 使い終った

らディスプレイのスイッチを切る;

3階のノートパソコン 利用者が自分で電源を入れたり切ったりする

というところが違います.

2階のデスクトップパソコンを使うときは, 以下の「電源の投入」と「電源の遮断」の節は無視して下さい.

また, 3階のノートパソコンにはもともとマウスの代わりにトラックボールが付いていたのですが, あまり

使いやすくないので, ボタンが 3個付いたマウスを追加して取り付けてあります. このためにトラックボー

ルが使えなくなっているので注意して下さい. 使えるのはマウスだけです.

ボタンが 2個しかないボタンでは, マウスの左右のボタンを同時に押すことで中央のボタンを押す操作を

代用することになっています.

1.1 電源の投入

[警告]2階のデスクトップパソコンを使うときにはこの節は無視して下さい.

まず, ノートパソコンのふたを空けましょう. ノートパソコンは, 図 1.1のような状態で机の上に置かれて

います. 図で「ディスプレイ開閉スイッチ」と書いてある部分を右にスライドさせて, 次に液晶ディスプレ

イが付いている部分を開いて下さい.

Page 20: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

2 第 1章 コンピュータの使い方

ディスプレイ開閉スイッチ

図 1.1: ノートパソコン (ふたが閉じられた状態)

電源スイッチ

図 1.2: ノートパソコン (ふたが開いた状態)

ふたが開くと, ノートパソコンは図 1.2のような状態になります. ここで, 図 1.2の電源スイッチを手前に

スライドさせると, ノートパソコンの電源が入ります. 電源スイッチの近くには, ネットワークとノートパ

ソコンを接続しているケーブルの端子や電源ケーブルがあります. これらを抜いてしまうと, ノートパソコ

ンが正常に起動しなくなります. 気を付けて下さい.

電源が入ると, コンピュータの起動の準備が始まります. しばらく, 何もしないで待っていて下さい.

1.2 キーボード, マウス

パソコンには, 人間とデータのやり取りをするために, ディスプレイ, スピーカ, キーボード, マウスなど

の部品がついています.

1.2.1 キーボード

このノートパソコンには「日本語 106キーボード」と呼ばれるキーボードが取り付けられています. 図

1.3にキーボードの図を示します. パソコンをうまく使えるようになるためには, キーボードの配置を覚え

て, キーボードを見ないで画面だけを見て文字を入力できるようになることが絶対に必要です. このキー

ボードの配置は覚えて下さい.

キーボードの表面に印字されている文字が, そのキーを押すとコンピュータに入力される文字です. ただ

し, みなさんが使っている環境では, ひらがなの部分は意味を持ちません.

キーボードに配置されているキーには

• 単独で意味を持つもの

• 他のキーと同時に押されて初めて意味を持つもの

• 特別な機能を持つもの

の 3種類があります.

英文字が印字されたキーは, 英文字を入力するためのものです. ふつうは小文字が入力されますが, キー

ボードの右下と左下にある�� ��Shift というキーと同時に押すと大文字が入力されます.

空白を入力するには�� ��Space キーを押します. このキーは, キーボードの中央下段にあります. キートップ

には何の文字も刻印されていないので注意して下さい.

Page 21: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

1.2. キーボード, マウス 3

CV

BN

M< ,

> .? /

_ \

QW

ET

YU

IO

PR

AS

DF

GH

JK

L+ ;

* :} [

{ [た

てい

すか

んな

にら

せ。

ちと

しは

きく

まの

りれ

けむ

さそ

ひこ

みも

ねる

めろ

‘ @

! 1" 2

# 3$ 4

% 5& 6

’ 7( 8

) 9~ 0

= -- ^

| ¥ぬ

ふあ

うえ

おや

ゆよ

わほ

へ-

無変換

前変換

変換(次候補)カタカナ

ひらがな

、。

¢

£々

ぁぅ

ぇぉ

ゃゅ

ょを

ぃ『

』ヶ

半角

全角

ZX

Ctrl

Alt

Alt

Fn

Ctrl Ctrl

Caps Lock

Tab

PgDn

PgUp

BackSpace

英数

Shift

Shift

Enter

Esc

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

Num

Lock

Print

Scrn

Ins

Del

Suspend

Setup

Status

Reverse

Fone

CRT/LCD

左ボタン

右ボタン

トラックボール

スペースキー

図 1.3: ノートパソコンのキーボード

Page 22: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4 第 1章 コンピュータの使い方

キーボードの上端にならんでいる�� ��1 ,

�� ��2 ,...�� ��9 ,

�� ��0 と書かれたキー を押すと, 対応する数字が入力され

ます. また,�� ��Shift キーと同時にこれらのキーを押すと, 「!」, 「"」などの記号が入力されます. ひとつの

キーを 2個の文字が共用しているわけです.

キーボード左下と右下の�� ��Ctrl というキーは他のキーと同時に押した場合のみ意味を持ちますが, まだ使

わないので説明を省略します. キーボード左上の�� ��Esc というキーの使い方も特殊なのですが, これについ

てもまだ説明しません. さらに, キーボード左下と右下にある�� ��Alt というキーの使い方も

�� ��Ctrl キーや�� ��Esc

キーと似ていますが, ここでは説明しません.

キーボード左端の�� ��a キーの隣にある

�� ��Caps Lock というキーを押すと, 入力される英文字が大文字に固定

されます. もう 1回押すともとに戻ります. その上の�� ��Tab というキーはエディタなどでファイルを編集し

ているときに大き目の空白を入力するためのものです. 今は使いません.

キーボード右端にある�� ��Enter←↩ という大きいキーは入力を確定したり改行したりするためのものです.

その右上の小さい�� ��BackSpace というキーは誤入力を訂正するために使われます.�� ��BackSpace キーの左に

�� ��¥ と書かれたキーがあります. このキーには注意が必要です. 実は, コンピュー

タは日本語を入力したいときと英語を入力したいときで混乱が生じないよう設計されているのですが, この�� ��¥ というキーについては, 日本語の文字「¥」と英語の文字「\」(バックスラッシュと読みます) が衝突

してしまっています. さらに悪いことに, コンピュータでは文字「\」をかなりよく使います. 「¥」と「\」

は (だいたい)同じ, ということを記憶しておいて下さい.

同様の例が他にいくつかあります. 例えば記号「~」は波線で表示されることが多いのですが, みなさん

のキーボード (�� ��¥ キーの左)にはまっすぐな線が刻印されています. 記号「~」もかなりよく使われます.

キーボードの右下に矢印が書かれたキーが 4個あります (�� ��← ,

�� ��→ ,�� ��↑ ,

�� ��↓ ). これらはカーソルキーと

呼ばれ, 移動用として使われます.

1.2.2 トラックボールとマウス

図 1.3でキーボードの下にある球がトラックボール, トラックボールの左右にあるのがマウスのボタンで

す. マウスを追加したためにトラックボールは使えなくなっているのですが, 本来はトラックボールを回す

とマウスカーソルが移動します. 現在は, 追加してあるマウスを移動させると, マウスカーソルが移動しま

す. 図 1.4にマウスの図を示しておきます.

左ボタン

中央ボタン

右ボタン

図 1.4: マウス

1.3 ログイン

ノートパソコンは正常に起動したでしょうか? 正常に起動できた場合は, しばらく待っていると, ノート

パソコンの画面に

login: (1.1)

Page 23: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

1.4. ログインに成功すると 5

という文字が表示されます. この という記号はプロンプトと呼ばれ, コンピュータがあなたの入力を待っ

ていることを示します.

この状態では, まだみなさんはコンピュータを使うことができません. コンピュータが利用できるように

するためには, みなさんがそのコンピュータの正規の利用者であることをコンピュータに認識させることと,

コンピュータにみなさんがこれから作業をするための環境を整させることが必要になります. このための手

続をログインといいます.

ログインのためにあなたがやるべきことは, コンピュータがあなたを認識するための名前 (ログイン名) お

よび対応するパスワード (合い言葉)を入力することです. みなさんには, すでにログイン名とパスワードお

よび注意事項が記述された紙が行き渡っていると思います.

キーボードを使って, あなたのログイン名 (ここでは, 仮に d99999としておきます) を入力して, Enter

キーを押して下さい. 画面は以下のようになります.

login: d99999 (1.2)

passwd:

続いて, パスワードを入力して下さい. あなたのパスワードは, 講義の最初の日に担当教官から通達されま

す. ここで注意してほしいのは, 入力したパスワードは画面に表示されないということです. ですから, パス

ワードがきちんと入力されているかどうかは, 画面を見てもまったくわかりません. ですから, 画面の様子

は気にせずに, とにかくパスワードを入力して, Enter キーを押して下さい. パスワードが正しければ, 次の

段階に進めます. パスワードが間違っていた場合は最初の画面に戻ってしまいます (それ以上悪いことはあ

りません).

1.4 ログインに成功すると

ログインがうまくいくと, 画面は図 1.5のような状態になります. この状態で, すでに X Window System

図 1.5: ログイン直後の画面の様子

という名前のプログラムが起動しています. 画面の大部分を占めるウィンドウは kterm といいます. kterm

は仮想端末と呼ばれるものの一種であり, みなさんからはこのウィンドウが 1台のコンピュータであるかの

ように見えます. みなさんは, これから多くの仕事を kterm の中でおこなうことになります. X Window

System を使っているときは, 画面の中に kterm やその他のウィンドウをたくさん開くことができます.

ここで簡単にマウスの使い方を説明しておきましょう. 画面に矢印の記号が表示されているのがわかるで

しょうか? マウスを動かすと, この矢印の記号 (「マウスカーソル」という名前がついています) が画面を

動きます. マウスカーソルがウィンドウの中に入っているときとそうでないときで形が変わります.

Page 24: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6 第 1章 コンピュータの使い方

では, ここで kterm をもう 1個開いてみましょう. このためには, まずマウスの左ボタンを 1回押します.

すると, 図 1.6のようなウィンドウが画面に開きます. 次に, マウスを手前に動かして (マウスカーソルは下

図 1.6: マウスの左ボタンを押した状態

方に移動します), マウスカーソルを「KTerm」という部分に合わせて下さい. マウスカーソルが「KTerm」

という部分に合ったら, マウスの左ボタンをもう 1回押しましょう. すると 2個目の kterm のウィンドウが

開きます.

次に, kterm を終了する方法を説明します. やり方は 3通りあります.

最初の方法は, メニューウィンドウを開く方法です. ktermの画面の左上の部分にマウスカーソルを合わ

せてマウス左ボタンを 1回押して下さい. すると, ktermのウィンドウの左上に図 1.7のようなメニューウィ

ンドウが開きます. ここでマウスを動かして, マウスカーソルを「終了」というところに合わせて下さい.

図 1.7: メニューウィンドウ

マウスカーソルがここに合ったら, マウス左ボタンを 1回押して下さい. すると, kterm のウィンドウが画

面から消えます.

第 2の方法は, マウスカーソルを ktermのウィンドウの中に移動させ, キーボードを使って,

exit�� ��←↩ (1.3)

と入力することです. ここに,�� ��←↩ は「Enter」と書かれたキーを押すことを意味します.

第 3の方法は, マウスの中央のボタンを押すと現れるメニューを使う方法です. これについては, 後で説

明します.

マウス左ボタンのメニューには, サブメニューを持つものもあります. 例えば, マウスの左ボタンを押し

てマウスカーソルを「アプリケーション」というところに合わせ, マウスを右に動かすと, 図 1.8 のように

サブメニューが開きます.

図 1.8: サブメニューが表示されたところ

マウスの中央のボタンを押すと, 図 1.9のような画面が現れます. これは, いくつかのウィンドウが重なっ

ているときにどのウィンドウが上に来るかを制御したり, ウィンドウをアイコン化 (ウィンドウを消し, かわ

Page 25: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

1.5. ログアウト 7

りに画面の端にそのウィンドウに対応する小さい図形を表示)したり, 特定のウィンドウを削除したりする

ためのメニューです. マウスカーソルを 「終了」 のところに合わせてマウス左ボタンを押し, 続いてマウ

スを動かして消したいウィンドウまでマウスカーソルを持って行って, もう 1回マウス左ボタンを押して下

さい. 今マウスカーソルが入っているウィンドウが消えます.

図 1.9: マウスの中央ボタンを押した状態

1.5 ログアウト

コンピュータの利用を終了する手続きのことをログアウトといいます. ここでは, ログアウトの手順につ

いて練習してみることにします.

まずマウスの左ボタンを押してメニューを開いて下さい. 次に, マウスを動かして画面の一番下の「Fvwm

終了」というメニューにマウスカーソルを合わせ, マウスを右に動かして下さい. 図 1.10のようなメニュー

が現れます. ここで再びマウスを動かして「終了」にマウスカーソルを合わせ, マウスの左ボタンを押すと

図 1.10: ログアウト確認ウィンドウ

ログアウトできます.

1.6 電源の遮断

この節では, ノートパソコンの電源を遮断する方法について説明します.

[警告]2階のデスクトップパソコンを使うときにはこの節は無視して下さい.

まず, 編集中のファイルをすべて保存し, 自分で動かしているプログラムをすべて終了させます (この記述

の意味は今はわからなくても構いません). 続いて shutdown というコマンドを実行します. kterm を開き,

/sbin/shutdown␣-p␣now�� ��←↩ (1.4)

とタイプして下さい. ここに,�� ��←↩ は Enter キーを押すことを意味します. すると, すべてのプログラムは

強制終了され, 1分弱待つと勝手に電源が落ちます.

なお,「␣」という記号は空白があること (�� ��Space キーを押す必要があること) を明示するために使われて

います. 「␣」という記号はキーボードにはないので注意して下さい.

Page 26: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8 第 1章 コンピュータの使い方

1.7 タッチタイピングについて

先に述べたように, コンピュータがうまく使えるようになるためには, キーボードを見ないで文字が入力

できるようになること (タッチタイピング)が必要です. これができるようになるためには, キーボードの

文字の配列を覚えなければならないのは当然ですが, それとは別に「指の使い分け」を覚える必要がありま

す. 図 1.11に各指の役割分担を示します. 少し見にくいかもしれませんが, 各指の担当するキーボードには

違う模様が付けてあります. キーボードのキー�� ��f と�� ��j には, 触ったときにわかるような突起がついていま

す. タッチタイピングをするときには, ここを起点にして他の文字をタイプすることになります.

1.8 コンピュータを利用するときの注意事項

ここで, コンピュータを利用するときの一般的な注意事項についていくつか注意しておきます.

パスワードについて ログインするときのパスワードは, あなたの部屋の鍵のようなものです. 絶対他人に

教えてはいけませんし, 忘れてしまってもいけません. また, 安全のためには紙に書いたパスワードを持ち

歩くのもよくありません. 暗記して下さい.

自分のアカウントを他人に使わせないこと あなたのログイン名でコンピュータ上でおこなわれた操作に

対する責任は, あなた自身が負います. 他人にアカウントを使わせて, その人がコンピュータを利用して犯

罪をおこなった場合には, 犯罪に対する責任はあなた自身に降りかかってきます. 絶対に他人にアカウント

を使わせないようにして下さい. 同時に, あなたがあなたのログイン名でおこなった操作に対する全責任は

あなた自身が負うということを心しておいて下さい.

ソフトウェアの不正コピーをしないこと この学科の教育用計算機システムで動いているソフトウェアの

多くはフリーウェアであり, 利用者が (一定の制約の下で)自由に再配布する権利が保証されています. です

が, フリーでないソフトウェアがないわけではありません (例えばWindows95やWindows98が動いている

パソコンもかなりの数ありますし, Windows95やWindows98はフリーウェアではありません). 再配布の

権利が保証されていないソフトウェアを勝手にコピーすることは犯罪です. 当学科ではコンピュータを利用

した犯罪行為は許容しません. ソフトウェアの不正コピーをしないように重ねて警告しておきます.

Page 27: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

1.8. コンピュータを利用するときの注意事項 9

NM

< ,> .

? /_ \

QW

ET

YU

IO

PR

JK

L+ ;

* :} [

{ [

みも

ねる

‘ @

! 1" 2

# 3$ 4

% 5& 6

’ 7( 8

) 9~ 0

= -- ^

| ¥

前変換

変換(次候補)カタカナ

ひらがな

、。

Ctrl

Alt

Ctrl

Caps Lock

Tab

PgDn

PgUp

BackSpace

Shift

Enter

Esc

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

Num

Lock

Print

Scrn

Ins

Del

Suspend

Setup

Status

Reverse

Fone

CRT/LCD

H

CV

B

AS

DF

G

無変換

半角

全角

ZX

Alt

Fn

Ctrl

Shift

図 1.11: タッチタイピングのための各指の役割分担

Page 28: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 29: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

11

第2章 基本コマンド(1)

第 2回目の講義では, まずホームディレクトリという概念について学び, 次にいくつかの基本的なコマン

ドの使い方を覚え, 続いてX Window System の基本的な使い方を学習し, さいごにタッチタイピング (キー

ボードを見ないで画面だけを見て文字を入力すること)を練習します.

今回の講義の内容は, 前回の講義と若干重複します. また, 次回以降の講義で学ぶ予定の内容も少しだけ

出て来ます. 今回の講義は参考書の第 2章と第 4章に対応しています.

電気電子工学科のパソコンでは, UNIX というオペレーティングシステムのひとつの「方言」である,

FreeBSD というオペレーティングシステムが動いています. UNIX 系のオペレーティングシステムには,

FreeBSD以外に, Linux, Solaris などのいろいろな「方言」があり, それぞれ少しずつ違います.

講義の内容に入る前に, 前回やった内容の中で一番重要な, 3階のノートパソコンの終了のしかたを復習

しておきます. 3階のノートパソコンの終了のしかたは,

1. 今動いているプログラムをすべて終了する

2. ktermを開く

3. /sbin/shutdown␣-p␣now�� ��←↩

4. 電源が切れるまで 1分近く待つ

5. ノートパソコンのふたを閉じる

(2.1)

というものです. この手順を 2階のパソコンでやってはいけないということも思い出して下さい. 2階のパ

ソコンの利用を終了するやり方は,

1. マウス左ボタンのメニューから「Fvwm終了」を選ぶ

2. ディスプレイの電源だけを切る; コンピュータ本体の電源には触らない(2.2)

となっています.

前回と同様に,�� ��Enter キーを押すことを�� ��←↩ (2.3)

と書きます.

2.1 ホームディレクトリの概念

UNIXの特徴のひとつに, 「マルチタスク, マルチユーザ機能」というものがあります. このうち「マル

チユーザ」の方について説明しましょう. (「マルチタスク」については次回以降の講義で説明します. )

マルチユーザ機能とは, 1台のパソコンを同時に複数の人が使うための機能のことです. たとえて言うな

らば, マルチユーザ機能があるオペレーティングシステムが動いているパソコンは, 大勢の人が同時に暮ら

しているマンションのようなものです.

あなたがマンションに住んでいるなら, 自分の家に帰るときには, まず自分の部屋の扉のところまで行っ

て, 扉の鍵を空け, 部屋に入るでしょう. この「鍵を空ける」動作に対応するのが, 先週学んだ「パスワード

を入力する」とう動作です. そして, パソコンにおけるマルチユーザ環境にも, マンションのあなた自身の

部屋に対応するものがあります. それがホームディレクトリです.

あなたが電気電子工学科のパソコンに正常にログインできたときは, パソコンがあなたをあなたのホーム

ディレクトリ (自分の部屋)に自動的に案内してくれます.

では, ktermのウィンドウ内で,

Page 30: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12 第 2章 基本コマンド (1)

pwd�� ��←↩ (2.4)

と入力してみて下さい. すると, 画面は図 2.1と似た状態になります. ここで表示された文字列が, あなたの

ホームディレクトリです (人によって違います).

図 2.1: コマンド pwdを入力したときの画面の様子

2.2 コマンド

UNIXが動いているコンピュータの基本的な使い方は,

利用者が, コンピュータにやらせたい命令の名前をキーボードから打ち込んでゆく

というものです. この命令のことを「コマンド」と言います. 「プログラム」という言葉をコマンドと同じ

意味で使うこともあります. 先ほど入力した pwd というコマンドは, 今あなたが作業をしているディレク

トリ (後述) を表示するためのコマンドです. pwdとは, 英語 print working directory の略です.

2.3 ファイルとディレクトリ

コンピュータにおいて文書やプログラム, データなどを取り扱う単位をファイルといいます. 1個のファ

イルとは, たとえて言うならば 1冊の本やノートのようなものです.

コンピュータには, たくさんのファイルが保存されています. 前回の講義で配布した資料のデータの大き

さは, 約 400キロバイトでした. 最近ふつうに売られているハードディスク (コンピュータにデータを保存

するための記憶装置)は, 最低でも 4ギガバイトくらいの容量はあります. (バイトというのはコンピュータ

でデータの大きさを測る単位です). ですから, ふつうに売られているハードディスクには, 前回の講義資料

なら, 10,000個は保存できることになります.

さて, ここで 10,000冊の本が全然整理されていない状態で放置されている図書館を考えてみましょう. そ

して, その中に, あなたが探している本が 1冊だけあるものとします. あなたは欲しい本を探すことができ

るでしょうか?

ファイルが整理されていないコンピュータは, 本が整理されていない図書館のようなものです. 本が整理

されていない図書館と同様に, ファイルが整理されていないコンピュータは, 規模が大きくなるにつれてど

んどん使いにくくなってゆきます. では, どのようにしてコンピュータに保存されているファイルを整理し

たらよいのでしょうか? このために, ディレクトリというものがあります.

ディレクトリとは, たくさんの本をまとめて入れておくことができる本棚のようなものです. さらに, (こ

のへんから日常的な感覚とずれてくるのですが)ディレクトリを,

たくさんの本棚を入れておく「本棚」

たくさんの本棚の「本棚」を入れておく「本棚」

Page 31: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

2.4. ファイルとディレクトリの操作 (1) 13

のように階層的に使うことができます.

ここでもう 1回

pwd�� ��←↩ (2.5)

と入力してみて下さい.

ここで表示される文字列 (「/home/b/y99/d99999」など)には, コンピュータが持っているディレクトリ

の情報が反映されています. この一番最初の文字「/」 が, ディレクトリの階層構造のいちばん根本にあた

ります. この枝分かれの根本のことをルートディレクトリといいます. また, 文字と文字の間の「/ 」は, そ

こにディレクトリの枝分かれがあったことを示します. ですから, 「/home/b/y99/d99999」 というのは,

根本から見て, home というディレクトの中の, b というディレクトリの中の, y99 というディレ

クトリの中の, d99999 という名前のディレクトリ

を表します. 図 2.2にこれらのようすを示します.

当学科では,学籍番号が偶数の人のホームディレクトリは/home/aに,学籍番号が奇数の人のものは/home/b

にあり, それぞれ学年ごとに分類されています.

/ home

a

b

y97

y98

y99

y00

y97

y98

y99

y00

d99002......

d99001......

d99999

d005502

d005504.......

d005501

d005503.......

ルートディレクトリ

図 2.2: ディレクトリの概念

皆さんがこれからコンピュータを使ってゆくと, ホームディレクトリの中のファイルはどんどん増えてゆ

くでしょう. ですから, わけがわからなくならないうちに, ホームディレクトリの中に適当なディレクトリ

を作って, ファイルを整理する習慣を付けるべきです. ディレクトリの作成と削除やファイルの作成と削除

およびディレクトリの間の移動の方法については, 今回および次回の講義で説明します.

2.4 ファイルとディレクトリの操作 (1)

2.4.1 cd と mkdir : ディレクトリの移動と作成

ではまずディレクトリを移動するためのコマンド cd と ディレクトリを作成するコマンド mkdir の練習

をすることにします. なお, cd は change directory の略, mkdir は make directory の略です.

まず ktermを開いて下さい. X Window Systemのメニューから kterm を開いた場合は, 今あなたがいる

ディレクトリ (これをカレントディレクトリと呼びます)は, 自動的にあなたのホームディレクトリになって

います. でも, 念のために, あなたのホームディレクトリに移動するためのコマンドを入力しておきましょう.

cd�� ��←↩ (2.6)

と入力して下さい. これだけで, あなたのホームディレクトリに移動することができます. ここでもう 1回

pwd�� ��←↩ (2.7)

と入力して, 実際にあなたのホームディレクトリに移動できていることを確認しましょう.

さて, ここで, ファイルがぐちゃぐちゃになってしまう前に, 講義などで使うためのディレクトリを作って

おくことにしましょう.

Page 32: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14 第 2章 基本コマンド (1)

mkdir␣lecture�� ��←↩ (2.8)

と入力して下さい. これで, 「lecture」 という名前のディレクトリができます. 次に, このディレクトリに

移動します.

cd␣lecture�� ��←↩ (2.9)

と入力して下さい. 続いて,

pwd�� ��←↩ (2.10)

と入力してみましょう. この段階で, 画面は図 2.3のようになります.

図 2.3: lectureという名前のディレクトリを作ったところ

今使っていた mkdir というコマンドが, ディレクトリを作成するためのコマンドです. このコマンドの名

前は, 「make directory」の略です. 使い方は,

mkdir␣作りたいディレクトリの名前�� ��←↩

です. ただし, 日本語のディレクトリ名は作成できない他, いくつか使えない記号があります. 基本的な方針

として

英文字 (大文字と小文字), ピリオド , 数字, ハイフン「–」, アン

ダースコア「_」だけを使う

ということにしておけば, 問題は生じません.

ディレクトリ移動のためのコマンドは「cd」です. これは, change directory という英語の略です. 先ほ

どやってみたように,

cd�� ��←↩ (2.11)

と入力すると, あなたのホームディレクトリに移動することができます. また,

cd␣lecture�� ��←↩ (2.12)

などのように, コマンド cdのあとに空白を空けて続けてディレクトリ名を入力すると, そのディレクトリに

移動することができます.

では, さっそくコマンド cd のいろいろな使い方を試してみましょう. まず pwdコマンドを使って現在の

ディレクトリを確認しておいて下さい. 次に,

cd�� ��←↩ (2.13)

と入力し, 続いて

cd␣./lecture�� ��←↩ (2.14)

Page 33: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

2.4. ファイルとディレクトリの操作 (1) 15

と入力して下さい. 先ほどと同様にディレクトリ lectureに戻って来ることができたでしょう. 実は, (2.2.4.1)

と (2.2.4.1)の意味は同じです.

これとは別に,

cd␣/home/b/y99/d99999/lecture�� ��←↩ (2.15)

としても, 今作成したディレクトリに戻って来ることができます. ただし, (2.2.4.1) の場合は, 上の例で

「b/y99/d99999」となっている部分をあなたのホームディレクトリに対応する文字列で置き換える必要があ

ります.

(2.2.4.1)や (2. 2.4.1)のようなディレクトリの指定の仕方を「相対パス」, (2.2.4.1)のようなディレクト

リの指定の仕方を「絶対パス」といいます. パスという言葉は英語の path (道筋) から来ています. ディレ

クトリを複雑に分岐した道路のようなものだと考えれば, パスという言葉は「通るべき道筋をあらわす」も

のとして理解できるでしょう.

この節を終わるにあたって, 3個新しい記号の説明をしておきます. まず, 記号「~」(波線の記号, 上付き

の横棒 で表示されることもある)はあなたのホームディレクトリをあらわします. だから,

cd␣~/lecture�� ��←↩ (2.16)

と入力すると, あなたのホームディレクトリの下の lecture というディレクトリに移動できます. また, 記号

「.」は現在作業中のディレクトリをあらわし, 記号「..」はそのディレクトリの 1個根本のディレクトリを

あらわします.

表 2.1にこれらについてまとめておきます. これらを覚えないと, 今後の講義に重大な支障を来します. 確

実に記憶して下さい.

表 2.1: ディレクトリの標記の仕方相対パス 現在作業中のディレクトリから見た相対的な位置関係

絶対パス ルートディレクトリから見た絶対的な位置関係

~ あなたのホームディレクトリ

. 現在作業中のディレクトリ

.. 現在作業中のディレクトリの 1個根本のディレクトリ

2.4.2 ls : ディレクトリにあるファイルの一覧を見る

続いて, あるディレクトリにあるファイルの一覧を見るためのコマンドを紹介しておきましょう. このた

めのコマンドが ls です. lsとは英単語 list の略です.

コマンド lsの説明に入る前に, まず

cd�� ��←↩ (2.17)

と入力してあなたのホームディレクトリに移動しておきましょう.

では,

ls�� ��←↩ (2.18)

と入力して下さい. 画面は図 2.4のようになります. ここに表示されているのが, あなたのディレクトリに

あるファイルの一覧です. ですが, ここに表示されているファイルがすべてではありませんこれ以外に「隠

しファイル」と呼ばれる (2.4.2)の方法では表示されないファイルがあります. 隠しファイルを含むファイ

ル一覧を見る方法は次回の講義で説明します. ただし, 以下のファイルの内容を見る例題では, この隠しファ

イルの中身を読んでみます. ですから, 「このディレクトリには, 今は表示されていないけれども, .login

というファイルと.fvwm2rc というファイルがある」ということを把握しておいて下さい.

Page 34: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

16 第 2章 基本コマンド (1)

2.4.3 cat : ファイルの中身を見る

次に, ファイルの中身を見る方法を説明します.

cat␣.login�� ��←↩ (2.19)

と入力して下さい. すると, 画面に図 2.5のように.loginという名前のファイルの中身が表示されます.

この catというコマンドが,ファイルの中身を表示するためのコマンドです. これは,英単語 concatenation

の略です. 実は, concatenation という単語のはファイルを表示するという意味ではなく, いくつかのものを

繋げるという意味です.

図 2.4: コマンド lsを入力したところ 図 2.5: コマンド catによってファイルの中身が表

示されたところ

catの機能を強化した jless というコマンドもあります.

jless␣.fvwm2rc�� ��←↩ (2.20)

と入力してみて下さい. 画面は図 2.6のようになります. ここで,

図 2.6: コマンド jlessを使っているところ

�� ��Ctrl +�� ��n (2.21)

(�� ��Ctrl キーを押しながら

�� ��n キーを押す)と入力して下さい. 画面が 1行ずつ先に進んでゆくのがわかるで

しょう. また,�� ��Ctrl +�� ��p (2.22)

(�� ��Ctrl キーを押しながら

�� ��p キーを押す)と入力すると 1行ずつ前の行へ戻ってゆくことができます. カー

ソル上下キー (キーボードの右下にある矢印のついたキー) を使っても同じ操作ができます. コマンド jless

を終了するには,�� ��q キーを 1回押します.

jlessというコマンド名の由来は, まず cat の機能を強化したmore というコマンドができて, それが機能

強化されたものがmore の次だからということで less という名前になり, それが日本語化されて頭に j が付

いた, というものです. (日本語化されていない less というコマンドも使えます).

jlessにはこれ以外の機能もあるのですが, これについては次回以降で機会があれば説明します.

Page 35: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

2.5. タッチタイピングの練習 17

2.4.4 rmdir : ディレクトリを消す

ディレクトリを消すには, rmdir というコマンドを使います. rmdirは remove directory の略です. ディ

レクトリの消し方を学ぶために 1個ディレクトリを作ってみることにします.

cd␣~/lecture�� ��←↩

mkdir␣test�� ��←↩ (2.23)

ls�� ��←↩

と入力して下さい. test という名前のディレクトリができていることが確認できるでしょう. 次に,

rmdir␣test�� ��←↩

ls�� ��←↩ (2.24)

と入力してみて, test というディレクトリが消えていることを確認して下さい.

2.5 タッチタイピングの練習

今回の講義では, 最後にタッチタイピングの練習をすることにします. この講義では, このために trrとい

うプログラムを使います. trrは, Muleというエディタ (次回以降の講義で紹介します)の上で動作します.

ではさっそく trr を動かしてみましょう.

まず, タイピングのための正しい指使いの図を開いて下さい (図 1.11). 先週も述べたように, タイピング

が上達するためには, まず正しい指使いを覚えることが絶対に必要です. この絵をよく覚えておいて下さい.

次に, マウス左ボタンを押してメニューを開き, Muleを起動して下さい. Muleはメニューの上から 4番

目にあります. Muleが起動すると, 図 2.7のような画面が開きます.

では trrを起動しましょう. カーソルをMuleのウィンドウの中に移動させて,�� ��ESC キーを一回押して

から離し,�� ��x キーを押し, 続いて trr

�� ��←↩ と入力して下さい. すると, 図 2.8のような画面があらわれます.

ここでさらに,�� ��1 というキー (数字が書かれているキーの一番左)を押してから

�� ��Enter キーを押して下さ

い. すると画面は図 2.9のようになります. あとは, 画面に表示された通りの文字をキーボードから打ち来

んでゆくだけです. 打ち込むべき文章は, 日本国憲法の英語版です. ここで, 1箇所だけ注意が必要なところ

があります. ^M という文字です. これは,�� ��Ctrl キーを押しながら

�� ��m キーを押すことを意味するのです

が,�� ��Enter キーを押しても同じ効果があります.

1画面分の文字を入力し終わると, 画面には, 図 2.10のように, あなたの得点が表示されます.

今日は, 授業終了まで, 時間の許す限り, trrの練習に励んで下さい.

trrを途中で終了するには, まず�� ��Ctrl +�� ��c (2.25)

と入力して下さい. ここに,�� ��Ctrl +

�� ��c とは,�� ��Ctrl キーと

�� ��c キーを同時に押すという意味です. すると,

図 2.10の画面が現れます. ここで

1�� ��←↩y (2.26)

と入力すると, 画面の下の方に「また会う日まで....」というメッセージが出て, trrは終了します.

次に, Muleの終了の仕方を説明します.

一番簡単な方法は, Muleのウィンドウの中で,�� ��Ctrl +�� ��x

�� ��Ctrl +�� ��c (2.27)

とすることです. ここに, 上の記号は, 「まず�� ��Ctrl キーを押しながら

�� ��x キーを押し, 続いて�� ��Ctrl キー

を押しながら�� ��c キーを押す」ということです. なお,

�� ��Ctrl +�� ��x と

�� ��Ctrl +�� ��c のあいだに空白があいてい

ますが, これは見やすくするために入れたものであって, 実際には空白を入れてはいけなせん (スペースキー

は押さない).

Page 36: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

18 第 2章 基本コマンド (1)

図 2.7: Muleを起動したところ 図 2.8: trrの起動 (その 1)

図 2.9: trrの起動 (その 2) 図 2.10: trrの成績判定画面

Muleのメニューから終了を選ぶという方法もあります. このためには, Muleのウィンドウの上の「Files」

というところにマウスカーソルを合わせてマウス左ボタンを押し, マウス左ボタンを押したままマウスを移

動させて (これを「ドラッグする」といいます), 四角い枠で囲まれた部分を一番下の

Exit Emacs (C-x C-c) (2.28)

というところに合わせ, マウス左ボタンを離します. マウス左ボタンを押しているあいだは, 図 2.11のよう

なメニューが表示されます.

図 2.11: Muleの Files メニュー

これ以外に, 先週やった ktermの終了の方法と同様に, Muleの画面の左上の箱のような印がついたとこ

ろでマウスの左ボタンを押すという方法もあります. ですが, 最後のやり方はお薦めしません.

最後に, 今日学んだコマンドの一覧を表 2.2にまとめておきます. これらのコマンドのもう少し細かい使

い方は, 次回以降の講義で学んでゆきます. なお, これらのコマンドは確実に試験に出します. 覚えて下さい.

これとは別に, ディレクトリの指定の仕方に関する規則:

• ディレクトリの指定の仕方には

相対パス: たとえば./lecture

絶対パス: たとえば/home/b/y99/d99999/lecture

Page 37: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

2.5. タッチタイピングの練習 19

表 2.2: 第 2週目に学んだコマンドの一覧コマンド 意味 (英語) 意味 (日本語)

cd change directory ディレクトリの変更

pwd print working directory 現在のディレクトリを表示

mkdir make directory ディレクトリの作成

rmdir remove directory ディレクトリの削除

ls list ファイルの一覧の表示

cat concatenation ファイルの中身を表示

jless ファイルの中身を表示

の 2種類がある

• 記号「~」はあなたのホームディレクトリをあらわす

• 記号「.」は現在のディレクトリをあらわす

• 記号「..」は現在のディレクトリのひとつ根本のディレクトリをあらわす

も確実に記憶するようにして下さい.

Page 38: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 39: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

21

第3章 基本コマンド(2)

第 3回目の講義では, 第 2回目にひきつづき, 基本的なコマンドの使い方を学びます. 先週と同様に, 記号

「␣」によって空白文字 (スペース)をあらわします. 「␣」などというキーはキーボードにはありません. 探

さないようにしましょう.

3.1 コマンドライン編集, ヒストリ機能, 補完

みなさんが使っている環境では, コンピュータとのデータのやりとりをするために, csh というプログラ

ムが動いています. そして, この csh には, コマンド名の一部を入力すると自動的に残りの部分を推測して

くれる機能 (補完機能)と, 過去に実行したコマンドを呼び出すことができる機能 (ヒストリ機能), コマンド

行で編集をおこなう機能 (コマンドライン編集機能)が用意されています. 今週は, まず, この機能の使い方

を学ぶことにしましょう.

説明に入る前に, 記号の定義をしておきます. 今後は,

C-f (3.1)

と書いたら,�� ��Ctrl キーを押しながら

�� ��f キーを押すことを意味します. C-bや C-pおよび C-nなども同様に,�� ��Ctrl キーとこれらの文字キーを同時に押すことを意味します. このような記法を採用する理由は, (3.1)の

ような記法がMuleでは標準的であり, Muleはみなさんがこれからもっとも良く使うであろうプログラムで

あるからです. ただし, 今まで使ってきた�� ��Ctrl +�� ��f

という記法も必要に応じて使うことにします.

では, 本題に入ります. まず kterm を開いて,

ls�� ��←↩ (3.2)

と入力して下さい. 続いて, ktermのウィンドウの中で,

C-p (3.3)

と入力するか, あるいはキーボードの右下にある�� ��↑ キーを押して下さい. すると, さっき入力したのと同じ

文字列が画面に表示されます. そして, カーソル (黒い長方形)が行末に描かれています. ここで,

C-b (3.4)

と入力してみましょう. あるいはキーボードの右下にある�� ��← キーでもよいです. カーソルが 1文字分前に

戻ったのがわかるでしょうか?

C-f (3.5)

と入力すると, 逆にカーソルが 1文字分先に進みます. キーボードの右下にある�� ��→ キーの効果も同様です.

C-n (3.6)

と入力するか, あるいはキーボードの右下にある�� ��↓ キーを押すと, 1個後に実行したコマンドを呼び出すこ

とができます.

さらに, 適当なアルファベットキーを押すと, 押したキーと同じ文字がカーソルの位置に挿入されます.

間違いを訂正したいときには,

Page 40: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

22 第 3章 基本コマンド (2)

C-d (3.7)

と入力すると, カーソル位置の文字が消えます.

また,

C-h (3.8)

と入力するか,�� ��BackSpace キーを押すと, カーソル位置の文字が消えます.

コマンド行の編集が終わったら�� ��Enter キーを押しましょう. すると, 修正後のコマンドが実行されます.

まだ間違いがあったら, もう 1回 C-pを押してコマンド行を編集し直しましょう.

コマンドライン編集およびヒストリの機能をまとめると, 表 3.1のようになります. p は previous(以前

表 3.1: コマンドライン編集およびヒストリ機能一覧

操作 意味 効果

C-p�� ��Ctrl +

�� ��p 1個前に実行されたコマンドを表示

C-n�� ��Ctrl +

�� ��n 1個後に実行されたコマンドを表示

C-f�� ��Ctrl +

�� ��f 1文字分前に移動

C-b�� ��Ctrl +

�� ��b 1文字分うしろに移動

C-a�� ��Ctrl +

�� ��a 行頭に移動

C-e�� ��Ctrl +

�� ��e 行末に移動

C-d�� ��Ctrl +

�� ��d カーソル位置の文字を消す

C-h�� ��Ctrl +

�� ��h カーソル位置の 1個前文字を消す

の), n は next(次の), f は forward(前進), b は backward(後退)の略です.

次に, 補完機能について説明します. 補完機能というのは, あるコマンドの最初のいくつかの文字列を入

力した段階で, 残りの文字列をコンピュータに推定してもらう機能のことです. では使ってみましょう.

まず,

cd�� ��←↩ (3.9)

と入力し, 続いて

cd␣l (3.10)

と入力したところで入力を止めて下さい. 次に, 以下のいずれかの操作をおこなって下さい (どちらも効果

は同じです).

•�� ��Tab キーを 1回押す

•�� ��ESC キーを 2回続す

すると, 画面に

cd␣lecture/ (3.11)

という文字列が表示されたはずです. ここで�� ��Enter キーを押すと, cd lectureが実行できます.

3.2 ファイルとディレクトリの操作 (2)

まず最初にコマンドのオプションという概念について説明しておきます.

コマンドのオプションとは, コマンドの機能を切り換えるためのスイッチのようなものです. エアコンの冷

房と暖房の切り換えスイッチのようなもの, と考えればよいでしょう. 典型的なオプションの指定の仕方は,

Page 41: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

3.2. ファイルとディレクトリの操作 (2) 23

コマンド名の後に空白を空け, 続いてハイフン (マイナス記号, 「-」) の後に英文字や英単語を

1個かまたはそれ以上並べて書く

というものです.ただし, オプションの指定にハイフンを必要としないコマンドもあります.

この節では, 先週学んだいくつかのコマンドについて, 代表的なオプションの使い方も含めて学び, さらに

新しいコマンドに関する知識を追加することにします.

まず, 先週取り上げたコマンドと今回の講義で取り上げるコマンドの一覧を表 3.2にまとめておきます.

記号 †が付いているコマンドは今回初めて取り上げるものです.

表 3.2: 今週取り上げるコマンドの一覧コマンド 意味 (英語) 意味 (日本語)

cd change directory ディレクトリの変更

pwd print working directory 現在のディレクトリを表示

mkdir make directory ディレクトリの作成

rmdir remove directory ディレクトリの削除

ls list ファイルの一覧の表示

cat concatenation ファイルの中身を表示

jless ファイルの中身を表示

touch † 新しい空のファイルを作る

rm † remove ファイルを消す

mv † move ファイルの名前を変える

ファイルをほかのディレクトリに写す

chmod † change mode ファイルの保護モードを変更する

jman † コマンドのマニュアルを見る

3.2.1 cat, jless: ファイルを読む

これについては, 初心者に有用なオプションはありません.

cat␣ファイル名

jless␣ファイル名

という使い方と,

jlessから抜けるには qを 1回押す

ということだけ思い出して下さい.

3.2.2 lsのオプション

あるディレクトリにあるファイルの一覧を表示するためのコマンド lsには, たくさんのオプションがあり

ます. このうちよく使われるのが

a 隠しファイル (最初の文字が「.」のファイル)も含めて表示

l ファイルの詳細な情報を表示

F ディレクトリの後に/を付けてファイルと区別できるようにする

の 3種類です. これらをまとめて指示することもできます. 以下の 4種類のコマンドを試してみて下さい.

ls␣-a�� ��←↩

ls␣-l�� ��←↩ (3.12)

ls␣-F�� ��←↩

ls␣-laF�� ��←↩

ls␣-lで表示される情報の意味については chmod のところで説明します.

Page 42: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

24 第 3章 基本コマンド (2)

3.2.3 touch: 新しいファイルを作る

まず, 一連の作業を始める準備として, この講義用のディレクトリに移動しておきます.

cd␣~/lecture/�� ��←↩ (3.13)

では, 新しい (空の)ファイルを作るコマンドについて説明しましょう. このためのコマンドが touch で

す. さっそく使ってみましょう.

touch␣aaa�� ��←↩ (3.14)

これにより, aaaという名前のファイルが作成されます. 早速

ls�� ��←↩ (3.15)

と入力して, ファイルができていることを確認して下さい.

3.2.4 rm: ファイルを消す

ファイルを消すには, rmというコマンドを使います. rmは英単語 remove (消す)の略です. 使い方は

rm␣消したいファイルの名前�� ��←↩

とするだけです. では使ってみましょう.

rm␣aaa�� ��←↩ (3.16)

と入力してみましょう. 次に,

ls�� ��←↩ (3.17)

と入力して, aaaというファイルが消えていることを確認して下さい.

コマンド rmにも, コマンド lsと同様に, いろいろなオプションがあります. よく使われるオプションは,

r 入れ子になったディレクトリなどを全部消す

です. また, コマンド rmは, * という記号との組み合わせで使われることも多いです. この記号は「ワイル

ドカード」と呼ばれ, 任意の文字が任意個数並んだ文字列をあらわすことができます. たとえば,

rm␣*.*�� ��←↩ (3.18)

と入力すると, a.txt や b.dat などのような名前のファイルを一括して消すことができます.

3.2.5 cp: ファイルを複写する

ファイルを複写するには, ‘コマンド cp を使います. このコマンドの意味は英単語 copy(複写)の略です.

使い方は

cp␣オリジナルのファイル名␣複写先のファイル名�� ��←↩ (3.19)

と入力するだけです. では使ってみましょう. 以下の操作をして下さい.

touch␣bbb (3.20)

ls␣-laF�� ��←↩

cp␣bbb␣ccc�� ��←↩

ls␣-laF�� ��←↩

結果は図 3.1のようになります. 2回目にコマンド lsを実行すると, 1回目にコマンド lsを実行したときに

は存在しなかった ccc という名前のファイルができていることがわかります.

コマンド cp にも, いくつかオプションがあります. よく使われるものは,

r 入れ子になったディレクトリなどをまるごとコピーする

です. なお, コマンド rmと同様に, ワイルドカード * が使えます.

Page 43: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

3.2. ファイルとディレクトリの操作 (2) 25

図 3.1: コマンド cpを実行したところ

3.2.6 mv: ファイルの名前を変える

ファイルの名前を変えるのは, コマンド mv を使います. mvの意味は, 英単語 move (動かす)の略です.

使い方は,

mv␣今のファイルの名前␣ファイルの新しい名前�� ��←↩ (3.21)

です. では使ってみましょう.

mv␣ccc␣eee�� ��←↩

ls␣-laF�� ��←↩

結果は図 3.2のようになります. ファイル ccc がなくなったかわりに, ファイル eee ができていることを確

図 3.2: コマンドmvを実行したところ

認して下さい.

コマンド mv は, ファイルを別のディレクトリに移動するときにも使えます. この使い方は,

mv␣ファイルの名前␣移動先のディレクトリ名

です. また, ワイルドカード * の使い方はコマンド rmやコマンド cpと同様です.

3.2.7 chmod: ファイルの保護モード (パーミッション)を設定する

さて,

ls␣-l�� ��←↩ (3.22)

と入力してみて下さい. この操作をおこなうと, 画面に

Page 44: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

26 第 3章 基本コマンド (2)

drwxr-xr-x 3 d99999 y99 1024 Apr 19 04:56 lecture

というような感じの文字列が表示されます.

この暗号のように見える内容には, 図 3.3および図 3.4に示すような意味があります. このように,「誰に,

drwxr-xr-x 3 d99999 y99 1024 Apr 19 04:56 lecture

ÿÿÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿ

ÿÿÿÿÿ ÿÿÿÿÿ

図 3.3: ls -lによって表示される文字列の意味

どのような操作を許すか」という指定のことを「保護モード」あるいは「パーミッション」といいます.

保護モードを確認するときには, グループのところと他人のところに “w”がないかどうか気を付けて下さ

い. ここに “w”になっていると, 例えば, あなたの隣に座っている人は, あなたの持っている大事なデータを

自由に書き換えることができてしまいます. データを他人が書き換えることができるような設定には絶対に

すべきではありません. また, 他人に見られたくないは, 他人からは読めないような設定に変更しましょう.

ファイルの保護モードを変更するには, コマンド chmod を使います. この使い方は,

chmod␣u,g,o,aの組み合わせ␣+r,w,xの組み合わせ␣ファイル名

です. ここに,

a: 全員, u: 本人, g: 本人と同じグループ, o: 他人;

+: 許可, -: 不許可;

r: 読み込み可, w: 書き込み可, x: 実行可

となっています.

これだけではわかりにくいと思われるので, 例題をやります. ktermのウィンドウ内で, 以下のような操

作を順番におこなって下さい. なお, 以下では, 操作の意味が記号#以降に書いてあります. この部分を入力

してはいけません.

touch␣foo�� ��←↩ #ファイル foo を作成

ls␣-l␣foo�� ��←↩ #ファイル foo の保護モードを見る

chmod␣a+x␣foo�� ��←↩ #全員に実行可能にする

ls␣-l␣foo�� ��←↩ #保護モードがどうなっているか確認する

chmod␣a+r␣foo�� ��←↩ #全員に読めるようにする

ls␣-l␣foo�� ��←↩ #保護モードがどうなっているか確認する

chmod␣go-rx␣foo�� ��←↩ #自分以外には読めず, 実行不可にする

ls␣-l␣foo�� ��←↩ #保護モードがどうなっているか確認する

(3.23)

上記のコマンド群を実行すると, 結果は図 3.5のようになります.

chmod␣a+xは, 「全員に実行許可を与える」という意味です. また, chmod␣go-rxは, 「グループおよび

他人に対して読み込みおよび実行を禁ずる」という意味です. go や rx などのように文字をならべて書いた

場合, これらの and が取られます.

chmodに関するより詳しい説明については参考書の 35ページから 38ページを参照して下さい.

3.2.8 jman: マニュアルを読む

マニュアルを読むためのコマンドが jman です ( man は manual の略です). 使い方は

Page 45: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

3.3. X Window Systemと fvwm2 の基本的な用語と操作 27

ÿÿÿÿÿÿÿÿÿÿÿÿ

d r w x r - x r - x

ÿÿÿÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿÿÿ

d:-:ÿÿÿÿÿÿÿÿÿ

ÿÿÿÿÿÿÿÿÿ

r:-:ÿÿÿÿÿÿ

ÿÿÿÿÿÿ

w:-:ÿÿÿÿÿÿ

ÿÿÿÿÿÿ

x:-:ÿÿÿÿ

ÿÿÿÿ

図 3.4: ファイルの保護モードの意味

図 3.5: chmodを使ったパーミッションの変更

jman␣コマンド名 (3.24)

です. 英語版のマニュアルを読むときには jman のかわりに man というコマンドを使います. 各自で

jman␣ls�� ��←↩ (3.25)

と入力してみて下さい. すると, コマンド ls の詳しい説明が画面に表示されます.

3.3 X Window Systemと fvwm2 の基本的な用語と操作

みなさんが使っているコンピュータでは, X Window Systemというプログラムが画面全体を制御してい

ます. そして, この X Window System とみなさんの間の仲立ちをするプログラムが, ウィンドウマネー

ジャと呼ばれるプログラムです. ウィンドウマネージャにもいろいろな種類があるのですが, みなさんのコ

ンピュータで今動いているのは, fvwm2 というウィンドウマネージャです.

ウィンドウマネージャの役割を理解するために, fvwm2を起動せずに単純に X Window System だけを

起動した画面を図 3.6に示します. X Window System にはたくさんのウィンドウを取り扱う能力はあるの

図 3.6: ウィンドウマネージャなしで X Window System を起動

ですが, ユーザが実際にウィンドウを操作するためのインターフェースは提供していません. ですから, 図

3.6のような状態では, ウィンドウを動かしたり拡大縮小したりすることもできません. そのようなユーザ

との対話は, すべてウィンドウマネージャが受け持っているわけです.

Page 46: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

28 第 3章 基本コマンド (2)

3.3.1 ウィンドウ各部の名称

ではまず, ウィンドウ各部の名称について説明しておきましょう. 図 3.7を見て下さい.

図 3.7で, ウィンドウが何も表示されていないところをルートウィンドウといいます. また, ウィンドウの

名称 (たとえば kterm など) が表示されている部分をタイトルバーといいます. タイトルバーには左端に 1

個, 右端に 2個ボタンがあります. ウィンドウの 4隅の L字型をした部分をフレームあるいはコーナーピー

スといいます. ウィンドウの左右と垂直な部分とウィンドウ下端の水平な部分をサイドバーといいます. こ

れらのウィンドウ以外に, 画面右下に 2個の四角形の部品があります. 左側をアイコンマネージャ, 右側を

ページャといいます.

フレーム

タイトルバー

サイドバー

ルートウインドウ

アイコンマネージャ

ページャ

ウインドウオプション

最小化

最大化

図 3.7: ウィンドウ各部の名称

3.3.2 各部のはたらき

では, 上で説明した各部品のはたらきについて説明してゆきましょう.

タイトルバーの左端にあるボタンはウィンドウオプションのメニューを開きます. このメニューには, ウィ

ンドウの移動, ウィンドウの重なりの調整, ウィンドウの消去などが含まれます. タイトルバーの右側にあ

る 2個のボタンのうち左側にあるものは最小化ボタンです. このボタンを押すと, ウィンドウが小さいアイ

コン (絵)に変わってルートウィンドウの左下に移動します. アイコンをダブルクリックする (マウス左ボタ

ンを 2回連続して押す)と, ウィンドウはもとの大きさに戻ります. その右側のボタンを押すとウィンドウ

が大きくなります. もう 1回押すともとに戻ります. 参考までに, 画面下部にいろいろなアイコンがたまっ

た状態を図 3.8に示します.

図 3.8: いろいろなアイコンが画面にたまったところ

タイトルバーには, ウィンドウの名前の表示だけではなく, ウィンドウの移動にも使われます. タイトル

バーでマウス左ボタンを押し, 左ボタンを押したままでマウスを移動させると, それにつれてウィンドウが

移動します. サイドバーを使っても同じ操作ができます. また, いくつかのウィンドウが重なっているとき

Page 47: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

3.3. X Window Systemと fvwm2 の基本的な用語と操作 29

にあるウィンドウのタイトルバーでマウスをクリックする (マウス左ボタンを 1回押す)と, そのウィンドウ

が一番上側に来ます. もう 1回押すと今度は一番下に来ます. マウス右ボタンにも同様の効果があります.

フレームはウィンドウの大きさを変えるのに使われます. でマウス左ボタンを押し, 左ボタンを押したま

までマウスを移動させると, それにつれてウィンドウの大きさが変わります.

ルートウィンドウでマウスをクリックすると「ルートメニュー」という名前のメニューが開きます. この

メニューには kterm, Mule, 各種アプリケーションおよび fvwm2 の終了が含まれます. マウス中央ボタン

を押すとウィンドウオプションのウィンドウが開きます. 右ボタンを押すと今動いているウィンドウの一覧

が表示されます.

ルートウィンドウ右下のアイコンマネージャは複数のウィンドウを制御するのに使われます. アイコンマ

ネージャの中にある各ウィンドウの名前をクリックすると, 該当するウィンドウのタイトルバーのボタンを

押さなくてもそのウィンドウの最小化および復元をおこなうことができます.

アイコンマネージャの右側にあるのがページャです. ページャについては次の項でもうすこし詳しく説明

します.

3.3.3 仮想デスクトップとページャ

画面の広さが 800x600ドット分しかないノートパソコンなどでは画面が狭すぎて作業に支障を来すこと

があります. また, 複雑な作業をしているときには, コンピュータの画面はいくら広くても足りない, という

こともよくあります. このようなときに威力を発揮するのが, 仮想デスクトップと呼ばれるしくみです.

仮想デスクトップについて理解するためには, 実際にみなさんの環境を見るのが早道でしょう. 画面のど

こでもいいですから,�� ��Ctrl +�� ��→�� ��Ctrl +�� ��↓�� ��Ctrl +�� ��←�� ��Ctrl +�� ��↑

(3.26)

と入力してみて下さい. 画面が何回か切り換わったことが確認できたでしょうか? すなわち, みなさんの環

境では, 4画面分の仮想デスクトップが提供されいて, 1度に見渡すことができるのは画面全体の 1/4になっ

ているわけです. 上記のようにして見えている画面を切り換えることで 4画面全体を使うことができます.

仮想デスクトップの他の画面に移動したいときには, 上記のように�� ��Ctrl +

�� ��→ などと入力するかわりに,

画面右下のページャと呼ばれるウィンドウを利用することもできます. ページャの該当する部分をクリック

すれば, 画面が全仮想デスクトップのうちクリックした部分に相当する箇所に切り換わります.

また, マウスカーソルが画面に端に来て一定時間経過すると, 自動的に隣の画面に移動するようになって

います. 仮想デスクトップが 4画面分で足りないときには, 設定ファイルを書き換えることで数を増やすこ

とができます (設定ファイルについてはこの講義の後の方で触れます). 仮想デスクトップが扱える画面の数

の上限は約 40億個です.

Page 48: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 49: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

31

第4章 エディタと印刷

今回の講義では, ファイルを編集するためのツールであるエディタの基本的な使い方を学びます. また,

ちょうどよい機会ですから, エディタを使って作成したファイルを紙に印刷する方法も勉強することにし

ます.

4.1 エディタ

みなさんがコンピュータを使って仕事をするときには, 何らかの方法でコンピュータにデータを入力した

り, コンピュータに蓄えられているデータを加工したりする必要があります. コンピュータに蓄えられた

データは, ファイルという形でまとまっています. ですから, コンピュータで仕事をするときには, 人間が

ファイルを加工するためのツールが必要になるわけです. エディタとはファイルを編集するためのツールの

総称です.

エディタには, テキストファイル (人間がふつうに読めるファイル)を編集するためのテキストエディタ

とバイナリファイル (人間には読めないファイル)を編集するためのバイナリエディタの 2種類があります.

ただし, バイナリエディタは特殊な用途にしか使われないため, エディタという言葉をもっぱらテキストエ

ディタの意味で用いることが多いようです. この講義でも, 特に断らない限りエディタという言葉をテキス

トエディタの意味で用います.

ところで, みなさんはワープロという言葉という言葉を聞いたことがあるでしょうし, たいていの人が実

際に使ったことがあるでしょう. では, ワープロとテキストエディタはどう違うのでしょうか? この違いは,

非常に大雑把に言うと, 設計思想の違いであると言えます. すなわち, ワープロは文書の見た目を整えるこ

とに主眼を置いて設計されているのに対し, テキストエディタは単純に文字がら成るファイルを作成するこ

とに主眼を用いて設計されています. ただし, この区別は厳密なものではありません. なお, UNIXの世界で

は, 綺麗に整形された文書を作成するときには, TEXや LATEXなどといった一種のプログラミング言語で書

かれたファイルををテキストエディタを用いて作成してから, そのファイルをコンピュータで処理すること

が多いです. LATEX についてはこの講義の後の方で取り上げます.

UNIXの世界で標準的に使われているエディタは何種類かあるのですが, この講義ではMuleという名前

のエディタを取り上げます. このエディタは, GNU Emacs という英語圏で開発されたエディタを多くの言

語が取り扱えるように拡張したものです. Muleの特徴をいくつか列挙しておきます.

• 同時に多数のファイルを編集できる

• 画面を多数のウィンドウに分割して作業することができる

• 編集するファイルの種類 (C言語, TeX, HTML, JAVA, 自然言語など) に応じて挙動が適切に切り換

わるようになっている

• ディレクトリの編集ができる

• 電子メールの読み書きができる

• ネットニュースの読み書きができる

• WWWの閲覧ができる

• テキストファイルとバイナリファイルを両方編集できる

• プログラムのコンパイルができる

Page 50: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

32 第 4章 エディタと印刷

• ktermと同じような使い方ができる

• .emacsという名前の設定ファイルを編集することで, 極めて柔軟にカスタマイズする (挙動を好みに

合うように変更する) ことができる

• 非常に多くの国の言葉をサポートしている

Mule の機能は極めて多いため, この講義ではその全体を紹介することはできません. また, 今回の講義で

は, さらにその中のごく基本的な部分に限って紹介することにします.

4.2 Muleの起動と終了

Muleを起動するには,

• ktermのウィンドウから mule�� ��←↩ と入力する,

• マウス左ボタンを押して現れるメニューの中からMuleを選択する

という 2種類の方法があります.

どの起動方法を用いる場合も,

Muleの起動にはちょっと時間がかかる

ということに注意してください. これは, Muleがコンピュータに大きな負担をかける巨大なプログラムだ

からです. Muleがすぐに起動しないからといって画面右下のメニューのMuleのところにマウスカーソル

を合わせてマウス左ボタンを連打したりすると, コンピュータに負荷がかかりすぎて, ほとんど何もできな

い状態になってしまいます.

Muleを終了するときには, Muleのウィンドウ内でまず�� ��Ctrl +

�� ��x と入力し, 続いて�� ��Ctrl +

�� ��c と入力します.

4.3 Ctrlキーとメタキー

先週と同様に, 以下では, C-xという記号で,�� ��Ctrl キーを押しながら

�� ��x キーを押す操作をあらわします.

さらに, C-x C-fという記号で, 「まず�� ��Ctrl キーを押しながら

�� ��x キーを押し, 続いて�� ��Ctrl キーを押しな

がら�� ��f キーを押す」操作をあらわします. 「C-x C-f」と書いたときの中央の空白は見やすくするために入

れたものであり, 実際にスペースキーを押すことを意味するわけではありません.

これとは別に, Muleの操作には, メタキーというものが登場します. この講義で使っている環境でメタ

キーの役割を果たすのは�� ��Esc キーなのですが, この使い方は

�� ��Ctrl キーとすこし違います.�� ��Ctrl キーは

「他のキーと同時に押してはじめて効果がある」のに対して, メタキーは, 「�� ��Esc キーを 1回押してから離

し, 続いて他のキーを押すと効果がある」のです. 以下では, M-x という記号で,「まず�� ��Esc キーを押し, 次

に�� ��x キーを押す」操作をあらわします. なお, Muleが X Window Systemのインターフェースを使っている

ときには, スペースバーの横にある�� ��Alt というキーもメタキーとして使えます.

�� ��ESC キーと異なり,�� ��Alt

キーの使い方は�� ��Ctrl キーと同じで, 他のキーと同時押しをした場合のみに効果があります. ですから,

�� ��Alt

キーを使って M-xと入力するためには,�� ��Alt キーと

�� ��x キーを同時に押す必要があるわけです. コマンド

mule␣-nw�� ��←↩ (4.1)

によって Mule を起動した場合には�� ��Alt キーは効果を持たないので注意して下さい.�� ��Ctrl キーとメタキーの記法とその意味の例をいくつか表 4.1に挙げます.

Page 51: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.4. Muleの基本操作 33

表 4.1: Ctrl キーとメタキーを使うときの表記法

表記 実際の操作

C-x�� ��Ctrl +

�� ��x

C-x C-f�� ��Ctrl +

�� ��x�� ��Ctrl +

�� ��f (空白は入れない)

M-x やり方は 2種類ある:

•�� ��Esc キーを 1回押してから離し, 続いて

�� ��x キーを押す

•�� ��Alt +

�� ��x

M-x rmail やり方は 2種類ある:

• まず�� ��Esc キーを 1回押してから離し, 続いて

�� ��x キーを押し, さらに rmailと入

力する

•�� ��Alt +

�� ��x と入力し, 続いて rmailと入力する

4.4 Muleの基本操作

これからMuleの基本操作について学んでゆくわけですが, その前に「ファイルを保存する」という操作

についてひとこと注意しておきます.

われわれが操作するファイルは, ふつうはコンピュータの中にあるハードディスクという装置に保存され

ています. ところで, われわれがファイルを編集するときには, ハードディスク上に保存されているファイ

ルを直接操作するわけではありません. そのかわりに, まずファイルをコンピュータの主記憶装置に読みこ

んでから, 読み込まれたデータを操作する, ということがおこなわれます. このような面倒なことをする理

由は, ハードディスクという装置の速度が, 主記憶装置のそれと比較して格段に遅いからです. 1台のコン

ピュータの中にはデータの処理速度が速い部品と遅い部品が混在していますから, 遅い部品に足を引っぱら

れて全体の速度が低下しないような工夫をすることが必要となるのです.

さて, エディタはファイルを主記憶装置に読み込んでからファイルの内容を操作するのですが, ファイル

の編集作業を終了したときには, 主記憶装置には変更後のファイルがあり, ハードディスクには変更前のファ

イルがそのまま残っていて, 内容は一致していません. 「ファイルを保存する」という操作をすることで初

めて変更後の内容がハードディスクなどに記録されたファイルに反映されます. ファイルを保存しないと,

せっかく編集したファイルの内容はすべて失われてしまいます.�� ��エディタを終了する前にファイルを保存しないと, 編集した内容はすべて失われてしまう

ということは確実に記憶しておいて下さい.

なお, 以下では主記憶装置の中でMuleが使っている部分をMuleのバッファと呼びます.

では, これから上記に関連した操作をいくつか練習してゆくことにしましょう. 作業を始めることに先立っ

て, 講義用のディレクトリ lecture に移動しておくことにします.

cd ~/lecture�� ��←↩

と入力しておいて下さい.

4.4.1 Muleの起動から終了まで

まず最初に,

1. Muleを起動する

2. 新しいファイルを開く

3. ファイルを編集する

Page 52: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

34 第 4章 エディタと印刷

4. ファイルを保存する

5. ファイルを名前を変えて保存する

6. Muleを終了する

という一連の操作をやってみることにします.

Muleを起動する Muleを起動するための方法はいくつかあるのですが, ここでは kterm から Mule を呼

び出すことにします. ktermのウィンドウ内で

mule�� ��←↩

と入力して下さい. すると, 図 4.1のように, 画面にMuleのウィンドウが開きます. Muleを起動したときの

図 4.1: Muleのウィンドウが開いたところ

画面には, いくつかの操作法に関する説明と保証規定, バージョン情報などが表示されます. 一定時間待っ

ていると, これらの表示はウィンドウから消えます.

新しいファイルを開く 次に, マウスカーソルを Mule のウィンドウの中に移動させて,

C-x C-f (4.2)

と入力して下さい. すると, 画面の一番下の行に,

Find file: ~/lecture/

という文字列があらわれます. この状態では, Muleは, みなさんがファイル名を入力するのを待っています.

ここで,

test.txt (4.3)

と入力して下さい. ファイル名を入力しているときには, C-bでカーソルが 1文字左に戻, C-fでカーソルが

1文字右に進みます. また, C-dでカーソル上の文字が消え, C-hでカーソルの左の文字が消えます. 入力に

間違いがあるときには, 修正して下さい.

ファイル名を入力し終わったら�� ��Enter キー (

�� ��←↩ ) を押します. すると, 画面の 1番下の部分に

(New file)

という文字が現れます. 「(New file)」というメッセージは, 今開いたファイルが新しい空っぽのファイルで

あることを意味します.

ファイルを編集する では, この test.txt というファイルに文字を打ち込んでみましょう. この状態で, みな

さんが打ったキーの通りの文字がファイル (実際はバッファ)に入力されてゆきます. ここでは, とりあえず

aaa (4.4)

とでも入力しておいて下さい (間違えても気にしなくてよいです).

Page 53: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.4. Muleの基本操作 35

ファイルを保存する では, 編集後のファイルを保存することにします.

C-x C-s (4.5)

と入力して下さい. すると, 画面の 1番下の部分に

Wrote /home/b/y99/d99999/lecture/test.txt

などのようなメッセージが現れます (内容は人によって違います). このようなメッセージが出たら保存は成

功です.

Muleを終了する さいごに Mule を終了します. このためには,

C-x C-c (4.6)

と入力します.

4.4.2 Muleのウィンドウ各部の名称と機能

Mule の用語では, Mule を起動したときに開くウィンドウ全体をフレームと呼びます. Mule は 1 個の

フレームを複数の画面 (ウィンドウ)に細分することができますし, 複数のフレームを開くこともできます.

Mule起動時には, フレームが 1個だけ立ちあがります.

図 4.2に Mule のフレームの各部の名称を示します. では, これらの意味について順番に説明してゆき

モード行

カーソル

メニュー

エコー領域

図 4.2: Muleのフレーム各部の名称

ます.

メニュー Muleの機能のいくつかはメニューから使えるようにもなっています. 使い方は fvwm2のメニュー

と同じです. メニューの右側に対応するコマンドも表示されるので, コマンドを思い出すのにもある程度は

使えます. ただし表示は英語ですし, 表示されるコマンドが実際のものと異なる場合もあります. ですから,

メニューに頼るよりはコマンドを覚えた方が安全です.

カーソル ファイル (バッファ)中の現在編集中の箇所 (ペン先があるところのようなもの)をあらわします.

モード行 現在の Mule の状態に関するいろいろな情報が表示されます. 右から 2番目の部分には, 今ファ

イル (バッファ)全体の上から数えて何行目にカーソルがあるかが表示されています.

エコー行 Muleの各種メッセージ (ファイルの保存に成功, 失敗など)がここに表示されます.

Page 54: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

36 第 4章 エディタと印刷

4.4.3 Muleのよく使われるコマンド

先に述べた通り, Muleで文字などを打ち込みたいときには, 英文字などが書かれたキーを押してゆけば,

その通りの文字がファイル (バッファ)に挿入されていきます. 挿入される箇所はカーソルがある場所です.

ファイルを自由自在に編集するためには, 現在作業中の場所をあらわすカーソルを上下左右に動かす必要

があります. このためのコマンドはやや直感的でないのですが, C-fが右移動, C-bが左移動, C-pが上移動,

C-nが下移動です.

C-のあとの英文字 1文字はそれぞれ forward, backward, previous, next の略です. これらはカーソルキー�� ��← ,�� ��→ ,

�� ��↑ ,�� ��↓ でも代用できます.

いらない文字を消すためのコマンドもあります. コマンド C-dはカーソル位置の文字を消し, C-hはカー

ソルの直前の文字を消します. それぞれ�� ��Delete キーと

�� ��BackSpace でも代用できます. これ以外に, C-kと

入力することで, 1行全体を消去できます.

誤って必要な部分を消してしまった場合には, C-uと入力すれば直前の作業を取り消せます.

Muleは内部でいろいろな処理を実行できるのですが, 機能が多すぎるために, 利用者がおかしなキーを押

した場合にわけがわからない状態になってしまうことがあります. このような状態から回復するために, 先

に入力したコマンドをキャンセルするコマンド C-g が用意されています. C-gを数回押せばたいていの状態

からは回復できます.

Muleでよく使われるコマンドを表 4.2と表 4.3にまとめておきます.

表 4.2: カーソルの移動と文字の消去

コマンド 機能 英単語 対応するキーやメニュー

C-f カーソルを 1文字分右に移動 forward�� ��←

C-b カーソルを 1文字分左に移動 backward�� ��→

C-p カーソルを 1文字分上に移動 previous�� ��↑

C-n カーソルを 1文字分下に移動 next�� ��↓

C-d カーソル上の文字を消去�� ��Delete

C-h カーソルの 1個左の文字を消去�� ��BackSpace

C-k カーソルがある行全体を消去 Edit→Cut

表 4.3: ファイル操作などコマンド 機能 メニュー

C-x C-f ファイルを開く Files → Open File...

C-x C-s ファイルを保存する Files → Save Buffer...

C-x C-w ファイルを名前を変えて保存する Files → Save Buffer As...

C-x C-c Muleを終了する Files → Exit Emacs...

C-x i ほかのファイルを挿入する Files → Insert File...

C-x u 実行取消 Edit→Undo...

C-g 誤入力などのキャンセル

4.4.4 Muleチュートリアル

Muleには, 対話的にみなさんに使い方を覚えてもらうためのチュートリアルモードというものがありま

す. ここでは, みなさんにチュートリアルを実行してもらいます. Muleを起動して,

C-x h T (4.7)

と入力して下さい. 上記はすこしわかりにくいので, キー入力の内容を詳しく説明すると,

1.�� ��Ctrl +

�� ��x

Page 55: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.5. かんなによる日本語入力 37

2. h

3.�� ��Shift +

�� ��tのようになります.

上記の通りに入力すると, Muleの画面最下部のエコー行に

Language: (4.8)

というメッセージが出ます. これに続いて

Japanese�� ��←↩ (4.9)

と入力して下さい (大文字と小文字を間違えないように). すると, Muleのチュートリアルが始まります.

C-x hはMuleでヘルプモードに入るためのコマンドです. 実はMuleの標準設定ではMuleでヘルプモー

ドに入るためのコマンドは C-h なのですが, みなさんの環境では, ktermにおける操作との整合性を取るた

めに設定を変更してあります.

今回の講義では, このチュートリアルを最後までやって下さい.

4.5 かんなによる日本語入力

UNIX上で使える日本語入力システムにもいろいろな種類があるのですが, この講義では「かんな」とい

う名前のプログラムを取り上げます.

かんなは日本電気で開発された, クライアント・サーバ方式 (クライアント (アプリケーションプログラム

など)が, ネットワーク上のどこかにあるサーバと通信することで作業をおこなう方式) でかな漢字変換を

おこなうフリーウェアです. Mule上で動作するほか, この講義の後の方で出てくる kinput2 というプログ

ラムと組み合わせると, X Window System 上で直接日本語入力をおこなうことができます. 本節では かん

なの基本的な使い方について説明します.

4.5.1 かんなの起動

みなさんが Mule を開いたときには, すでにかんなは動いているのですが, アルファベットを入力するモー

ドになっています. かんなが起動していることは, Muleのモード行 (下から 2番目の白黒反転した行)が図

4.5のようになっていることから確認できます. 行の左側に「かんな」という文字が表示されていることに

注目して下さい.

入力モードを日本語入力モードに切り換えるときには,

C-o (4.10)

と入力します. すると, モード行が図 4.5のように変わります. 行の左側に [ あ ] という表示が出ているこ

とに注意しましょう. この表示は, かんなが日本語入力モードになっていることをあらわします.

日本語入力モードからアルファベット入力モードに戻るには, もう 1回

C-o (4.11)

と入力します. すると, モード行は図 4.5のようになります. 行の左側に [ あ ] という表示が消えています.

C-oというコマンドを 1回入力するたびに, かんなの入力モードは アルファベットと日本語のあいだで切

り換わります.

Page 56: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

38 第 4章 エディタと印刷

図 4.3: かんなが起動しているときのモード行

図 4.4: かんなの日本語入力モード

図 4.5: かんなのアルファベット入力モード

4.5.2 ひらがなを入力する

かんなを使ってひらがなを入力するときには, キーボードからローマ字を入力します.

ではまずかんなを日本語入力モードに切り換えて下さい. 日本語入力モードになっていない人 (モード行

左端に [ あ ] という表示が出ていない人)は C-o と入力して下さい.

では,

aiueo (4.12)

と入力して下さい. すると, Muleの画面には

|あいうえお| (4.13)

という表示が出ます. 「あいうえお」というひらがなの両端の| |は, この部分がまだ確定していない (必要

に応じて漢字変換される)ことを示しています. ここではまだ漢字変換はおこなわないので, これに続いて�� ��←↩ (4.14)

と入力して下さい. すると, ひらがなの両端の| |が消え, 打ち込んだ文字列が確定します.

なお, 入力する文字を間違えたときには,�� ��BackSpace キー (あるいは C-h)で訂正できます.

次に,

kakikukeko�� ��←↩ (4.15)

と入力してみて下さい. すると, バッファに

かきくけこ (4.16)

という文字列が入力されます.

続いて, 「ん」を入力してみましょう. このためには,

nn�� ��←↩ (4.17)

と入力します.

促音を入力するときには, 子音を 2回重ねて入力します. 以下にいくつか例を挙げます. 試してみて下

さい.

キー入力 変換後の文字列

hattenn はってん

sippai しっぱい

supponn すっぽん

puttunn ぷっつん

dokkann どっかん

(4.18)

拗音などは子音の組み合わせで自動的に生成されます. 以下にいくつか例を挙げます. 試してみて下さい.

Page 57: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.5. かんなによる日本語入力 39

キー入力 変換後の文字列

kya きゃ

kyu きゅ

kyo きょ

sya しゃ

syu しゅ

syo しょ

(4.19)

単独の「ぁぃぅぇぉゃゅょ」などを入力するには,

キー入力 変換後の文字列

xa ぁ

xi ぃ

xu ぅ

xe ぇ

xo ぉ

xya ゃ

xyu ゅ

xyo ょ

(4.20)

とします.

「う 」゙「ゐ」「ゑ」と入力したいときにはそれぞれ

キー入力 変換後の文字列

vu う゛

wi ゐ

we ゑ

(4.21)

とします.

なお, 同じひらがなを入力する方法はいく通りかあります. たとえば, 「し」と入力したいときには「si」

でも「shi」でも構いません.

4.5.3 漢字に変換する

みなさんは高校までの国語の授業で文は文節から構成されているということを勉強していると思います.

ひらがなで書かれた長い文章を漢字で書き直したいときには, 文章がどのような文節から構成されているか

が重要な手掛りを与えます.

かんなは長いひらがなの文章を一括して漢字に変換する機能を持っているのですが, 漢字に変換する際に,

文節の情報を使います. ただし, ひらがなの文章字体には文節がどこで始まってどこで終わるかの情報は含

まれていないので, かんなは独自の内部アルゴリズムによって文章を仮の文節に区切り, それから各文節を

漢字に変換します. このような変換方式は連文節変換と呼ばれ, かんな以外の多くの日本語入力システムで

も採用されています.

漢字変換の説明にはいる前に, 変換された漢字をひらがなに戻したり, 以下で説明する漢字選択画面から

ひとつ前の状態に戻る indexかんな@かんな!ひとつまえのじょうたいにもどる@ひとつ前の状態に戻る方法

について説明しておきます. このためには,�� ��BackSpace キー (あるいは C-h)を押します. これとは別に, 漢

字変換を取り消すときには, Muleの標準的なキャンセルコマンドである C-gが使えます.

では, さっそく漢字変換の例題をやってみましょう. まず

kaowoarau (4.22)

と入力し (|かおをあらう|という表示が出ます), 次に

スペースキーを押す (4.23)

Page 58: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

40 第 4章 エディタと印刷

という操作をおこなって下さい. すると, 画面に表示された文字列は,

|顔を 洗う|

のようになります. かんなは「かおをあらう」という文章を「かおを」という文節と「あらう」という文節

に分け, それぞれを「顔を」, 「洗う」という漢字に変換したわけです.

次に, 「歯が抜ける」という文章を入力してみましょう.

haganukeru (4.24)

と入力し (|はがぬける|という表示が出ます), 次にスペースキーを押して下さい. すると, かんなが初期状

態であれば, これは

|葉が 抜ける| (4.25)

という漢字に変換されます. ただし, かんなは以前変換した漢字の内容を学習してゆくので, すでにかんな

を使ったことがある人が (4.5.3)を漢字変換しても, 結果は (4.5.3)とは同じにならないかもしれません.

さて, (4.5.3)の前半の漢字は望むものではありません. これを直すにはどうしたらよいでしょうか? この

ためのやり方は 2通りあります.

ひとつめは,

C-n (4.26)

と入力することです. すると, 次の変換の候補が画面に表示されます. 1個前の候補に戻るときには

C-p (4.27)

と入力します.

ふたつめの方法は, 変換候補一覧を画面に表示して, その中から適切な漢字を選択する方法です. このた

めには, スペースキーを押して漢字変換を始めてから, スペースキーをもう一回押します. すると, 図 4.6の

ように, 変換候補一覧がエコー領域に表示されます. 候補一覧は 1行だけのこともあれば数行にわたること

図 4.6: 変換候補一覧

もありますが, いずれにせよ画面には 1行しか表示されません. 候補一覧から漢字を選択する操作は次の通

りです.

コマンド 効果�� ��←↩ 変換の確定

C-f, スペース 右に進む

C-b 左に戻る

C-p 上に戻る (変換候補が複数行あるとき)

C-n 下に進む (変換候補が複数行あるとき)

数字キー ある番号の漢字を選択

選択が終わったら必ず�� ��Enter キー を押して選択された漢字等を確定して下さい.

文章が複数の文節に区切られていて, その何か所かの漢字を変更したいときには, 文節のあいだを移動す

る必要があります.

たとえば,

kyouhatottemoiitenki (4.28)

(「きょうはとってもいいてんき」)と入力してスペースキーを一回押しましょう. すると,

|今日は 取っても 飯 天気|

Page 59: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.5. かんなによる日本語入力 41

図 4.7: 変換作業中の文節

というような漢字変換がなされます. この場合, 2番目と 3番目の文節を修正する必要があります.

さて, かんなで漢字変換をしているときには, 現在変換作業をおこなっている文節にカーソルがあり, 図

4.7のように, その最初の文字が白黒反転しています. 漢字を変更できるのは現在カーソルがある文節だけ

です.

ですから, 図 4.7のようになっている状態で, 2番目と 3番目の漢字を変更するには, まず 2番目や 3番目

の文節に移動する必要があるわけです.

文節間の移動のためのコマンドは以下の通りです.

コマンド 効果

C-f 右の文節に進む

C-b 左の文節に戻る

ところで, かんなは自動的に文章を文節に区切ってくれるのですが, この切り分けが正しくないことがあ

ります. たとえば, 「兎追いしかの山」と入力するつもりで,

usagioishikanoyama (4.29)

と入力してからスペースキーを押すと, たとえば

兎 老いしか 野山 (4.30)

のように変換されてしまいます. どうしてこのようなことになったかというと, 本来は文節を

うさぎ おい し か の やま (4.31)

というふうに分けてほしかったのに, かんなは

うさぎ おいしか のやま (4.32)

という文節に分けててしまったのです. 文節の分割が正しくない場合は, 変換の候補の中に正しい漢字がな

いこともよくあります.

では, どうしたらよいのでしょうか? このような場合には, 文節を切り直す indexかんな@かんな!ぶんせ

つをきりなおす@文節を切り直す必要があります. 文節を切り直すためのコマンドには, 文節を 1文字伸ば

す C-o と, 文節を 1文字縮める C-i があります. 以下にまとめておきましょう.

コマンド 効果

C-o (変換中に)文節を伸ばす

C-i (変換中に)文節を縮める

(4.5.3)の漢字変換を訂正してゆく経過を以下に示します.

1. 初期画面

2. 第 2文節に移動

Page 60: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

42 第 4章 エディタと印刷

3. 第 2文節を「おい」に変更

4. 第 2文節の変換候補一覧

5. 第 2文節の正しい漢字を選択

6. 第 3文節に移動

7. 第 3文節を「し」に変更

8. 第 4文節に移動

9. 第 4文節をひらがなに変更

10. 第 5文節に移動

11. 第 5文節を「の」に変更

12. 第 5文節をひらがなに直して完成

Page 61: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.6. 印刷 43

4.5.4 カタカナ, アルファベットの入力

入力したひらがなをカタカナやアルファベットに直したいときには, 漢字変換を始まる前の状態で, C-n

と入力します. すると, 入力中の文字が

ひらがな→カタカナ→ 半角カタカナ → 全角英数 → 半角英数

のように順番に切り換わります. 半角英数のあとはひらがなに戻ります. 漢字変換が始まっているときには,

C-nの効果は上記と異なります. 誤って漢字変換を始めてしまったときには, C-gと入力して漢字変換が始

まる前の状態に戻って下さい.

4.5.5 半角文字と全角文字に関する注意

上の説明で, 半角文字と全角文字という言葉が出て来ました. 伝統的に言うと, 全角文字とはコンピュータ

上で半角文字の倍の幅の表示領域を使って表示されていた文字のことです. ですが, この言葉は, コンピュー

タで文字を表示するときにいろいろなフォントが選択できるようになってからは意味がなくなってしまいま

した. 現時点では, 全角文字という言葉は多バイト文字 (1文字を表現するために 16ビット以上を必要とす

る文字)をあらわす俗称, 半角文字は 1文字を表現するために 8ビットの記憶領域を必要とする文字の俗称

として使われることが多いです. なお, 半角カタカナは, コンピュータによっては正常に表示されないこと

があります. より正確に言うと, 問題を起こす可能性があるのは, シフト JIS という漢字コードを使ってい

るときの半角カタカナです. 漢字コードについては次の講義で簡単に説明します.

ここでは,�� ��半角カタカナは使うべきではない

ということを記憶しておいて下さい.

4.5.6 かんなの操作のまとめ

かんなの基本操作を表 4.4にまとめておきます

4.6 印刷

印刷のために必要なコマンドは, lpr, lpqおよび lprmの 3種類です. この節では, これらのコマンドの使

い方について学んでゆきます.

印刷の方法を学ぶ前にまず注意してほしいことは,

プリンタに送ったデータはすぐに印刷されるわけではない (4.33)

ということです. パソコンから文字を印刷するというのはときどきしか実行しない処理なので, パソコン 1

台あたりに 1台のプリンタをつけるのは無駄です. そこで, ふつう何十台かのパソコンが 1台のプリンタを

共有しています. ですから, ほかの人と印刷がかち合ったときには, ほかの人の印刷が終わるまで, 自分の印

刷したかったデータは印刷されないことになります. さらに, 印刷するデータが巨大な画像データだったり

すると, 1枚の絵を印刷するために数分から数十分の時間がかかることもあります. ですから,�� ��1度プリンタに印刷したいデータを送信したら, 印刷が終わるのを気長に待つ (4.34)

ということをつねに心掛けて下さい. それから, 印刷できるデータは, PostScriptファイルという形式のファ

イルとふつうのテキストファイル (catコマンドや jlessコマンドを使って内容を読むことができるファイル)

だけです.�� ��テキスト形式と PostScript形式のデータ以外は絶対印刷してはいけない (4.35)

ということを確実に記憶して下さい.

Page 62: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

44 第 4章 エディタと印刷

表 4.4: かんなの基本操作コマンド 意味

全体に共通

C-g キャンセル�� ��←↩ 確定

変換を始める前�� ��Space 変換

C-n カタカナ, アルファベットなどに変換

変換中�� ��Space 変換候補一覧表示

C-n 次候補

C-p 全候補

C-f 次の文節に移動

C-b 前の文節に移動

C-o 文節を伸ばす

C-i 文節を縮める

変換候補一覧表示中

C-f 右の候補に移動

C-b 左の候補に移動

C-n 下の候補に移動 (もしあれば)

C-p 上の候補に移動 (もしあれば)

4.6.1 lpr: 印刷する

先に述べた通り, この学科で使っているのは PostScriptプリンタという種類のプリンタです. このプリン

タは, PostScript形式のファイルはそのまま印刷できるのですが, テキストファイルはそのままでは印刷で

きません. ですから, テキストファイルを印刷するときには, まず a2ps というコマンドを使ってファイルを

PostScript 形式に変換してから印刷することになります.

具体的な印刷の方法は以下の通りです.

• foo.psのように ps という拡張子が付いているファイル

lpr␣foo.ps�� ��←↩ (4.36)

• テキストファイル (とりあえず test.txtを例に取ります)

a2ps␣test.txt␣|␣lpr�� ��←↩ (4.37)

4.6.2 lpq: プリンタの状態を調べる

コマンド lpqを使うと, プリンタに印刷待ちの状態になっているデータの一覧を確認することができます.

また, コマンド lprmを使うことで, 自分が今印刷待ちの状態にしているファイルを消すことができます.

プリンタに印刷待ちのデータが何もないときには,

lpq�� ��←↩ (4.38)

と入力すると, 画面には

en01:$ lpq (4.39)

no entries

という表示が出ます. これに対して, 例えば foo.psというファイルが印刷待ちの状態になっている場合には,

Page 63: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

4.6. 印刷 45

lpr␣foo.ps�� ��←↩ (4.40)

と入力すると, 画面に

Rank Owner Job Files Total Size (4.41)

1st hanba 611 foo.ps 13315 bytes

というような表示が出ます. ここに表示されたものが, 印刷を待っているデータです.

4.6.3 lprm: 印刷待ちのデータを消す

自分で送ったデータの印刷を取り消したいときには,

lprm␣611�� ��←↩ (4.42)

のように, コマンド prm に続いて取り消したいジョブ番号を入力すると, このデータが消えます. ここに,

ジョブ番号とは, 印刷待ちのデータをコンピュータが識別している番号です. この番号はコマンド lpqを実

行すると Jobという欄の下に表示されます. ただし, あなた以外の人が印刷しようとしているデータの印刷

を取り消すことはできません.

4.6.4 印刷関連のコマンド一覧

以上のコマンドを, 表 4.5にまとめておきます. 今後の講義では文書を作成して提出する宿題が出ること

があります. 印刷の仕方を確実に覚えて下さい.

表 4.5: 印刷関連のコマンドコマンド 機能

a2ps テキストファイルを PostScript ファイルに変換

lpr 印刷

lpq プリンタの状態を確認

lprm プリンタにたまった余分なデータを消す

Page 64: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 65: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

47

第5章 電子メール

コンピュータを使う主要な目的のひとつに, 他人と情報のやりとりをするということがあります. 今回の

講義では, この, 情報のやりとりをする方法について学びます.

さて, われわれが他人と連絡を取る方法には, 大きく分けると,

1) 電話をかける, 手紙を出す

2) 掲示板に張る

3) 新聞に記事や広告を出す

というものがあります. コンピュータを使って他人と連絡を取るための手段には, これに対応して,

1′) 電子メールを出す

2′) 電子掲示板に書く, 自分のホームページに書く

3′) ネットニュースに記事を投稿する

というものがあります. これらの特徴をまとめておきましょう.

表 5.1: コンピュータを使った情報伝達の手段

手段 似ているもの 特徴

電子メール 電話, 手紙 1対 1の情報伝達手段.

電子掲示板, web ページ 掲示板 1対多の情報伝達手段. データは 1箇所 (特定のコン

ピュータ)で集中管理される.

ネットニュース 新聞 1対多の情報伝達手段. データは多くの場合世界中の

コンピュータにバケツリレー方式で転送される.

今回の講義では, このうち, 1対 1の情報伝達手段である電子メールの使い方について学ぶことにします.

電子メールを読み書きするためのツールにもいろいろな種類があるのですが, ここでは

• mailコマンドを使った場合

• Muleを使った場合

の 2種類について説明することにします.

具体的な電子メールの使い方の説明に入る前に,

• 電子メールは葉書のようなもの, 暗号化しなければ誰にでも読める

• 電子メールは送信先に確実に届くとは限らない

ということを注意しておきます.

なお, mailコマンドは既読の電子メールを mbox というファイルに保存し, Muleは既読の電子メールを

RMAIL というファイルに保存します. これらの形式には互換性がないことも記憶しておいて下さい.

Page 66: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

48 第 5章 電子メール

5.1 電子メールの宛先の記法

電子メールの宛先のことをメールアドレスといいます. メールアドレスの書き方は, 日本における手紙の

宛名の書き方のちょうど逆で,

相手の名前@相手の所属機関の名前.国名

という形式です. 例えば, みなさんの場合は,

d*****@edu.eee.u-ryukyu.ac.jp

となります (d*****の部分には皆さんのユーザ名が入ります).

@という記号で区切られた前半の部分が相手の名前, 後半の部分が相手の住所です. 住所の記述の部分は

ピリオド (.) でいくつかに区切られます. ここには, 相手の住所を小さい分類から順に書いてゆきます (日

本語の記法と逆です). 最初の例の場合は表 5.2のような意味になります.

表 5.2: メールアドレスの記法 (例)

学生のログイン名 教育用 電気電子工学科 琉球大学 教育機関 日本

d***** @ edu . eee . u-ryukyu . ac . jp

5.2 mailコマンド

mailコマンドは, UNIXに標準的に装備されている, 電子メールを読んだり出したりするためのコマンド

です. このコマンドの機能は非常に簡単なものに限られているため, あまり使いやすくありません. 特に, 電

子メールの本文を編集するための機能が貧弱なので, mailコマンドを使って電子メールを送信ときには, ふ

つうはあらかじめエディタで電子メールの本文を編集しておきます.

電子メールを日常的に使用するには, 後で述べるように Mule の電子メール読み書き機能を使うか, 次回

の講義で述べる mnews を使う方がよいでしょう. ただし, 電子メールでファイルを相手に送りたいときに

はmailコマンドを覚えておくと便利です.

5.2.1 電子メールを送信する

さっそく, mail コマンドを使ってあなた自身宛に電子メールを出してみましょう. このためには, mail と

いうコマンドに続けて, 宛先の電子メールアドレスを入力して�� ��Enter キーを押します.

ktermで以下のように入力して下さい. ただし, d*****の部分にはあなたのユーザ名が入ります.

mail␣d*****@edu.eee.u-ryukyu.ac.jp�� ��←↩ (5.1)

すると, まず画面に

Subject: (5.2)

という表示が出ます. ここで入力すべきものは電子メールの題目です. その電子メールの内容にふさわしい

題目を付けましょう. 今回の電子メールの内容は第 1回目のテストなので, 題目は

Test of mail command (5.3)

としておきます. 以上と同じ内容の文字を入力したら�� ��Enter キーを押して下さい. すると, プロンプト ( )

が次の行に移動します. 続けて適当な文字を入力していって下さい (何でもいいです). ただし, この状態で

は電子メールの文章を行単位でしか編集できない (前の行は編集できない)ことに注意して下さい. 電子メー

ルを書き終わったら, 行の先頭で文字ピリオド (.) を押します. すると, 画面に EOT という文字が現れて

メールの送信が終了します. これらの一連の操作が終わったときの状態を図 5.1に示します.

Page 67: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

5.2. mailコマンド 49

図 5.1: mailコマンドで電子メールの送信を終わった状態

5.2.2 電子メールを読む

続いて, あなた宛に届いている電子メールを読んでみます. これには,

mail�� ��←↩ (5.4)

とだけ入力します. すると, 画面に例えば図 5.2のような内容が表示されます. >N 数字となっている部分が

新着メールのデータです. また, 記号&(プロンプト)は, mailコマンドがあなたの入力を待っていることを意

味します. これ以外の表示された内容の意味については図中に示した通りです.

では, ここで

n�� ��←↩ (5.5)

と入力してみて下さい. すると, 電子メールの本文 (先ほど送った内容)が画面に表示されます.

先ほど送った電子メールの本文が長すぎるものでなければ, 電子メールの本文が表示された画面の一番下

にプロンプト「&」が表示されているはずです. では続いて電子メールを読むのを終了することにします.

q�� ��←↩ (5.6)

と入力して下さい.

図 5.2: mailコマンドで電子メールを読んでいるところ

mailコマンドを実行しているときに有効なコマンドの代表的なものを表 5.3に示します. いずれも英文字

あるいは数字 1文字程度から成るごく簡単なものです. コマンドを実行するためには, コマンドを打ち込ん

でから�� ��Enter キーを押す必要があります. 読み終わったメールは, あなたのホームディレクトリに自動的に

作成される mbox というディレクトリに保存されます.

メッセージを読んでいるとき, そのメッセージが 1画面に収まる場合には, 画面の最下部にプロンプトが

表示されますし, プロンプトに続いて表 5.3のコマンドを入力することができます. これに対し, メッセー

ジが 1画面分に収まらないときには, コマンド jless が起動してメッセージを表示します. この場合には, 表

Page 68: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

50 第 5章 電子メール

表 5.3: mailコマンドを実行中に有効なコマンドコマンド 機能

? コマンド一覧を表示

h メールの一覧 (ヘッダ)を表示

q メールを保存してmailコマンドを終了

x メールを保存せずにmailコマンドを終了

n 次のメッセージを表示

電子メールの番号 ある番号のメッセージ (電子メールの本文)を表示

d 電子メールの番号 ある番号のメッセージを消去

R 電子メールの番号 ある番号のメッセージに返信する

m 宛先 メールを出す

s 電子メールの番号 ファイル ある番号のメッセージをファイルに保存

5.3のコマンドはすべて使えなくなっていて, かわりに jless のコマンドが有効になっています. 特に, メッ

セージの表示をやめるときには,

q (5.7)

と入力する必要があります.�

�• mailコマンド実行中に長いメッセージを表示していると jless が起動する

• jless が起動すると mailを読むときに有効だったコマンドはすべて無効になり, かわりに

jless のコマンドが有効にな

ということを記憶しておいて下さい.

なお, mailコマンドは, 標準の状態では未読のメールしか表示してくれません. mbox に保存された既読

の電子メールをもう 1回読みたいときには,

mail␣-f�� ��←↩ (5.8)

と入力します.

5.2.3 ファイルを電子メールで送る

ファイルを電子メールで送るときには,

mail 宛先 < ファイル�� ��←↩ (5.9)

のように入力します. たとえば, [email protected]あてに.cshrcというファイルを送り

たいときには,

mail [email protected] < .cshrc�� ��←↩ (5.10)

とします.

では, あなた自身宛に.cshrcというファイルを送信してみて下さい.

5.3 Muleを使った電子メールの読み書き

5.3.1 電子メールを送信する

まず Mule を使って電子メールを送信してみましょう. Muleを起動して, Muleのウィンドウ内で

Page 69: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

5.3. Muleを使った電子メールの読み書き 51

M-x mail�� ��←↩ (5.11)

と入力して下さい. ここに, M-xは ESCキーを一回押して離し, 続いて x キーを押すという意味です. ま

た, (5.3.1)では見やすいように M-xと mailのあいだに空白が入れてありますが, 実際には空白を入力しな

い (スペースキーを押さない) ようにして下さい.

なお, (5.3.1)の操作は, より簡単な

C-x m (5.12)

というコマンドで代用できます.

上記のコマンドを入力すると, Muleのウィンドウ内に

To:

Subject:

--text follows this line--

(5.13)

という表示が出ます. これが, これから送信しようとしているメッセージを作成する画面です.

では, To: のうしろに相手のメールアドレスを入力し, Subject: のうしろに電子メールの題目を入力し

て下さい. ここで, メールアドレスはいわゆる半角の英数字 (かんななどで変換されていないもの)でなけれ

ばならないことに注意して下さい.

電子メールの本文は,

--text follows this line--

の次の行から書いていって下さい. --text follows this line-- という行を削除したり, この行と同じ

行に文字を入力してはいけません.

編集が終わった電子メールを送信するときには,

C-c C-c (5.14)

とします. (5.3.1)の操作は, 1回 Ctrl キーを押しながら cを押し, 続いてもう 1回 Ctrl キーを押しながら c

を押す, という意味です. すると Mule のウィンドウの一番下の行に

Sending...done (5.15)

という表示が出て, 電子メールの送信が終了します.

では, さっそくあなた自身宛に適当な電子メールを送信してみて下さい.

5.3.2 電子メールを読む

Mule を使って電子メールを読むときには, Muleのウィンドウの中で

M-x rmail�� ��←↩ (5.16)

と入力します. すると, Muleで電子メールを読むためのモードが起動します. なお, 読み終わった電子メー

ルは, あなたのホームディレクトリにある RMAIL というファイルのうしろの部分にどんどん追加されてゆ

きます. ですから, いらなくなった電子メールは自分で消す必要があります.

rmailによって電子メールを読んでいるときは, メールを読むための専用のコマンドがいくつか使えます.

ほとんどのコマンドは英文字 1文字です. 代表的なものを表 5.4に示します. これらのコマンドを実行す

る際には,�� ��Enter キーを押す必要は

�� ��ありません . mailコマンドとは操作系が違うので, 混乱しないように

して下さい.

なお, 電子メール送信, 返信および転送用のコマンド m, r, fは, それぞれ電子メールを出すためのウィンド

ウを準備して編集ができるようにするだけで, 実際の送信作業はおこないません. 編集が終わった電子メー

ルを送信するには, 先に電子メールを出す練習をしたときと同様に,

C-c C-c (5.17)

とします. 正常に送信できれば, 先ほどと同様にMuleのウィンドウの一番下の行に

Page 70: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

52 第 5章 電子メール

表 5.4: rmailの主要なコマンド�� ��画面のスクロール関係スペース 1画面分下方向にスクロールする.Delete 1画面分上方向にスクロールする.. 今読んでいる電子メールの先頭に戻る.�� ��データの保存と消去o 今読んでいる電子メールを rmailの形式で保存する.C-o 今読んでいる電子メールを UNIXで共通に使われる形式で保存する.d 今読んでいる電子メールを消す (rmailを終了するまでは「削除済み」という印がつ

けられるだけで, 実際には消去されない).u 「削除済み」の印がついた電子メールを復活させる.�� ��終了q rmailを終了する.�� ��複数の電子メールのあいだの移動n 1個後の電子メールに移動する (削除済みの印がついたものは除く).M-n 1個後の電子メールに移動する.p 1個前の電子メールに移動する (削除済みの印がついたものは除く).M-p 1個前の電子メールに移動する.�� ��電子メールの受信, 送信と返信g 新着の電子メールがあれば読み込む (rmail起動時に自動的に実行される).m 電子メールを出す (C-c C-cで送信).r 誰かから来た電子メールに返事を書く (C-c C-cで送信).C-c C-y (返事を書いているときに)もとの電子メールの内容を全文引用する.f 受け取った電子メールを他の人に転送する (C-c C-cで送信).�� ��その他t 電子メールの詳細な情報を表示する.? rmailのコマンド一覧を表示する.

Sending...done (5.18)

という表示が出ます.

これらのコマンドを忘れてしまったときには, rmailの画面で? と入力します. すると, 画面が 2分割され,

下半分にコマンド一覧が表示されます. ただし, ウィンドウが狭すぎるので, コマンドの一部しか画面に表

示されていません. また, 現在はカーソルが画面上半分にあり, 編集作業などはこちらのウィンドウ内だけ

でできるようになっています.

画面にある他のウィンドウ (下半分や上半分のウィンドウなど)に移動するには,

C-x o (5.19)

と入力します. すると, 1回 C-x oと入力するたびに, カーソルが隣のウィンドウに移動します. カーソルが

あるウィンドウについては, 通常の編集や移動などの操作がおこなえます. C-n, C-pなどを数回入力して,

下半分のウィンドウで移動がおこなえることを確認して下さい.

ヘルプのウィンドウを消したいときには, カーソルを rmailの方のウィンドウに移動させてから,

C-x 1 (5.20)

と入力して下さい.

練習: メールとヘルプメッセージの表示

では, これから,

• Muleの rmailモードを起動する

• ヘルプ画面を出す

Page 71: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

5.3. Muleを使った電子メールの読み書き 53

• ヘルプ画面に移動して画面をスクロールする

• ヘルプ画面を消す

という一連の操作をやってみることにします.

まずMuleを起動し, 続いて

M-x rmail�� ��←↩ (5.21)

と入力して下さい. すると, 図 5.3のようにMuleの rmail モードが起動されます.

未読の電子メールがある場合には, 画面には, 未読の電子メールのうち最も古いものが表示されます. す

べての電子メールが既読のときには, 既読の電子メールのうち最新のものが画面に表示されます.

次に, rmailのヘルプを画面に表示してみましょう. このためには,

? (5.22)

と入力します. すると, 図 5.4のようにMuleのフレームが上下 2個のウィンドウに分割され, 下半分のウィ

ンドウにヘルプが表示されます.

では, ヘルプの方のウィンドウに移動してみましょう.

C-x o (5.23)

と入力して下さい. ただし, C-xのあとの空白はみやすくするために入れたものであり, これを入力しては

いけません. 続いてもう 1回

C-x o

と入力してメール本文の方のウィンドウに戻って下さい.

今はもうヘルプメッセージには用はないので, このウィンドウを消すことにします. このためには,

C-x 1

と入力して下さい. ここに, 「1」は数字の 1です. 英文字の「l」と間違えないように注意して下さい.

図 5.3: Muleにおける rmailの起動

図 5.4: Muleにおける rmailのヘルプ画面

さいごに,

q

と入力して rmail モードを抜けておくことにします.

Page 72: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

54 第 5章 電子メール

練習: メールに返信する

続いて, 先ほどあなたが自分宛に出した電子メールに返事を書いてみることにします.

まず, 先ほどと同様に, まず, 以下の操作をやってみて下さい.

M-x rmail�� ��←↩ (5.24)

と入力して rmail モードを起動します.

次に, 電子メールに返信するためのコマンド「r」を入力して下さい.

r (5.25)

すると, 図 5.5のようにMuleのフレームが上下 2個のウィンドウに分割され, 下半分に返信メッセージ作成

用のウィンドウが開きます. また, カーソルは自動的に下半分のウィンドウに移動します. 次に, 先の電子

図 5.5: 電子メールに返事を書こうとしているところ

メールの中身を全文引用してから, 多少の文章を付け加えて, 送信することにします. 以下の操作をやって

みて下さい.

C-c C-y (5.26)

すると, 返信用の電子メール編集ウィンドウが広がって, 電子メールの引用部分が記号>> 付きで表示され

ます (引用記号は好みに応じて変更できます). このあとに適当な文章を追加して, 編集が終わったら

C-c C-c (5.27)

と入力して電子メールを送信して下さい.

送信が終わると, 先ほどの rmailの画面に戻ります.

q (5.28)

と入力して rmail を抜けて下さい.

5.4 電子メール利用上の注意

この節では, 電子メールを利用するときの注意事項を列挙しておきます.

• 電子メールは葉書のようなものです. 暗号化しなければ誰にでも読めます. ですから, クレジットカー

ドの番号などの機密性が高い情報を電子メールに記載してはいけません. 機密性が高い情報を緊急に

送るときには, FAXが比較的安全です.

Page 73: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

5.4. 電子メール利用上の注意 55

• 電子メールは送信先に確実に届くとは限りません. また, ネットワークの状態に応じて, 電子メールが

届くまでに時間がかかることがあります. 緊急性を要する懸案について電子メールで連絡を取るとき

には, 電子メールが届いているかどうかの確認が取れるようにしましょう.

• 1回送信した電子メールを取り消すことはできません. 電子メールの内容には十分注意して下さい.

• 他人から受け取った電子メールは私信です. 送り主の同意を得ないで公開することは許されません.

• インターネット詐欺に気を付けて下さい. 「10ドルの投資で 1000ドルが儲かる」といったたぐいの

電子メールが不特定多数の相手に送り付けられることは日常茶飯事です. これらに返事を書くことは,

それがいかなる内容のものあっても, 有害です. 読まずに消しましょう.

• デマに注意して下さい. 電子メールでよく流通するデマに, 偽ウイルス情報などがあります. デマと思

われる電子メールを受け取った場合, 無視するのがいちばんです. 送り主に抗議等の電子メールを書

いて, 当該メールアドレスを実際に利用している人がいるという情報を相手に与えてしまうことは得

策ではありません.

• 電子メールに添付されたファイルにはウイルスが含まれる危険があります. 信頼できる相手から送ら

れてきた電子メール以外のものの添付ファイルはすべて破棄するように心掛けて下さい. また, 電子

メールの送り主が信頼できる人物であっても, その人のコンピュータがウイルスに対して適切に保護

されているとは限りません. 送り主が信頼できる場合にも, 添付ファイルを開く前に, ウイルス対策ソ

フトウェアを利用してウイルス検索をしましょう.

• Microsoft Windows上で動作する電子メールソフトウェアには, セキュリティ対策が不十分なものが多

いです. 良心的な開発者は問題点が発見されると迅速に対策を施した最新版を公開します. Microsoft

Windows上で電子メールソフトウェアを使っている場合には, こまめなアップデートを心掛けましょ

う. なお, メーカーによっては周知のセキュリティホールを塞ぐ作業を怠ることがありますし, 対策が

遅いことも多いです. たとえば, Microsoft Windowsに標準で付いてくる電子メールソフトウェアで

あるOutlook Express には電子メールを開くだけで添付ファイルを実行しなくてもウイルスに感染す

ることがあるという重大な欠陥があり, 本項執筆時点 (2002年 5月 29日)では, 解消されていません.

• 不特定多数の相手にメールを送り付けないで下さい. 犯罪と認定される可能性があります.

• 以前, 東京大学の学生が, フランスの核実験に抗議する目的で, 「不特定多数の相手に抗議運動への参

加を呼び掛ける電子メールを転送してくれ」という依頼をネットワーク上でおこないました. 結果と

して, 鼠算式に増えていった電子メールがネットワークを飛び交い, メールサーバのダウンなどの深刻

な被害が発生しました. 無制限な電子メールの転送依頼を含む電子メールはすべて無条件で破棄して

下さい.

• htmlのタグやバイナリが含まれたデータを相手に送るべきではありません. 相手が電子メールを読ん

でいる環境によっては多大な迷惑をかけることがあります.

• 相手の電子メールの引用は最低限にとどめましょう.

• 電子メールを使ってほかの人と議論するとき, 文章力や理解力の不足などの理由で誤解が生じて感情

的なやりとりに発展してゆくことがよくあります. そもそも, 「相手の顔を見ずに文字だけで意思の

疎通をはかる」というのは, 多くの人にとっては不慣れな情報伝達手段です. また, 同じ内容文章でも,

相手の受け止め方は, その人の過去の経験や議論の文脈, あるいは文体などによって大幅に変わってき

ます. 「文字のみによる意思の疎通では通常の会話に比べて誤解が発生する危険が高い」ということ

を踏まえて, 文章を書くときには十分注意し, また相手に対していたずらに腹を立てたりしないよう留

意して下さい.

Page 74: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

56 第 5章 電子メール

5.5 文字コード, 漢字コード

ちょうどよい機会ですから, ここで「文字コード」という概念について説明しておきます.

コンピュータが扱うデータは本来は 1か 0かのいずれかの数がならんだだけのものです. そこには, 人間

が認識するような文字はありません. では, コンピュータはどのようにして人間が読める文字を取り扱って

いるのでしょうか?

このためには, 1か 0のビットの集まりを一定の数に区切って, その集まりに含まれる各々のビットパター

ン (1か 0がならんだパターン)を各文字に対応させる, ということがおこなわれています. データを区切る

大きさはふつう 8の倍数であり, 8ビットを 1バイトといいます. このような文字とビットパターン (あるい

はビットパターンに対応した数)との対応付けのことを文字コードといいます.

コンピュータで取り扱うデータが英文字だけの場合には, 表現しなければならない文字は英語の大文字と

小文字合計 52文字および各種の区切り記号 (コンマ「,」, ピリオド「.」など) だけです. ところで, 文字を

表現するための入れ物として 1バイト (8ビット)のかたまりを用意しておけば, このかたまりで 0から 255

までの 256通りの数値を表現できます. ですから, 1バイトのデータがあれば英文字を十分に表現できるこ

とになります.

英語を表現するための文字コードとして広く用いられているのが ASCIIコードと呼ばれる 8ビットの文

字コードです. ここに, ASCIIは American Standard Code for Information Interchange の略です. 英語を

表現するための文字コードには, これ以外に EBCDICおよび EBCDIKという文字コードがあります.

ところで, 日本語や中国語などの文字の数が多い言語をコンピュータで取り扱うためには, 1バイトのデー

タでは表現できる文字の種類が全然足りません. そこで, 複数バイトのデートを使ってコンピュータで文字

を表現する, という方法が取られました. 1個の文字を表現するために複数バイトの領域を必要とする文字

のことを多バイト文字といいます. また, 文字 1個あたりに複数バイトのデータを利用することで漢字など

が表現できるように拡張された文字コードのことを漢字コードといいます.

日本では, 不幸なことに, 漢字コードの作成は統一的になされたわけではなく, 複数の規格が並列で開発

されました. 現時点でもいまだに複数の規格が並立していて, ときに混乱をひきおこします. 現在おもに用

いられて漢字コードは, (いわゆる) JISコード, シフト JISコード (MS漢字コードとも呼ばれる) および日

本語 EUCコード (AT&T JISコード, UJISコードとも呼ばれる)の 3種類です. これとは別に, あらゆる

国の言語を統一的に表現すべく開発された Unicodeという規格もあります. このうち, 日本語 EUCは主に

UNIXで用いられ, シフト JISコードはWindows系のオペレーティングシステムでよく用いられています.

JISコードには, この文字コードで書かれたデータを電子メールでインターネットに流してもデータが破

損しないことが保証されているという特徴があります. これに対し, 日本語 EUCコードとシフト JISコー

ドでは, 歴史的な理由から, この文字コードで書かれたデータを電子メールでインターネットに流すとデー

タが破損することがあります. ですから, 電子メールの漢字コードには JISコードを使うことが推奨されて

います. ところで, JISコードには, コンピュータの内部で使うには必ずしも効率的ではないという問題点も

あります. ですから JISコードが万能というわけではありません.

Page 75: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

57

第6章 ネットニュース

6.1 ネットニュースとは何か

ネットニュースというのはコンピュータネットワークを利用した新聞あるいは雑誌のようなものです. た

だし, 専門の編集者のような人は存在しないという点が新聞や雑誌とは違います. ネットニュースを流れる

情報はすべて参加者から投稿された記事から成り立っています.

ネットニュースの記事は階層的に分類されています. 分類の最小単位をニュースグループと呼びます.

たとえば, 琉球大学の bsd系オペレーティングシステムに関する話題を取り扱うニュースグループの名

前は,

ura.comp.os.bsd

となっています. 最初の ura が琉球大学のニュースグループ全体の名前 (これを「トップレベルカテゴリ」

と呼びます). 2番目の comp はコンピュータに関する話題を取り扱うニュースグループ群を示し, 3番目の

os はオペレーティングシステムに関する話題を取り扱うニュースグループ群をあらわします.

ura

fj

japan

comp

ie

....

eee

....

....

os

....

bsd

dosv

linux

....

....

....

ÿÿÿÿÿÿÿÿÿÿ

ÿÿÿÿ

ÿÿÿÿ

図 6.1: ニュースグループの分類

ネットニュースを読むときには, ニュースサーバと呼ばれる, ネットニュースを提供しているコンピュー

タと通信する必要があります. この通信は, ネットニュースを読むためのソフトウェアが自動的にやってく

れます.

みなさんが読むネットニュースの記事はニュースサーバに保存されています. ここに保存されている記事

には学内から投稿されたものと世界中に散らばっている他のニュースサーバから転送されて来たものがあ

ります. これらの記事は一定期間保存された後で, 自動的に消去されます.

6.2 ローカルニュースとグローバルニュース

ネットニュースには, ローカルニュースとそうでないものがあります. ローカルニュースとは, 主に特定

の機関に所属する人だけが読み書きすることが想定されているネットニュースのことです. 例えば ura と

いうニュースグループでは主要な読者として琉球大学の学生および教職員が想定されています.

ニュースを読み書きするときには, 対象とする読者の範囲をよく考える必要があります. 琉球大学の中だ

けで通用する情報を世界中に流したりするのは不適切です.

Page 76: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

58 第 6章 ネットニュース

6.3 ネットニュースを読む

ネットニュースを読むためのソフトウェア (「ニュースリーダー」と呼ばれます) にはいろいろなものが

あるのですが, この講義では mnews というニュースリーダーを使うことにします. もちろん, みなさんが

mnews を使わなければならない理由は特にありません. コンピュータを使うのに慣れて, mnews 以外の

ニュースリーダーを使いたくなったら, 自由に変更して構いません.

よく使われる mnewsのコマンドを表 6.1にまとめておきます. より詳細なコマンドは, mnewsを起動し

た状態で

? (6.1)

と入力することで参照できます. コマンド一覧を消すときには,

q (6.2)

と入力します.

表 6.1: mnewsの主要なコマンドC-n, j,

�� ��↓ 下に移動

C-p, k,�� ��↑ 上に移動

N 未読記事を下に移動

P 未読記事を上に移動�� ��Space ,i 選択

q 元に戻る, 初期画面ではmnews終了

o 元に戻る, 初期画面でもmnewsを終了しない

Q mnewsを終了

? ヘルプの表示 (qで終了)

U 読まないニュースグループに印をつける

a ネットニュースに記事を投稿する

f ニューニュースの記事にフォローアップする (引用なし)

F ニューニュースの記事にフォローアップする (引用つき)

C 記事をキャンセルする

m 電子メールを出す

r 電子メールに返信する (引用なし)

R 電子メールに返信する (引用あり)

d 電子メールのあるメッセージに削除マークを付ける

u 電子メールのあるメッセージの削除マークを消す�� ��Delete 削除マークが付いた電子メールのメッセージを実際に消す

I 新着の電子メールを取り込む

では, さっそく mnews を起動しましょう. kterm を開いて,

mnews�� ��←↩ (6.3)

と入力して下さい. みなさんの環境では, mnewsは自動的に琉球大学のニュースサーバに接続するように

なっています. そして, 図 6.2のような画面があらわれます. この段階では, 画面にはトップレベルカテゴリ

のみが表示されています.

主要なトップレベルカテゴリの簡単な説明を表 6.2に示します. おそらく, みなさんにとって興味のある

話題が見付かるのは, fj, japan, uraの 3個のトップレベルカテゴリでしょう. なお, 画面の最後の 2行に表

示されているMAIL および RMAIL は電子メールを読み書きするためのものです. これについては, 後で

説明します.

角括弧の中の記号には, 表 6.3のような意味があります

Page 77: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.3. ネットニュースを読む 59

図 6.2: mnewsを起動したところ

表 6.2: 琉大で講読しているニュースグループのトップカテゴリの例

fj JUNETと呼ばれる学術ネットワークから派生したニュースグループ (主に日本

語). 日本で最も大きいニュースグループのひとつ.

japan 日本で最も大きいニュースグループのひとつ. fjと類似しているが, ニュースグ

ループの作成手続きなどが異なる.ura 琉球大学のニュースグループ.

表 6.3: mnews初期画面の角括弧の中の記号の意味[Y] ポスト可能

[N] ポスト不可

[M] モデレートグループ (検閲あり)

[B] ボード (電子掲示板)

[-] ニュースカテゴリ (下層部に移行しないとポストできない)

[+] メールグループ

Page 78: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

60 第 6章 ネットニュース

では, まず C-nを数回押して ura というところにカーソルを合わせて下さい. カーソルが合ったら�� ��Space

キーを押します. すると, 画面は例えば図 6.3 のようになります. ただし, 表示される数値などは人によって

違います.

次に, ura.eee にカーソルを合わせて�� ��Space キーを押して下さい. すると, 図 6.4のように, ura.eee以下の

ニュースグループ群が表示されます.

さらに続いて ura.eee.announce にカーソルを合わせて�� ��Space キーを押して下さい. 残りの記事数が多い

ときには, 画面の上から 2行目に,

ソートする記事数を入力して下さい:100 (6.4)

という表示が現れます. この 100 の部分は自動的にソートする最大記事数をあらわし, 自由に変更可能です.

ここではとりあえずこのままにして�� ��Enter キーを押して下さい.

ここまでの手順に間違いがなければ, 上記によって, 図 6.5のものと類似した記事選択画面が現れます. こ

こには, 既読/未読マーク, 記事番号, 記事が投稿された日付, 記事の行数, 投稿者のメールアドレス, 記事の

サブジェクト名 (題目)の一覧が表示されます.

記事選択画面は人によって, あるいは日によって違うので注意して下さい. 記事の番号は, 琉球大学の

ニュースサーバだけで意味を持ちます. ですから, 特定の記事を指示するときにこの番号を使うのは不適切

です. かわりに後述のMessage-IDを使って下さい. 記事の題目のところにときおり見受けられる Re: とい

う記号は「~に関して」という意味のラテン語です. この記号は英文手紙でよく使われます.

図 6.5の画面で読みたい記事にカーソルを合わせて�� ��Space キーを押すことで, 記事を読むことができます.

また, C-nを押すと画面が下の方にスクロールしますし, C-pを押すと画面が上の方にスクロールします. と

りあえず最初のものにカーソルが合っている状態で�� ��Enter キーを押しましょう. 記事は読めたでしょうか?

記事を読んでいるときの画面は図 6.6のようになります.

記事を読み終わったら, q を押して下さい.

q (6.5)

すると, 記事選択画面に戻ります. では, もう 1回

q (6.6)

と押して下さい. すると, ura.eee という分類に入っているニュースグループの選択画面に戻ることができ

ます. 図 6.2の mnews の初期画面で q と入力すると, mnewsを終了することができます.

これとは別に, 大文字の Q を入力すると, ただちにmnewsを終了することができます.

Q (6.7)

mnewsの終了手続をおこなうと, 画面の下から 2行目に

未読管理ファイルをセーブ中です。 (6.8)

という画面が出て, mnews は終了します.

6.4 署名

あなたのホームディレクトリに

.signature

というファイルを用意しておくと, あなたが書く記事や電子メールにあなたの署名を付けることができます.

この署名は, あってもなくてもよいものです. 担当教官の一人である半塲が使っている署名を以下に例とし

て示しましょう.

__

Shigeru Hanba

Faculty of Engineering, University of the Ryukyus

email: [email protected]

Page 79: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.4. 署名 61

図 6.3: mnewsでカテゴリ ura を開いたところ図 6.4: mnewsでカテゴリ ura.eee を開いたところ

読み終った記事には印がつく

記事番号

記事が投稿された日付

記事の行数

投稿者のメールアドレス

記事のサブジェクト名

図 6.5: mnewsでニュースグループ ura.eee.announce

を開いたところ

図 6.6: mnewsで記事を読んでいるところ

29 04/14 15 kyan@augusta RE: testeeest

マーク: すでに読んだ記事には R という印が付く.

この記事に情報工学科のニュースサーバが付けた番号.

この記事が投稿された日付.

この記事の行の数

この記事を投稿した人の電子メールアドレス

記事の題目

図 6.7: mnews の記事選択画面の意味

Page 80: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

62 第 6章 ネットニュース

上の例では署名は英語のみになっていますが, 日本語を入れても構いません. また, 英文字や日本語の文字

を使って絵のように見える記号を書く人もいます. 使ってはいけないものは, 機種依存文字 (後述)および画

像です. また, 署名はすべての記事や電子メールに付くものですから, あまり長いと読む人をうんざりさせ

ます. せいぜい数行にしておきましょう.

6.5 ネットニュースに記事を書く

6.5.1 記事を書くときの注意

この節では, ネットニュースに記事を投稿するにあたって注意すべきことをまとめておきます.

投稿する前にニュースグループの雰囲気をつかもう あるニュースグループを読み始めたその日にいきなり

記事を投稿するのは, 十分に下調べをした場合以外には, それほど賢明なやり方とはいえません. その

ニュースグループの記事を 1箇月くらいは読んでみて, ニュースグループの雰囲気がわかってから投

稿しましょう.

まずテスト 新しいことをやってみるときには, 失敗がつきものです. ですから, 本当に投稿したい記事を投

稿するまえに, ローカルニュースにあるテスト専用のニュースグループでテストをしましょう. テス

トをするときにローカルなニュースグループを使うというのは大事なことです. 世界中にテスト記事

を流すのは, 賢い選択とはいえません. 例えば, 琉球大学では ura.test という ニュースグループをテ

スト投稿のために使うことができます.

適切なニュースグループを選ぼう ニュースグループで取り扱うべき話題はニュースグループごとに決まっ

ています. あなたが投稿しようとしている記事にふさわしいニュースグループを選びましょう.

ニュースグループの規則に従おう それぞれのニュースグループには, 固有のきまりがあります (例えば商用

利用禁止など). 規則に従いましょう.

読者が多数いることを考えよう ネットニュースというのは, 1対多のメディアです. あなたが ura のニュー

スグループに投稿した場合, 琉球大学の関係者以外でその記事を読む人はそれほど多くないでしょう.

でも, あなたが fj や japan に投稿した場合は, 場合によっては数万人以上の人がそれを読む可能性が

あります.

個人的な雑談や議論は電子メールで ネットニュースで他人と情報のやりとりをしていると, いつのまにか

雑談が始まっていたり第 3者にはまったく興味がないような議論になったりすることが往々にしてあ

ります. 個人的な会話には電子メールを使うべきです. ネットニュースを使うのは適切でありません.

簡潔に ネットニュースの記事は, 世界中のコンピュータに転送されます. これを保存するために, 世界各地

のコンピュータの記憶装置が使用されます. 記憶装置は有限な資源です. 無駄使いすべきではありま

せん. 資源の無駄使いをしないためには, 記事を可能な限り簡潔に書くのが良いです.

記事の重複を避けよう ネットニュースで何か質問をしようと思ったら, その前にそのニュースグループの

過去の記事を読んでみて, 過去に似たような質問をしている人がいないかどうか調べましょう. また,

情報を流す場合には, その情報がすでに大多数の人にとって周知であるかどうかをよく考えましょう.

冷静に ネットニュースでは, とても頻繁に喧嘩がおこります. 電子メールでも同様です. 喧嘩に巻き込まれ

たくなかったら, とにかく冷静になることです. 記事を書いたら, すぐに投稿せずに, 1日間をおいて,

もう 1回自分が書いた記事を読み直すべきです. また, 他人を論破する試みは大抵うまくいきません.

それから, ネットワークには, 壊れてしまった人がたくさんいます. 壊れた人を相手にするのは時間の

無駄です.

他人の記事の引用 ネットニュースの記事には, Message-IDという, その記事を一意的に識別するための番

号が付きます. ですから, 他人の記事を引用するときには, このMessage-IDを示せば, 本当は十分で

す. でも, 他人と議論をしている場合には, 他人の文章を多少引用すると記事が書きやすくなることも

Page 81: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.5. ネットニュースに記事を書く 63

あります. このような場合には, 引用は最小限にしましょう. それから, 引用する場合には, 引用部分

の著者が誰であるかがすべての読者に完全にわかるように記述する必要があります.

文献などの引用 文献などを引用するときには, 必ず出典を明示して下さい. 引用の際に必要な情報は, 例え

ば書籍なら 著者, 題目, 出版社, 出版年, 新聞なら紙名, 日付, ページです.

必ず情報源を明示しよう 情報を流すときには, 情報源を明示しましょう. 情報源が明示されていない記事

はデマの発生源になりやすいです.

テキストデータのみで記事を書くこと Netscape Communicatorや Internet Explorerが普及したため,ネッ

トニュースに画像を使う人が増えて来ました. Netscape Communicator や Internet Explorer では,

これらの画像は綺麗に表示されます. ですが, 多くの人は画像が表示できないソフトウェアでネット

ニュースを読んでいます. これらの人には, 画像データは文字化けした無意味な記号の羅列に見えま

す. すべての読者に確実に読んでもらえるのは, テキストデータ (ふつうの文字)です. 記事を書くと

きには, テキストデータだけを使いましょう.

機種依存文字を使わない コンピュータによっては, 「機種依存文字」なるものが使えてしまうものがあり

ます. これらは, 例えば, いわゆる半角カナ, ローマ数字 (I, II, III)用に特別な記号が用意されている

場合, 株式会社のマーク (括弧の中に「株」という漢字)などです. これらを使うと何が都合が悪いか

というと, 「あなたと同じコンピュータを使っている人以外には, 何が書いてあるか読めない」ので

す. 世界中のパソコンユーザの中で, あなたと同じ機種のパソコンを使っている人の比率はどのくら

いでしょうか?

では, 琉大のテスト投稿用のニュースグループである ura.test にテスト記事を投稿することにしましょう.

6.5.2 ステップ 1:ニュースグループの選択

まず先と同様の手順でニュースグループ ura.test のところまで移動して

a (6.9)

と入力して下さい. すると, 画面の最上部に

ニュースグループを入力して下さい:ura.test (6.10)

という表示が出ます (図 6.8のような表示が出ます). ここに表示されているニュースグループがこれから

記事を投稿しようとしているニュースグループと一致している場合には�� ��Enter キーを押して下さい. 一方,

ニュースグループが希望するものと違う場合にはキーボードを使ってニュースグループ名を修正してから�� ��Enter キーを押して下さい.

6.5.3 ステップ 2: 記事を書く

上記の手順が終わると, 画面上部に

題名 (subject)を入力して下さい: (6.11)

という表示が出ます. 適切な題目を入力して下さい. この題目は, 簡潔でかつ記事の内容をよく表している

ものが望ましいです. ここでは,

EE Pro_kiso, test by d*****�� ��←↩ (6.12)

((d*****)のところはあなたのログイン名) と入力することにします. 入力が終わって, 画面が (例えば)

題名 (subject)を入力して下さい:EE pro_kiso, test by hanba (6.13)

のような状態になったら,�� ��Enter キーを押しましょう. すると,

Page 82: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

64 第 6章 ネットニュース

配布範囲 (distribution)を入力して下さい: (6.14)

というメッセージが画面最上部に出ます. ここを local とすると記事の流通範囲はローカル (琉球大学内)と

なり, 空欄にすると流通範囲は無制限になります. local 以外の記述には意味はありません. これは空欄のま

までも構わないのですが, ここでは local を指定することにします. 画面を

配布範囲 (distribution)を入力して下さい:local (6.15)

とう状態にして�� ��Enter キーを押して下さい.

ここまでで記事を書くための準備は終わり, 図 6.11のように, ニュース記事編集画面が現れます. ニュー

ス記事の編集には, 今まで使っていた Mule が利用されます 1

では,

--text follows this line--

となっている行より下の部分に記事を書いて下さい. ここでは, 記事の内容を

学籍番号: あなたの学籍番号

氏名 : あなたの名前

これはプログラミング基礎の講義のためのテスト投稿です.

(6.16)

という内容にします. 「あなたの学籍番号」と「あなたの名前」のところはあなた自身の学籍番号と名前で

置き換えて下さい.

6.5.4 ステップ 3: 記事を投稿する

記事を書き終わったら

C-x C-s (6.17)

C-x C-c

と入力して, 今書いた文章を保存してから Mule を終了しましょう. ここまでで記事の編集作業は終了です.

この段階で, 画面は図 6.12のような状態になります.

ここで

q (6.18)

と入力すると, 画面最下部に

記事を投稿してよろしいですか? [Y/N/E(dit)/M(ime)]:

という確認画面が出ます (図 6.13). yを押すと送信, nを押すと取り消し, eを押すとメール再編集になりま

す. 間違いがなければ,

y (6.19)

と入力しましょう.

記事の投稿が終わったら, qを数回押すか Qを押して mnews を抜けます.

最後に 1点だけ重要な注意を述べます.

ニュースに投稿した記事は, すぐにニュースを読むときの選択項目に現れる (読めるようになる)

とは限りません.

ニュースサーバの状態にもよりますが, ローカルニュースでも投稿した記事が実際に読めるようになるまで

数分かかるのがふつうですし, ローカルでないニュースグループでは, 記事が実際に読めるようになるまで

数日かかることも珍しくありません. 初心者がよくやる間違いは,

1実は, メッセージ編集のために起動されるエディタは, 環境変数 EDITOR で設定されています. ですから, この環境変数の内容を変更すると, 起動するエディタを Mule 以外のものに変更することもできます.

Page 83: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.5. ネットニュースに記事を書く 65

図 6.8: 記事を投稿するニュースグループの選択 図 6.9: 記事の題目の入力

図 6.10: 記事の配布範囲の指定図 6.11: 記事の編集画面

図 6.12: 記事の編集が終了したところ 図 6.13: 記事投稿の確認

Page 84: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

66 第 6章 ネットニュース

自分が投稿した記事がすぐに読めないので, 投稿に失敗したものと誤解し, 同じ記事を何個も投

稿する

というものです. これは, とても迷惑な間違いです. 絶対にやらないようにしましょう. 記事を投稿したら

しばらく待つというのは, 大変重要なことです.

6.6 テスト投稿した記事のチェック

では, しばらく待ってから, 先ほど投稿したニュースの記事を読んでみましょう. mnews の画面で

g (6.20)

と入力して新着ニュースを取り込んで下さい. 続いて, ura.test に移動し, あなたの投稿した記事があれば開

いて下さい.

これから,この投稿した記事に問題がないかどうかチェックするわけですが,実はこの状態では記事をチェッ

クするために必要な情報がすべて表示されているわけではありません. 必要な情報 (ヘッダ) をすべて表示

するには,

v (6.21)

と入力します.

コマンド vを入力する前の状態が図 6.14に, 入力した後の状態が図 6.15に示されています. 図 6.15で表

図 6.14: 記事をふつうに読んでいるところ 図 6.15: 記事のヘッダをすべて表示したところ

示されているヘッダの情報に関してチェックすべき点を以下に列挙します.

From: あなたの電子メールアドレス (d*****@edu.eee.u-ryukyu.ac.jp)が正しく入力されているでしょ

うか?

Message-ID: この部分が, 世界全体であなたの記事を一意的に識別するための番号です.

<[email protected]>のように, 何か暗号のような記号がついていて, その後

に@マークがあって, ニュースサーバの完全な名前がついているでしょうか?

DATE: 日付および時刻です. ここには, 日本時間ではなくグリニッジ標準時が入ります. グリニッジ標準

時は今の日本の時刻の 9時間前です. 正しいでしょうか?

本文: 文字化けしていないでしょうか?

なお, テスト用のニュースグループに限り, あなたが投稿した記事の直後に, ニュースシステムによってあ

なたの投稿した記事に形式上の問題がなかったかどうかが検査された結果の記事が自動的に投稿されます.

読んでみて下さい.

Page 85: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.7. 記事のキャンセル 67

6.7 記事のキャンセル

ネットニュースに投稿された記事は読者全体の共有財産です. ですから, むやみに消すべきではありませ

ん. しかし, 投稿に失敗して変な記事を出してしまった場合や, とんでもない誤報を流してしまった場合に

は, 自分が投稿した記事を取り消したいこともあるでしょう. このようなときには, C というコマンドを使っ

て記事をキャンセルします. ただし, キャンセルできるのはあなた自身が投稿した記事だけです.

記事をキャンセルする方法は,

記事選択画面であなたが投稿したキャンセルしたい記事にカーソルを合わせて C (大文字の C)

を押す

とういものです. すると, 画面下部にキャンセルを確認するメッセージが出ます. キャンセルしてよいとき

には

y (6.22)

と入力し, キャンセルしたくないときには

n (6.23)

と入力して下さい.

6.8 今読んでいる記事に対する続報 (Followup)を書く

今読んでいる記事に対する続報を書くときには, 記事を読んでいる画面で

f (6.24)

あるいは

F (6.25)

と入力します. f はもと記事の引用をしない場合, Fはもと記事の引用をする場合に使います. これ以降の手

順は新しい記事を投稿するときに準じます.

6.9 mnewsを使った電子メールの読み書き

mnewsには電子メールを読み書きする機能もあります. ここでは, この機能について簡単に説明します.

6.9.1 電子メールを出す

mnewsで電子メールを出すには, コマンド m を使います. では, さっそく使ってみましょう.

まず, mnewsが起動している状態で,

m (6.26)

と入力して下さい. すると, 画面上部に

主宛先 (to)を入力して下さい: (6.27)

というメッセージが出ます. ここでは再び宛先はあなた自身にしておきます. 宛先を入力して�� ��Enter キーを

押しましょう (図 6.16).

上記の操作をおこなうと, 次に画面上部に

コピー宛先 (cc)を入力して下さい: (6.28)

Page 86: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

68 第 6章 ネットニュース

という表示が出ます. ここに, ccというのは英文手紙の用語の carbon copy の略です. この部分には, 電子

メールのメッセージのそのままのコピーを送る相手を指定します. 電子メールで送信されたメッセージの内

容を確認するために ccに自分自身の電子メールアドレスを指定することも多いようです. ここでは, とりあ

えず空欄のままにしておいて�� ��Enter キーを押すことにします (図 6.17).

次は電子メールの題目の入力です.

題名 (subject)を入力して下さい:

というメッセージが画面上部に出るので, 適当な題目を入力しましょう. 題目には日本語も使えます (図

6.18).

以上の操作が終わるとMuleが起動し, 電子メールの本文を編集する画面になります. 電子メールの本文

を書くべき箇所は,

--text follows this line- (6.29)

となっている部分より下です. また, 宛先 (To:)や Cc:等が間違っている場合にはここで訂正できます. 適当

に本文を入力してから (図 6.19,

C-x C-s (6.30)

C-x C-c

と入力してMuleを終了して下さい.

ニュースを投稿する場合と同様に, 上記の操作が終わると電子メールの内容の確認画面になります (図

6.20). ここで,

q (6.31)

と入力すると, 画面下部の白黒反転した部分に

記事を送信してよろしいですか [y/n/e(dit)/m(ime)]:? (6.32)

という表示が出ます (図 6.21). ここで

y (6.33)

と入力すると, 電子メールは送信され, mnewsの初期画面に戻ります.

n (6.34)

と入力すると先に編集した電子メールは破棄され, mnewsの初期画面に戻ります. また,

e (6.35)

と入力すると電子メールを編集しなおすことができます.

6.9.2 電子メールを読む

電子メールを読むときには, mailコマンドと互換性のある形式 (mbox)で既読メールを保存する MAIL と

Mule の rmail と互換性のある形式 (RMAIL)で既読メールを保存する RMAIL の 2種類が使えます. mbox

と RMAIL には互換性がないことに注意して下さい. ですから, 電子メールを読むときには, どちらか一方

の形式を使うように決めておかないと, あとで混乱することになります. ふだん mail コマンドを使うこと

に決めている人は MAIL 形式, ふだん Mule の rmail を使うことに決めている人は RMAIL 形式を使うと

よいでしょう.

Page 87: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.9. mnewsを使った電子メールの読み書き 69

図 6.16: mnews における電子メールの宛先の

指定図 6.17: mnewsにおける ccの指定

図 6.18: mnews における電子メールの題目の

指定図 6.19: mnewsにおける電子メール本文の編集

図 6.20: mnewsにおける電子メール本文の確認図 6.21: mnewsで電子メールを送信しようとし

ているところ

Page 88: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

70 第 6章 ネットニュース

MAIL形式

ここでは, まずMAIL形式を使ってみるこにします. mnewsの初期画面で C-nと数回入力して

[+] MAIL (6.36)

と書かれている部分にカーソルを合わせ,�� ��Space キーを押して下さい. すると, 図 6.22のような画面があら

われます. ここで注意してほしいのは, この画面にはすでに取得済みの電子メールの一覧が表示されるだけ

だということです. 新着メールを取り込むには, 自分でコマンドを入力する必要があります. このためのコ

マンドが I です.

I (6.37)

と入力すると, 表示が図 6.22から図 6.23のように切り換わり, 新着の電子メールも一覧に表示されます.

電子メールの本文を読むためには, ニュースと同じように, 読みたいメッセージの番号にカーソルを合わ

せて�� ��Space キーを押します. また, 先の状態に戻るには qと入力します.

電子メールを読んでいるときに有効なコマンドも表 6.1に含まれています. また, 先に示したように,

? (6.38)

と入力することでコマンド一覧が表示できます. コマンド一覧は

q

と入力すれば消せるのも先に述べた通りです.

電子メールを長いあいだ使っていると, あなたのホームディレクトリには古い電子メールがどんどんた

まってゆきます. コンピュータのハードディスクは有限な大きさの学科の共有財産ですから, 資源を有効に

利用するために, いらない電子メールを削除する必要があります. ところで, mnewsでいらない電子メール

を消す方法には, ちょっと癖があります. いらない電子メールのメッセージの番号のところで

d (6.39)

と入力すると, そのメッセージには削除マーク (「これかられを消すよ」という印) がつけられるのですが,

実際には消去はおこなわれません. そして, この状態で mnews を終了すると, いらないメッセージの消去に

関する操作が何もおこなわれずに mnews は終了します. そして, mnews を再起動すると, 消したつもりに

なっていたメッセージはすべて残っている, ということになります.

では, 実際にメッセージを消すにはどうしたらよいでしょうか? このためには,

d

と入力していくつかのメッセージに削除マークをつけたあとで,�� ��Delete (6.40)

と入力します. すると, 画面の下部に

マークされた記事を全て削除してよろしいですか [y/n]?

というメッセージが出ます. ここで

y

と入力すれば削除が実行され,

n

と入力すれば削除はおこなわれません.

なお,

u (6.41)

と入力することで, メッセージに付けられた削除マークを取り消すことができます.

Page 89: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

6.10. mnewsのマニュアル 71

図 6.22: mnewsのMAILモードでのメッセージ

一覧表示 (1)

図 6.23: mnewsで電子メールを送信しようとし

ているところ

図 6.24: mnewsで電子メールを削除しようとし

ているところ

RMAIL形式

RMAIL形式とMAIL形式の違いはデータの保存形式だけで, それ以外の使い方は同じです. RMAIL形

式を使うときには, mnewsの初期画面で C-nと数回入力して

[+] RMAIL (6.42)

と書かれている部分にカーソルを合わせ,�� ��Space キーを押して下さい. それ以降の操作法は上と完全に同一

です.

mnewsで電子メールだけを読む

mnewsで電子メールだけを読みたいときには,

mnews␣-m�� ��←↩ (6.43)

と入力します. すると, ニュースの記事は表示されなくなります. ニュースサーバのトラブルで mnews が

起動しないというトラブルは珍しいことではないのですが, そのような場合も, (6.9.2)のようにすれば, 電

子メールだけは読むことができます.

6.10 mnewsのマニュアル

kterm のウィンドウで

jman␣mnews�� ��←↩ (6.44)

と入力することで, mnewsの使い方を読むことができます. また, 先ほども見たように, mnewsの画面で

?

Page 90: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

72 第 6章 ネットニュース

と入力することでmnewsのコマンド一覧を知ることができます. このヘルプ画面からは

q (6.45)

で抜けることができます. 各自で試してみましょう.

Page 91: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

73

第7章 基本コマンド(3)

まず最初に, 今回の講義で新しく学ぶコマンドをまとめておきます.

表 7.1: 今回の講義で学ぶコマンド名前 機能

passwd パスワードの変更

chfn ユーザ情報の変更

env 環境変数の表示

echo 文字列などの表示

ps 稼働中のプロセスを表示

fg プロセスをフォアグラウンドで再開

bg プロセスをバックグラウンドで再開

kill プロセスを殺す

egrep 特定の文字列を探す

jman オンラインマニュアルを参照 (日本語)

man オンラインマニュアルを参照 (英語)

df ディスク残量の表示

du ディスク消費量の表示

tar 複数のファイルをまとめる

mcopy Windowsフォーマットのフロッピー

ディスクにデータを保存する

compress ファイルを圧縮する

uncompress 圧縮されたファイルを展開する

gzip ファイルを圧縮する

gunzip 圧縮されたファイルを展開する

uuencode バイナリデータをテキストデータに変換する

uudecode テキストデータをバイナリデータに変換する

script 作業内容をファイルに記録する

7.1 パスワードおよびユーザ情報の変更

7.1.1 passwd:パスワードを変更する

みなさんのログインアカウントには管理者が設定したパスワードが割り振られていました. このパスワー

ドは乱数によって生成されたものなので, みなさんにとって必ずしも覚えやすいものではありません. です

から, パスワードをもう少し覚えやすいものに変更したいと考えている人もいるでしょう. では, パスワー

ドを変更するにはどうしたらよいでしょうか.

パスワードを変更するには, passwd というコマンドを使います. では, このコマンドの使ってみましょう.

まず,

passwd�� ��←↩ (7.1)

Page 92: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

74 第 7章 基本コマンド (3)

と入力して下さい. すると, まず現在のパスワードの入力を促すメッセージが画面に表示されます (図 7.1).

正しいパスワードを入力すると, 続いて新しいパスワードの入力を促すメッセージが画面に表示されます

(図 7.2). パスワードの入力ミスによりログインができなくなってしまうことを防ぐために, 同じパスワード

を 2回入力することが要求されます. パスワードの変更が終わると,

NIS password has been changed on serv3.eee.u-ryukyu.ac.jp

というメッセージが出て, パスワードの変更が終了します.

図 7.1: コマンド passwdを起動したところ

図 7.2: パスワードの変更が終わったところ

さて, ここで, パスワードとして使える文字に関する制限と, どのようなパスワードが「良い」パスワード

で, どのようなパスワードが「悪い」パスワードであるかについて説明しておきましょう.

パスワードに使える文字は, アルファベットの大文字と小文字および数字, その他 ! や # などの記号で,

長さは 8文字までです. 日本語は使えないので注意して下さい. また, パスワードが短かすぎるのも危険で

す. 最低でも 7文字にすべきです.

パスワードを変更する場合には, 他人に容易に想像できてしまうようなものを付けてはいけません. 最悪

の選択は, 自分の名前, 英単語そのままなどです. 逆に, 良いパスワードは, 英文字の大文字と小文字および

数字を適当に含んだものです. また, 覚えやすい (パスワードを書いた紙を持ち歩く必要がない) ことも重要

です. 以下にパスワードの例を示します. ただし, このパスワードの例は, ここに書いた段階で, すでに悪い

パスワードになってしまっています (他人も知っているから). このパスワードを絶対に使わないようにして

下さい.

suGEne61 (「すげーねむい」と覚える) (7.2)

この学科の教育用コンピュータでは, Network Information System(NIS) という UNIXに標準的なユー

ザ管理システムを使って学生のパスワードを 1台のコンピュータで集中管理しています. NISでパスワー

ドを変更するためには伝統的には yppasswd というコマンドが使われていたのですが, この機能は現在では

コマンド passwd に統合されています.

Page 93: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.2. ディレクトリの構成 75

7.1.2 chfn: ユーザ情報を変更する

chfn というコマンドを使うと, ユーザのログインシェルや実名その他の個人情報を入力したり変更したり

することができます. ここに, ログインシェルというのは, みなさんがコンピュータにログインしたときに

起動する, みなさんとコンピュータの仲立ちをするプログラムのことです. 詳しくは第 12.1節を参照して下

さい.

初期状態では, みなさんのログインシェルは csh という名前のものに設定されています.

では, chfn を実行してみましょう.

chfn�� ��←↩ (7.3)

と入力すると, Mule が自動的に起動し, ユーザ情報を変更する画面になります (図 7.3). みなさんの初期設

図 7.3: chfnを起動したところ

定では, Full Name という欄にみなさんのユーザアカウントが入っていますが, ここには本来は実名を記入

すべきです.

Full Name: d99999 (7.4)

のようになっている部分を, 例えば

Full Name: Yukichi FUKUZAWA (7.5)

などのように実名に変更して下さい.

変更が終わったら, 通常通り

C-x C-s (7.6)

C-x C-c

と入力して Mule を終了して下さい. すると,

Changing NIS information for d99999 on serv3.eee.u-ryukyu.ac.jp

Please enter password:(7.7)

などのような表示が出ます. 正しいパスワードを入力すると,

chfn: NIS information changed on host serv3.eee.u-ryukyu.ac.jp (7.8)

という文字列が画面に表示されて, chfn は終了します.

Page 94: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

76 第 7章 基本コマンド (3)

/ bin

etc

sbin

tmp

usr

var

home X11R6

bin

include

lib

local

sbin

share

bin

inlude

lib

bin

include

lib

share

図 7.4: ディレクトリ構成

7.2 ディレクトリの構成

UNIXでは, 階層的なディレクトリの構成が取られます. 図 7.4に我々のコンピュータシステムのディレ

クトリ構成の一部を示します.

みなさんは, コンピュータを終了するときに

/sbin/shutdown␣-p␣now�� ��←↩ (7.9)

と入力することを覚えているでしょう. 上記のコマンドは,

/sbin というディレクトリにある shutdown というコマンドを実行する

という意味になります.

7.2.1 環境変数PATH

さて, みなさんがよく使う コマンド kterm は, /usr/X11R6/bin というディレクトリにあります. でも,

わざわざ

/usr/X11R6/bin/kterm�� ��←↩ (7.10)

と入力しなくても,

kterm�� ��←↩ (7.11)

と入力するだけで kterm を起動することができました. コマンド shutdown とコマンド kterm の違いは何

でしょうか?

この違いは PATHという環境変数の内容から来ています.

ここに, 環境変数とは, みなさんがコンピュータをどのような状態で利用できるかを制御するための変数

です. これらの初期値はみなさんのホームディレクトリにある.login および .cshrc というファイルに含まれ

ます.

環境変数にはいろいろな物があるのですが, その中のひとつである環境変数 PATHは, コマンドを検索す

るためのディレクトリの一覧を保持しています. 「どのディレクトリを探せばよいか」という「道」をあら

わしているために, PATHという名前が付いています.

7.2.2 env: 環境変数の一覧を表示する

現在設定されている環境変数をすべて表示するには, env というコマンドを使います.

では早速このコマンドを使ってみましょう. kterm のウィンドウの中で,

env�� ��←↩ (7.12)

Page 95: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.2. ディレクトリの構成 77

図 7.5: コマンド envを実行したところ

と入力して下さい. すると, 例えば図 7.5 のような表示が得られます. 環境変数の種類がとても多くて内容

が 1画面にはおさまり切らなかったので, 最後の部分だけが画面に表示されています.

このような場合に表示内容が画面から消えてしまうのを防ぐ方法は今回の講義の後の方で説明します.

7.2.3 echo: 文字列などの内容を表示にする

次に, 環境変数 PATHの中身だけを表示するために, 文字列などの内容を画面に表示するためのコマンド

である echo を使ってみることにします.

kterm のウィンドウの中で,

echo␣$PATH�� ��←↩ (7.13)

と入力して下さい. PATHの前に記号「$」を付けるのを忘れないようにして下さい. 結果は図 7.6のよう

になります. 少し見にくいですが, いくつかの要素がコロン (:)で区切られています. これが環境変数 PATH

図 7.6: 環境変数 PATHの内容

の中身です. 上の一覧に含まれるディレクトリ (/bin, /usr/bin, local/bin/bin, /usr/X11R6/binなど)にあ

るコマンドについては, いちいちディレクトリを指定する必要はありません. PATHの中に /sbin が含まれ

ていないことも確認して下さい.

次に,

echo␣PATH�� ��←↩ (7.14)

と入力してみて下さい (記号「$」が省かれていることに注意). すると, こんどは画面は図 7.7のようになり

ます. この挙動の違いについてはこの講義の後の方で機会があれば説明します. ここでは,

• $PATHのように最初に記号「$」が付いているものは, その変数の内容に置き換えられる

Page 96: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

78 第 7章 基本コマンド (3)

図 7.7: echo PATHとしたときの表示

• PATHのように最初に記号「$」がないものはそのまま残る

というふうに覚えておいて下さい.

7.3 プロセスやジョブに関するコマンド

7.3.1 プロセス, ジョブ

まず最初に, 言葉の定義をしておきましょう.

コンピュータで実際に動いている途中のプログラムのことを「プロセス」と呼びます. また, 特定の仕事

をこなすための一連のプログラムの流れのことを「ジョブ」と呼びます.

さて, UNIXの特徴ひとつに, マルチプロセスというものがあります. これは, 1台のコンピュータで同時

に複数のプロセスを実行できるという機能のことです.

マルチプロセスの機能を持っているオペレーティングシステムを使っている場合は, 例えば数値計算のプ

ログラム実行しながら電子メールを読むというよう使い方ができます. これに対し, マルチプロセスの機能

を持っていないオペレーティングシステムでは, コンピュータにある仕事をさせたときには, コンピュータ

は完全にその仕事にかかりっきりになってしまい, 他のことは何もできなくなります.

コンピュータには, ふつう 1台から数台の CPU (中央演算装置, プログラムを順番に実行してゆく回路の

こと)が塔載されています. CPUが 1台しかないコンピュータでマルチプロセス処理をおこなうときには,

実際には処理をしてくれる CPUは 1台しかないわけですから, いろいろなプロセスが交代で CPUを使う

ことにより, マルチプロセス機能は見掛けの上だけで実現されます. あるプロセスが一定時間 CPUを使う

と, 他のプロセスが CPUを横取りしてしまいます. ただし, CPUの処理能力が十分に高ければ, コンピュー

タを使っている人には, 実際にマルチプロセス機能が実現されているように見えます. これに対し, CPUが

複数塔載されているコンピュータでマルチプロセス処理をおこなうときには, 実際に複数のプロセスが同時

に実行されます.

7.3.2 ps: 稼働中のプロセスの表示

プロセスの一覧を表示してその状態を知るためのコマンドが ps です.

ps は 英単語 process の略です.

では, さっそくこのコマンドを使ってみましょう. ktermのウィンドウの中で,

ps�� ��←↩ (7.15)

と入力して下さい. すると, 画面には例えば図 7.8のような情報が表示されます. 表示される内容は人によっ

て違います. 図 7.8とは同じにならないはずなので注意して下さい. 各プロセスはプロセス番号という番号

を持ち, かつ状況に応じていろいろな状態になります. ここにプロセス番号とは, 実行すべきプロセスにオ

ペレーティングシステムが割り振る番号のことをいいます.

Page 97: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.3. プロセスやジョブに関するコマンド 79

図 7.8: コマンド psの出力の例

PID TT STAT TIME COMMAND248 p5 R+ 0:00.22 ps

プロセス番号

制御端末名

プロセスの状態

そのプロセスが実行された時間

実行されているコマンド名

図 7.9: コマンド psの出力の見方

図 7.8の見方を図 7.9に示します.

続いて, プロセスの状態について説明しましょう. プロセスの状態には, R (実行可能) , T (停止中) , D

(休眠中かつ中断付加) , S (休眠中) , Z (ゾンビ) , W (常駐ページなし) , N (正のナイス値) があります. こ

れらが組み合わせて表示されることもあります. これらの詳細の大部分についてはここでは説明しません

が, このうち, Z(ゾンビ) についてのみ若干注意しておきます.

ゾンビという言葉のもともとの意味は「生ける死体」ですが, UNIXの世界におけるゾンビとは, 絶対に

発生しないできごとを待っているために永遠に消滅することのないプロセスを表します. ゾンビプロセスは

何の役にも立ちませんし, コンピュータの処理能力を浪費します. ゾンビを見付けたら, 即座に強制終了し

ましょう. ゾンビの強制終了の方法は後で説明します.

コマンド ps は, 通常はあなた自身に関係したプロセスの情報のみを表示します. 一方で, いろいろなオプ

ションを使うことによって, コマンド ps が出力する情報を変化させることができます. よく使われるオプ

ションを表 7.2に示します. これらを組み合わせて使うこともできます.

表 7.2: コマンド ps のよく使われるオプションオプション 機能

a すべてのプロセスの情報を表示

u 各プロセスのユーザ名と開始時刻を表示

x 制御端末を持たないプロセスの情報も表示

w 1行あたりに表示される情報の量を増やす

ps␣auxw�� ��←↩ (7.16)

と入力してみて下さい. この操作によって, 現時点において動いているすべてのプロセスの一覧を見ること

ができます.

7.3.3 バックグラウンドジョブとフォアグラウンドジョブ

バックグラウンドジョブとフォアグラウンドジョブという考え方を理解するために, まず例題をやってみ

ましょう.

ktermのウィンドウの中で,

mule␣&�� ��←↩ (7.17)

と入力して下さい. すると,

• muleはふつうに使える

• kterm もふつうに使える

Page 98: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

80 第 7章 基本コマンド (3)

という状態になります. この状態を,

Mule がバックグラウンドで走っている (7.18)

といいます.

次に, 先の Mule を終了させてから, ktermのウィンドウの中で,

mule�� ��←↩ (7.19)

と入力して下さい. すると,

• Muleはふつうに使える

• kterm では何もできない

という状態になります. この状態を,

mule がフォアグラウンドで走っている (7.20)

といいます.

7.3.4 フォアグラウンドで動いているプロセスの強制終了と一時的中断

フォアグラウンドで稼働中のプロセスを強制終了するための方法は C-c と入力することです. C-cで強制

終了させたプロセスを再開することはできません. これに対し, 稼働中のプロセスの実行を一時的に中断す

るためには C-zと入力します. C-zで中断されたプロセスは再開できます. 表 7.3にこれらをまとめておき

ます.

表 7.3: プロセスの強制終了と一時的中断C-c プロセスを強制終了する

C-z プロセスを一時的に中断する

みなさんが (7.3.3)の操作をおこなっていれば, 現在コンピュータ上に kterm のウィンドウと Mule のウィ

ンドウが開いているはずです. では, kterm のウィンドウにマウスカーソルを移動させて,

C-c (7.21)

と入力して下さい. すると Mule が強制終了されます.

では, 次に, もう一回 kterm のウィンドウから

mule�� ��←↩ (7.22)

と入力して Mule を起動し, 次に マウスカーソルを kterm のウィンドウ内に移動させてから

C-z (7.23)

と入力して下さい. すると, Mule の実行が中断されます. この状態で,

• kterm はふつうに使える

• Mule のウィンドウ内では何もできない

ことを確認して下さい.

Page 99: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.3. プロセスやジョブに関するコマンド 81

7.3.5 fg:ジョブのフォアグラウンドでの再開

一時的に中断されているジョブをフォアグラウンドで再開するには, fgというコマンドを使います. この

コマンド名は foreground の略です. 使い方は,

fg�� ��←↩ (7.24)

と入力するだけです.

先ほどの例で Mule が一時的に中断されているとき, ktermのウィンドウ内で

fg�� ��←↩ (7.25)

とタイプしてみて下さい. すると

• kterm のウィンドウ内では C-cと C-z以外は何もできない

• Mule のウィンドウはふつうに使える

という状態になります.

7.3.6 bg:ジョブのバックグラウンドでの再開

一時的に中断されているジョブをバックグラウンドで再開するには, bgというコマンドを使います. この

コマンド名は background の略です. 使い方は fg と同じで,

bg�� ��←↩ (7.26)

と入力するだけです.

では kterm のウィンドウ内から

mule�� ��←↩ (7.27)

と入力してMuleを起動してから

C-z (7.28)

と入力し, 続いて

bg�� ��←↩ (7.29)

と入力して下さい. すると, 今度は Mule がバックグラウンドで再開されます.

こんどは,

• kterm はふつうに使える

• Mule のウィンドウもふつうに使える

という状態になっていることを確認して下さい.

7.3.7 ジョブの中断とアイコン化

では, Muleを起動して (すでにMuleが起動している人はもう1個起動する必要はありません), Muleのウィンドウ内で

C-z

と入力して下さい. すると, Mule のウィンドウが消え, 画面の左下にMule のアイコンがあらわれます. こ

のような場合にMule を再開する方法は,

アイコンにマウスを合わせてマウス左ボタンをダブルクリック (7.30)

です.

Page 100: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

82 第 7章 基本コマンド (3)

7.3.8 kill: プロセスを強制終了する

今度は, プロセスの番号を使ってプロセスを強制終了してみることにします. このためには, kill というコ

マンドを使います.

kterm のウィンドウ内で

ps�� ��←↩ (7.31)

と入力して下さい. そして, コマンド ps の出力から, Mule に関係した部分を探して下さい. コマンド ps の

出力が図 7.10のようになっていた場合は, 探すべきものは上から 3行目です.

これが探しているもの

図 7.10: コマンド psでプロセス番号を探しているところ

では, この Mule を強制終了してみましょう. あるプロセスを強制終了するには, 先に述べたように, コマ

ンド kill を使います. コマンド kill の使い方は,

kill␣-KILL␣(強制終了したいプロセスの番号)�� ��←↩ (7.32)

です. プロセス番号は人によって違います. この例では,

kill␣-KILL␣2872�� ��←↩ (7.33)

と入力すると Mule 強制終了することができます. なお, 他人が実行しているプロセスを強制終了すること

はできません.

7.3.9 egrep: 特定のパターンの抜き出し

ここで, ファイルや標準入力などから特定の文字列を含む部分だけを抜き出すコマンドを覚えておくこと

にします. このためにはコマンド egrep を使います.

コマンド egrep の使い方は,

egrep␣パターン␣ファイル名�� ��←↩ (7.34)

です.

では, 以下の操作をやってみて下さい.

ps␣|␣egrep␣csh�� ��←↩ (7.35)

コマンド ps の出力の中で csh を含む行だけが表示されたことが確認できたでしょうか?

Page 101: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.4. いくつかのコマンドを組み合わせて使う 83

7.4 いくつかのコマンドを組み合わせて使う

まず, 「標準入力」と「標準出力」という言葉について説明しておきましょう.

標準入力とは, コンピュータの標準的な入力装置です. ふつうはキーボードになっています. また, 標準出

力とは標準的な出力装置のことです. ふつうはディスプレイになっています.

UNIXでは, コマンドの多くは, 標準入力からデータを受け取って処理した結果を標準出力に送る設計に

なっています. また, 個々のコマンドは比較的単純な処理をおこなうよう設計されています. そして, 複雑な

処理をおこなうときには, いくつかのコマンドを組み合わせて使います.

コマンドを組み合わせるために用意されているのが, パイプとリダイレクトと呼ばれる機能です.

7.4.1 パイプ (|)

パイプという言葉は,「あるコマンドの出力と他のコマンドの入力をつなぐ」ということから来ています.

パイプのためには|という記号が使われます. この記号は, キーボードの右上で, BackSpaceキーのとなりに

あり,�� ��¥ (あるいは

�� ��\ )というキーと共用されています. |を入力するには,�� ��Shift キーとこのキーを同時に

押して下さい.

では, さっそくパイプを使ってみましょう. ここでは, コマンド env とコマンド jless をパイプでつなぐ

ことにします.

env␣|␣jless�� ��←↩ (7.36)

と入力して下さい. すると, コマンド env の出力はコマンド jless に渡されます. jless は長いテキストファ

イルを表示するときには 1画面分ごとにスクロールを止めてくれるので, コマンドの出力がスクロールアウ

トしてしまうのを防ぐことができるのです.

(7.4.1)のようになっている状態では, jlessのコマンドがすべて使えます. 例えば, コマンドの出力の表示

を終了するときには, jlessの終了コマンドである

q (7.37)

を入力します.

7.4.2 リダイレクト (「<」と「>」)

コマンドは入力や出力を標準入力や標準出力から変更するときに使われるのがリダイレクトです. このた

めの記号「<」と「>」(キーボードの右下にあります)が使われます.

リダイレクトを使ってコマンドの出力先をファイルに変更するには,

コマンド␣>␣出力ファイル�� ��←↩ (7.38)

というようにタイプします. また, コマンドの入力元をファイルに変更するには,

コマンド␣<␣入力ファイル�� ��←↩ (7.39)

というようにタイプします.

ではリダイレクトを使ってみましょう.

まず, コマンド ps の出力をファイルに書き出すことにします. ktermのウィンドウの中で,

ps␣aux␣>␣processes.doc�� ��←↩ (7.40)

と入力してから,

jless␣processes.doc�� ��←↩ (7.41)

と入力してみましょう. コマンド psの出力がファイルに書き出されていることがわかるでしょうか? この

例では, コマンド ps の出力が, 標準出力から processes.doc というファイルに変更されています.

続いて, コマンド jless の入力元を今作成したばかりのファイル processes.doc に変更してみます. このた

めには,

Page 102: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

84 第 7章 基本コマンド (3)

jless␣<␣processes.doc (7.42)

と入力します. このようにすることでもファイル processes.doc の内容をコマンド jless で読むことができ

るのです.

7.5 jman: オンラインマニュアルを読む

UNIXでは, ふつうはコンピュータ上にマニュアルが準備されています. このマニュアルをオンラインマ

ニュアルといいます. オンラインマニュアルを参照するには, コマンド jman を使います. jman の使い方は,

*jman マニュアルを見たいコマンド名�� ��←↩ (7.43)

です.

では, 早速オンラインマニュアルのマニュアルを見てみましょう. ktermのウィンドウの中で,

jman␣jman�� ��←↩ (7.44)

と入力して下さい. すると, コマンド jman の説明が画面に表示されます.

マニュアル画面における画面のスクロールなどの操作法はコマンド jless と同じです. 特に,

q (7.45)

と入力するとこの画面から抜けられます.

なお, 英語版のマニュアルはコマンド man によって参照できます.

7.6 その他のオンラインマニュアル

コマンド jman で参照できるオンラインマニュアル以外にも, 多数のマニュアルコンピュータ上にインス

トールされています. これらのファイルは, たとえば /usr/share/doc というディレクトリなどに置かれて

います. 多くは テキスト形式, PostScript形式か HTML形式のいずれかで書かれています.

テキスト形式のマニュアルは, コマンド jless あるいは Mule を利用することで直接読むことができます.

PostScript形式のマニュアルを読むときには, 第 8.4節で紹介する gv というコマンドを使いますHTML形

式のマニュアルを読むときには, 第 11章で述べるWWWブラウザを使います.

7.7 ハードディスクの消費, ファイルの圧縮と展開

7.7.1 dfと du: ハードディスクの消費量を調べる

まず全体としてハードディスクがどのくらい使われているかを見てみましょう. このためには, コマンド

df を使います. コマンド df の使い方は,

df�� ��←↩ (7.46)

と入力するだけです.

ktermのウィンドウの中で (7.7.1)のように入力して下さい. 出力は例えば図 7.11のようになります. ホー

ムディレクトリ /home/a と /home/b はそれぞれ容量が 20GB程度あるのですが, 高々数%しか使われてい

ないことがわかります.

次に, あなたが消費しているハードディスクの容量を見ることにしましょう. このためには, duというコ

マンドを使います. このコマンドの使い方も,

du�� ��←↩ (7.47)

とするだけです.

kterm のウィンドウの中で, (7.7.1)の通りに入力して下さい. すると, 例えば以下のような表示が得られ

ます.

Page 103: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.7. ハードディスクの消費, ファイルの圧縮と展開 85

1 ./lecture

199 .

画面の左がディスク消費量, 右側が実際にハードディスクを消費しているファイルやディレクトリの名前で

す. 最後の行

199 . (7.48)

が全ディスク消費量です. 単位はキロバイト (kB)です.

コンピュータの世界では, データの大きさを測るのに, ビットやバイトという単位がよく使われます. 1

ビットは数 0 あるいは 1 が 1個, 1バイトは 8ビットです.

ところで, 物理量をあらわすときには 「キロ」(k) という語句は 103 をあらわすのですが, コンピュータ

の世界では 2進数が基本なので, 慣習として, ハードディスクやメモリの容量, データの大きさなどを標記

するときには,「キロ」(k) という語句が, ほぼ 103と等しい 210(1024)という値をあらわすことになってい

ます. 「メガ」(M)や「ギガ」(G)についても同様です. かくして, 1キロバイトは 1024ビット, 1メガバイ

トは 1024キロビット, 1ギガバイトは 1024メガバイトという意味になります.

みなさんが消費しているハードディスクの容量がどのくらい大きいかを知るための目安として

• フロッピーディスク 1枚は 1.44メガバイト

• CDROM1枚は 640メガバイト

• この講義資料 1回分がだいたい 1メガバイト

という数値を挙げておきます.

個々のファイルが消費している容量には興味がなく, あなたがハードディスクを消費している総容量のみ

が知りたいときには, コマンド du に s というオプションをつけます. kterm のウィンドウの中で,

du␣-s�� ��←↩ (7.49)

と入力してみて下さい. コマンド duには他にもオプションがあります.

jman␣du�� ��←↩ (7.50)

と入力して, コマンド duのオンラインマニュアルを参照してみて下さい.

7.7.2 tar: 複数のファイルやディレクトリをまとめる

複数のディレクトリやファイルをまとめて保存する, あるいはまとめられたファイルを展開するためのコ

マンドが tar です.

tar という名前は tape archiver の略です. 昔はまとめられたファイルがバックアップとして磁気テープ

に保存されていたという歴史的な事情が名前の由来です.

図 7.11: コマンド df の出力例

Page 104: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

86 第 7章 基本コマンド (3)

表 7.4: コマンド tar の代表的な使い方機能 コマンド

複数のファイルをまとめる tar␣cvf␣tarファイル␣ファイル 1␣ファイル 2�� ��←↩

ディレクトリをまとめる tar␣cvf␣tarファイル␣ディレクトリ�� ��←↩

ファイルを展開する tar␣xvf␣tarファイル�� ��←↩

複数のファイルをまとめて圧縮する tar␣cvfz␣tarファイル␣ファイル 1␣ファイル 2�� ��←↩

ディレクトリをまとめて圧縮する tar␣cvfz␣tarファイル␣ディレクトリ�� ��←↩

圧縮されたファイルを展開する tar␣xvfz␣tarファイル�� ��←↩

コマンド tar の代表的な使い方を表 7.4に列挙します.

表 7.4において, tarファイルとは, いくつかのファイルやディレクトリをまとめて得られたファイルを指し

ます. このファイルには, 伝統的に, 圧縮をおこなわない場合には *.tar, 圧縮をおこなう場合には*.tar.gz

あるいは*.tgzという拡張子を付けます. 圧縮については第 7.7.4節を参照して下さい. また, 複数のファイ

ルをまとめて圧縮するときには, ファイルを 3個以上指定することもできます. 使い方は, まとめたいファ

イルの名前をすべて空白で区切って並べるだけです.

ではコマンド tar を使ってみましょう. みなさんのホームディレクトリに移動してから,

tar␣cvf␣lecture.tar␣./lecture�� ��←↩ (7.51)

と入力し, ls␣-laFとして lecture.tar というファイルができていることを確認して下さい.

コマンド tar にもいろいろなオプションがあります. 各自で

jman␣tar�� ��←↩ (7.52)

を実行して, オプションを確認して下さい.

7.7.3 フロッピーディスクの利用

みなさんのホームディレクトリにあるデータは学科のファイルサーバのハードディスクに保存されていま

す. ところで, ハードディスクには寿命があり, 一定の期間が経過すると壊れてしまう確率が高くなります.

学科のファイルサーバでも, このような障害に対処するために一定期間ごとにハードディスクのバックアッ

プを取っている (ハードディスクの内容をDATテープなどの媒体に書き出して保存している)などの対策を

取ってはいます. しかし, 学科のホームディレクトリ全体のような大量のデータのバックアップを頻繁に作

成することはかなりの手間がかかるので, バックアップの頻度はそれほど高くはありません. そして, ハー

ドディスクが故障してバックアップからみなさんのホームディレクトリを復元した場合, 復元されたデータ

はバックアップを取った時点のものになり, その時点以降にみなさんが作成したデータは失われてしまいま

す. ですから, みなさんが大事なデータを失わないようにするためには, 各自でフロッピーディスクなどに

バックアップを作成しておくことが望ましいです.

これとは別に, 学生実験などで Windows9X/Me/NT/2000 が動いているコンピュータとデータのやり取

りをしたり, 自宅のコンピュータとのデータのやり取りをしたりするのにもフロッピーディスクが便利です.

フロッピーディスクとデータをやり取りするには, 第 7.7.2で紹介したコマンド tar を使うか, あるいは

mtoolsという一連のツールを使います. コマンド tar は基本的に UNIXでデータをフロッピーディスクと

やりとりするためのものですが, mtools は Windows9X/Me/NT/2000 が動いているコンピュータとデータ

のやり取りをするためのものです.

コマンド tar を用いたフロッピーディスクとのデータのやり取り

コマンド tar でデータをフロッピーディスクに保存するには, 第 7.7.2でファイル名を指定した部分に,

ファイル名のかわりに/dev/fd0という文字列を指定します. ここに, /dev/fd0とは, コンピュータから見

たフロッピーディスクドライブの名前のようなものです.

Page 105: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.7. ハードディスクの消費, ファイルの圧縮と展開 87

コマンド tar を使ってデータをフロッピーディスクとやりとりするための方法を表 7.5にまとめておき

ます.

表 7.5: コマンド tar を使ったフロッピーディスクとのデータのやりとり作業内容 コマンド

データの保存: tar␣cvf␣/dev/fd0␣ファイル�� ��←↩

データの読み込み: tar␣xvf␣/dev/fd0�� ��←↩

mtools を用いたフロッピーディスクとのデータのやり取り

Windows9X/Me/NT/2000 とファイルのやりとりをするには mtools というツールを使います. mtools

とは単一のコマンドではなく, いくつかのコマンドの総称です. よく使われる mtools のコマンドを表 7.6に

まとめておきます. なお, mtoolsはファイル名が日本語のファイルはうまく扱えないことがあります. で

表 7.6: Windows9X/Me/NT/2000 フォーマットのフロッピーディスクを操作するためのコマンドコマンド 機能 使い方

mdir ファイル一覧を見る mdir�� ��←↩

mcopy フロッピーディスクにファイルを複写する mcopy␣ファイル␣a:�� ��←↩

フロッピーディスクからファイルを複写する mcopy␣a:ファイル␣新ファイル�� ��←↩

mdel フロッピーディスクのファイルを消す mdel␣a:ファイル�� ��←↩

すから, UNIXとデータのやり取りをすることが前提になっている場合には, ファイル名には日本語は使わ

ない方が無難です.

7.7.4 ファイルの圧縮と展開

大きいファイルを圧縮するとディスクの容量を節約することができます. このためによく使われるコマン

ドが compress, uncompress および gzip, gunzip です.

compress で圧縮されたファイルには *.Z という拡張子が, gzip で圧縮されたファイルには *.gz という

拡張子が付きます. これらの関係を表 7.7にまとめておきます.

表 7.7: ファイルの圧縮と展開のためのコマンド圧縮 展開 拡張子

compress uncompress Z

gzip gunzip gz

では, compress と gzip を使ってみることにしましょう. まず準備として, 先の例題でできた lecture.tar

というファイルをコピーして, 同じ大きさのファイルを 2個作っておくことにします.

cp␣lecture.tar␣lecture2.tar�� ��←↩ (7.53)

では, 以下の操作をおこなって下さい.

compress␣lecture.tar�� ��←↩ (7.54)

gzip␣lecture2.tar�� ��←↩ (7.55)

操作が終わったら,

ls␣-laF�� ��←↩ (7.56)

Page 106: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

88 第 7章 基本コマンド (3)

として, 作成された lecture.tar.Z および lecture2.tar.gz の大きさを比較してみましょう. 最後に,

uncompress␣lecture.tar.Z�� ��←↩ (7.57)

gunzip␣lecture2.tar.gz�� ��←↩ (7.58)

として, これらのファイルを展開しておきましょう.

7.7.5 uuencode と uudecode

みなさんが Mule を使って作成したファイルのようなものはテキストファイルと呼ばれます. テキスト

ファイルはそのまま読むことが可能です.

tar や compress や gzip といったコマンドを使ってファイルを処理すると, バイナリファイルと呼ばれる

ファイルが生成されます. バイナリファイルは, そのままでは読むことはできません. みなさんがふだん実

行しているコマンドの大部分もバイナリデータです.

ところで, 電子メールで相手にバイナリファイルを送信したいという状況がよくあります. しかし, バイ

ナリファイルはそのままでは読めないデータなので, これを電子メールでそのまま送信するわけにはいけま

せん. このような場合には, uuencode というコマンドを使ってファイルをテキストファイルに変換してか

ら送信します. 受信した側は, uudecode というコマンドを使って受け取ったデータを復元します.

uuencode の説明に入る前に, バイナリデータがそのままでは読めないことを確認しておきましょう.

jless␣env.tar�� ��←↩ (7.59)

と入力して下さい. すると, 画面に

"lecture.tar" may be a binary file. See it anyway? (7.60)

というような確認のメッセージが出ます. ここでは

y�� ��←↩ (7.61)

と入力します. 結果として画面に判読不能の文字が出ます. すぐに

q (7.62)

と入力して jless を終了しましょう.

では, uuencode を実行してみます.

uuencode␣lecture.tar␣lecture.tar␣>␣lecture.uu�� ��←↩ (7.63)

と入力して下さい. すると, lecture.uu というファイルが生成されます. では, コマンド jless を使って,

lecture.uu というファイルが確かに読めることを確認して下さい.

uuencode の使い方は,

uuencode␣もとのファイル␣復号してできるファイル␣>␣出力ファイル�� ��←↩ (7.64)

です. 個々のパラメータの意味は以下の通りです.

もとのファイル これから uuencode を使って変換したいファイル名を指定する

復号してできるファイル 変換後のファイルに uudecode を施したときに復元されるファイル名を指示する

(もとのファイルと同じ名前でもいいです)

出力ファイル uuencode によって変換した結果を保存するファイル名を指定する

次に, uudecode を実行してみます.

uudecode␣lecture.uu�� ��←↩ (7.65)

と入力して下さい.

uudecode の使い方は uuencode よりずっと簡単で,

uudecode␣ファイル�� ��←↩ (7.66)

とするだけです. もちろん, 上記の操作は uuencode によって変換されたファイルに対してのみ意味を持ち

ます.

Page 107: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

7.8. その他のコマンド 89

7.8 その他のコマンド

時に, ktermなどで実行した作業の一連の記録をファイルに保存しておきたいことがあります. このよう

なときに便利なのがコマンド script です.

使い方は,

script␣記録したいファイル名�� ��←↩ (7.67)

です. コマンド script を押すと, それ以降の作業およびその出力がすべてファイルに記録されます. C-dを

押すと記録は終了します.

コマンド script を終了することを忘れることも多いので注意して下さい. 個人環境の設定しだいで, C-d

が無効になっていることもあります. この場合は, C-dのかわりに exit と入力して下さい.

これ以外の便利なコマンドとして, 特定のファイルを検索するための find, which, whereis, locate などの

コマンドや, 出力結果の並べ替えをするための sort というコマンドなどがあります. 使い方については, 各

自オンラインマニュアルを調べて下さい.

Page 108: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 109: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

91

第8章 X Window System上で動作するツール

今回の講義では, 皆さんが学生実験のレポートなどを作成するときに役立つ, X Window System 上で動

作するツールとそれに関連したコマンドをいくつか紹介します.

これから紹介するツールは, どれも非常に多くの機能を持っているのですが, 最初に使うときにそれをす

べて覚えることは不可能ですし, 必要でもありません. そこで, 今回の資料では, これらの簡単な使い方を例

題を通して簡単に説明するにとどめます.

まず最初に, 今回の講義で出て来るツールの一覧を表 8.1にまとめておきます.

表 8.1: 今回の講義で学ぶツール名前 機能

kinput2 日本語入力

xwd 画面写真を取る

xwpick 画面写真を取る

convert 画像の形式の変換

gv PostScriptファイルを読む

Acrobat Reader PDFファイルを読む

Tgif 2次元の図を描画する

gnuplot 2次元および 3次元グラフを描く

gimp 2次元の図を描画する

8.1 kinput2: X Window System での日本語入力

X Window System で動作する日本語入力のためのツールが kinput2 です. kinput2は, ktermなどのウィ

ンドウの中で,�� ��Shift キーと�� ��Space キーを同時に押す (8.1)

ことで自動的に起動します (図 8.1). kinput2は「変換」キー (�� ��Space キーの隣にある)を押しても起動する

ので, 間違えて起動してしまったことがある人もいると思います.

kinput2を終了するときには,�� ��Shift キーと�� ��Space キーを同時に押す (8.2)

という操作をもう 1回おこないます.

kinput2が起動すると, カーソルの右下に [あ] という表示が出ます. そして, ローマ字で入力した日本語

は, 画面でひらがなに変換されます.

この学科のコンピュータでは, kinput2における日本語入力の方法は, Muleでかんなによって日本語入力

をする場合とほぼ同じです.

8.2 xwdとxwpick: X Window Systemの画面の一部をファイルに保

存する

この講義の資料では, ときどき X Window System の「画面写真」を掲載して来ました. この「画面写真」

をファイルに保存する (実際の画面の様子を記録したファイルを作る) ためのコマンドに, xwd があります.

Page 110: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

92 第 8章 X Window System上で動作するツール

図 8.1: kinput2が起動した状態

xwdの代表的な使い方は,

xwd␣-out␣name.xwd�� ��←↩ (8.3)

というものです. name.xwd の部分には, 適当なファイルの名前が入ります. (8.2)のように入力してから, 画

面写真を取りたいウィンドウの中にマウスカーソルを移動させて, マウスの左ボタンを押すと, 「ピッ」と

いう音とともに, name.xwd で指定した名前のファイルに画面の様子が保存されます.

xwdの典型的な使い方を表 8.2にまとめておきます. これ以外の使い方は,

jman␣xwd�� ��←↩ (8.4)

によって各自で調べて下さい.

表 8.2: xwdの使い方

xwd␣-out␣name.xwd�� ��←↩ 1個のウィンドウの写真を取る (枠なし), ウィンドウ

はマウスで指定xwd␣-frame␣-out␣name.xwd

�� ��←↩ 1個のウィンドウの写真を取る (枠あり) ウィンドウは

マウスで指定xwd␣-root␣-out␣name.xwd

�� ��←↩ 画面全体の写真を取る, ウィンドウの指定不要

xwdと似た機能を持つ xwpickというコマンドもあります.

このコマンドの最も簡単な使い方は, kterm などで

xwpick�� ��←↩ (8.5)

と入力することです.

(8.2)のように入力すると, 図 8.2のようなメッセージが画面にあらわれ, 画面の中央あたりに

File name: (8.6)

というファイル名の入力を促すプロンプトがあらわれます. 図 8.2の上半分に表示されている,

Possible file names:

という部分に注目して下さい. 図 8.2で説明されている通りの拡張子を持つファイル名を指定すると, 適合

するファイルの形式が自動的に選択されます. ファイル名を入力してから�� ��Enter キーを押し, 続いて画面写

真を取りたいウィンドウにマウスカーソルを移動させると, マウスカーソルが入っているウィンドウの枠が

点滅します. マウスの左ボタンを押すことで, そのウィンドウの画面写真を取ることができます.

xwpickには, ポップアップウィンドウの画面写真を取るなどといった, xwdよりも高級な機能を持ってい

ます. これらの詳細な使い方については各自でオンラインマニュアルを参照して下さい.

なお, gimpというツール (後述)を使うことでも, 画面写真を撮ることができます.

Page 111: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.3. convert: 画像の形式の変換 93

8.3 convert: 画像の形式の変換

さて, ここで, 画像データの形式の話をしておかなければなりません.

画像データはコンピュータに特定の形式で保存されているのですが, その保存の形式には, 何ドット x何

ドットの大きさがあるか, 各ドットが何ビットで量子化されているか, 白黒かカラーか, 圧縮されているか,

どのような圧縮方式が用いられているかなどに応じて, いろいろなものがあります.

先に紹介したコマンド xwdを使って保存した画像データは, X Window System用のバイナリファイルの

形式で保存されています.

これ以外のよく用いられる画像データの代表的な形式とその拡張子のいくつかを

表 8.3にまとめておきます.

表 8.3: 画像データの形式形式 拡張子

PostScriptファイル ps あるいは eps

PDFファイル pdf

Windows ビットマップ bmp

GIFファイル gif

PNGファイル png

JPEGファイル jpg

MPEGファイル mpg

これらの画像データの形式を互いに変換するには, convertというコマンドを使います.

convertの使い方は,

convert␣変換前のファイル␣変換後のファイル�� ��←↩ (8.7)

です. ここに, 変換前のファイルおよび変換後のファイルのフォーマットはファイル名から自動的に判定さ

れます.

例えばコマンド xwdで取得したファイル test.xwd を PostScript形式のファイル test.ps に変換する場合

には,

convert␣test.xwd␣test.ps�� ��←↩ (8.8)

と入力します.

なお, 後述する gimpというツールを使うことでも, 画像の形式を変換することができます.

図 8.2: xwpickを起動したところ

Page 112: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

94 第 8章 X Window System上で動作するツール

8.4 gv: PostScriptファイルを読む

PostScript形式のファイルはおもに印刷のために使われますが, これをコンピュータの画面で読むことも

できます.

PostScriptファイルを読むためには, gvというコマンドを使います.

このコマンドの代表的な使い方は,

gv␣PostScriptファイルの名前�� ��←↩ (8.9)

あるいは

gv�� ��←↩ (8.10)

です. 前者では, 「PostScriptファイルの名前」と書かれた部分には適当なファイル名が入ります. ファイ

ル名の拡張子はふつうは ps あるいは eps です.

後者を選択した場合には, gvのウィンドウは開くのですが, 後で述べるファイルを開くための操作をおこ

なうまで, ウィンドウ内には何も表示されません.

図 8.3に, コマンド gvによってこの講義の講義資料を閲覧している様子を示します.

ファイルメニュー 用紙の横横置きと縦置きの切り換え

倍率メニュー

ページスクロールバー

現在表示されているページ

ページ選択ウインドウ

画面が小さくて文書の一部しか表示されていないとき、どの部分が表示されているかを指示

前のページに戻る

次のページに進む

図 8.3: gvを起動したところ

gvの特徴は, たとえば「次のページに進む」といったようなひとつの操作をするために, 非常に多様な方

法が用意されていることです. ここで, gvの主要な操作法を説明します.

終了する ファイルメニューの Quitを選択するか,�� ��q キーを押すと, gvは終了します.

次のページに進む�� ��Enter キー,

�� ��f キーあるいは�� ��PageDown キーを押すと次のページに進みます. あるいは

画面左端の >> ボタン (図 8.3)の�� ��次のページに進む という部分) を押してもよいです. さらに, 画面

の右半分でマウス左ボタンを 2回連続して押すことでも, 次のページに進めます.

Page 113: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.4. gv: PostScriptファイルを読む 95

前のページに戻る�� ��Shift キーと

�� ��Enter キーを同時に押すか,�� ��Ctrl キーと

�� ��Enter キーを同時に押すか,�� ��b

キーあるいは�� ��PageUp キーを押すと前のページに戻ります. あるいは画面左端の << ボタン (図 8.3)

の�� ��前のページに戻る という部分) を押してもよいです. さらに, 画面の左半分でマウス左ボタンを 2

回連続して押すことでも, 前のページに戻れます.

ページを選択する 画面左のページ選択ウィンドウ (数字が表示されているところ)で希望するページ番号に

マウスカーソルを合わせてマウスの左ボタンを押すと, そのページの内容を表示できます.

ページをスクロールする ページが多くてページ選択ウィンドウにすべてのページ番号が入らないときには,

ページスクロールバーにマウスカーソルを重ね, マウス左ボタンを押し下げた状態でマウスを前後に

移動させることで, ページをスクロールする (表示されているページの範囲を切り換える)ことができ

ます.

ページを選択する gvには, ファイルからページを抜き出して印刷をする機能があります. このためには,

ページ選択ウィンドウで希望するページにマウスカーソルを合わせてマウスの中央ボタンあるいは右

ボタンを押します. すると, そのページのところに赤い印がつきます. もう 1回ボタンを押すとページ

選択を解除できます.

選択されたページを印刷する ファイルメニューで Print marked pages...を選択するか,�� ��p キーを押す,

選択されているページを印刷することができます. ページが選択されていないときには, 現在表示さ

れているページが処理の対象となります. この操作をおこなうと, 図 8.4のようなウィンドウが画面に

あらわれます. Print Command: の部分の右側のボックスのコマンドを書き換えればプリンタの変

更などのオプションの指定ができます. このまま印刷したいときには Print ボタンを押し, 印刷を中

止したいときには Cancel ボタンを押します.

図 8.4: gvの印刷ウィンドウ

選択されたページをファイルに保存する ファイルメニューで Save marked pages... を選択するか,�� ��s

キーを押すと, 選択されているページを抜き出してファイルに保存することができます. ページが選

択されていないときには, 現在表示されているページが処理の対象となります. この操作をおこなう

と, 図 8.5のようなウィンドウが画面にあらわれます. 図 8.5のファイル名入力ウィンドウにファイル

名を入れて, ウィンドウ左下にある Save Current Page ボタン (ページが選択されているときには, こ

のボタンに書かれる文字の内容が Save Marked Pages に変わります)を押すと, 指定されたファイル

に抜き出したページを書き出すことができます. また, 親ディレクトリ選択ウィンドウや子ディレク

トリ選択ウィンドウでディレクトリ名をクリックすれば, そのディレクトリに移動できます. なお, 子

ディレクトリ選択ウィンドウにおいて,「..」という記号はひとつ根本のディレクトリをあらわしてい

ます. また, ファイル選択ウィンドウでファイル名を選択すると, このディレクトリにあるファイルに

上書きします.

ファイル全体を名前を変えて保存する ファイル全体をの名前を変えて保存するには, ファイルメニューで

Save document...を選択するか,�� ��Shift キーと

�� ��s キーを同時に押すか,�� ��Ctrl キーと

�� ��s キーを同時に押します. この場合も, 図 8.5の印刷確認ウィンドウが開きます. ファイル名入力ウィンドウにファイ

ル名を入れて, ウィンドウ左下にある Save Document ボタンを押すと, 指定されたファイルに抜き出

したページを書き出すことができます.

Page 114: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

96 第 8章 X Window System上で動作するツール

ファイル名入力ウインドウ

ファイル選択ウインドウ

親ディレクトリ選択ウインドウ

子ディレクトリ選択ウインドウ

図 8.5: gvの保存ウィンドウ

ファイルを開く ファイルを開くには, ファイルメニューで Open... を選択するか,�� ��o キーを押します. す

ると, 図 8.6のようなウィンドウが開きます. このウィンドウにおける操作法は保存ウィンドウの場合

と同様です.

図 8.6: gvでファイルを開くためのウィンドウ

拡大縮小表示 画面上部にある倍率ボタン (最初は 1.00 と書かれているボックス)のところにマウスカーソ

ルを合わせてマウス左ボタンを押し下げた状態にすると, 図 8.7のようなメニューが表示されます. マ

ウス左ボタンを押したままでマウスカーソルを移動させ, 希望する倍率のところでマウス左ボタンを

離すと, その倍率が選択されます.

ページ内をスクロールする 画面に文書のページ全体が表示されていないとき, マウス左ボタンか右ボタン

を押しまたまでマウスを移動させると, 表示箇所を変更することができます. カーソルキーを押すこ

とでも同様の操作ができます.

みなさんが今使っている環境では用意されていませんが, gv のかわりに ghostview というコマンドを使

うこともあります. また, gs というコマンドを使うことでも PostScriptファイルを読むことができます. こ

れらも, 名前だけは覚えておきましょう.

8.5 練習: xwd, convertと gvの利用

では, ここで,

Page 115: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.6. acroread4: PDFファイルを読む 97

図 8.7: gvの倍率選択メニュー

kterm の画面写真を取って, PostScript形式に変換し, 変換後の画像を画面で見る

という操作をやってみましょう.

以下の一連の作業を実行してみて下さい.

xwd␣-frame␣-out␣kterm.xwd�� ��←↩

ktermのウィンドウにマウスカーソルを移動させ, マウス左ボタンを押す (8.11)

convert␣kterm.xwd␣kterm.ps�� ��←↩

gv␣kterm.ps

ktermの画面写真が取得し, そのファイルの内容を画面で確認することができたでしょうか?

8.6 acroread4: PDFファイルを読む

インターネットなどで入手できる文書は, PostScript形式のファイルではなく, PDFファイルと呼ばれる

形式のファイルで配布されることも多いです.

PDFファイルを先に紹介したコマンド gv で読むこともできるのですが, 残念ながら, 日本語が含まれた

文書を表示しようとすると, 文字が化けてしまったり, ファイル自体を開くことができなかったりすること

があります.

gvが適切に解釈できない PDFファイルを開くと, 図 8.8のようなエラー表示ウィンドウが現れます. ウィ

ンドウ下部の Dismiss ボタンを押すとエラー表示ウィンドウは消えますが, ファイルの解釈ができていない

ので, ファイルを閲覧することはできません.

図 8.8: gvのエラー表示ウィンドウ

Page 116: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

98 第 8章 X Window System上で動作するツール

PDFファイルがより確実に閲覧できるツールに, Adobe Systems から無料で配布されている Acrobat

Reader というプログラムがあります. この学科では, このプログラムは acroread4 という名前でインストー

ルされています.

Acrobat Reader を起動するには,

acroread4␣PDFファイルの名前�� ��←↩ (8.12)

あるいは

gv�� ��←↩ (8.13)

とします. 前者では, 「PDFファイルの名前」と書かれた部分には適当な PDFファイル (拡張子はふつう

pdf)が入ります. 後者を選択した場合には, Acrobat Reader のウィンドウは開くのですが, 後で述べるファ

イルを開くための操作をおこなうまで, ウィンドウ内には何も表示されません.

ところで, Acrobat Readerのマニュアル自体も PDFファイルで提供されています. このファイルが置か

れているディレクトリおよびファイル名は

/usr/local/Acrobat4/Reader/help/reader.pdf (8.14)

です.

図 8.9に,

acroread4␣/usr/local/Acrobat4/Reader/help/reader.pdf�� ��←↩ (8.15)

と入力して Acrobat Reader のマニュアルを画面に表示したところを示します.

メニューバーウインドウ

しおり

しおり上下スクロールバー

しおり左右スクロールバー

倍率選択

最初のページにジャンプ

前のページに戻る

次のページに進む

最後のページに進む

現在閲覧しているページ番号を表示

ページスクロールバー

図 8.9: Acrobat Readerの画面

Acrobat Readerの操作は,

• 画面上部のメニューから希望する操作を選択する

Page 117: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.6. acroread4: PDFファイルを読む 99

• メニューバーウィンドウのメニューの希望する操作に対応するアイコンにマウスカーソルを重ねてマウス左ボタンを押す

• 画面下部および左右の端にあるボタンを押す

のいずれかによっておこなわれます. なお, 上記 3種類の方法でできる操作の内容は, かなりの程度重複し

ています.

画面下部および左右の端にあるいろいろなボタンの意味については図 8.9に示されています.

メニューバーウィンドウの各種アイコンの意味については, 図 8.10に説明を記載しておきます.

ファイルを開く

印刷する

しおり等の表示

画面内のスクロール

拡大縮小

最初のページの戻る

前のページに戻る

次のページに進む

最後のページに進む

1回前の状態に戻る

1回次の状態に進む

文字列を検索する

図 8.10: メニューバーウィンドウのアイコンの意味

続いて, Acrobat Reader の代表的な操作法について簡単に説明しておきます.

なお, 以下では, たとえば「Fileメニューから Exitを選択する」と書いたときには, 画面左上の File と書

かれた部分にマウスカーソルを合わせてマウス左ボタンを押し下げた状態にし, 図 8.11のようなメニュー

があらわれるたらそのままマウスカーソルを下方に移動させてマウスカーソルを Exitに合わせ, マウス左

ボタンを離すことを意味します. 「~メニューから~を選択する」という文章があらわれたら, つねに上記

のような操作を意味すると考えて下さい.

図 8.11: Acrobat Readerの Fileメニュー

終了する Acrobat Readerを終了するときには, Fileメニューから Exitを選択するか, あるいは C-qと入力

します.

ファイルを開く ファイルを開くには, Fileメニューから Open を選択するか, C-oと入力するか, あるいは

メニューバーの「ファイルを開く」アイコン (図 8.10の説明参照)にマウスカーソルを合わせてマウ

ス左ボタンを押します. すると, 図 8.12 のようなウィンドウが画面にあらわれます. 画面の 2段目の

左側の Directories という見出しの付いた部分がディレクトリの選択ウィンドウ, 右側の Filesという

Page 118: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

100 第 8章 X Window System上で動作するツール

図 8.12: Acrobat Readerのファイル選択ウィンドウ

見出しの付いた部分がファイル選択ウィンドウです. ディレクトリ選択ウィンドウで希望するディレ

クトリにマウスカーソルを合わせてマウス左ボタンを 2回連続して押すと, そのディレクトリに移動

できます. また, ファイル選択ウィンドウで希望するファイルにマウスカーソルを合わせてマウス左

ボタンを 1回押すと, 画面の下から 2段目のファイル名入力ウィンドウ (Selection という見出しのつ

いた部分) にそのファイル名が入力されます. また, ファイル名入力ウィンドウにディレクトリ名およ

びファイル名を直接入力しても構いません.

ファイル名の入力が終わったら, 画面最下段の左端にある Open というボタンを押します (このボタ

ンにマウスカーソルを合わせてマウス左ボタンを押す). キャンセルするときには, 画面最下段の右端

にある Cancel というボタンを押します.

次のページに進む 次のページに進むには, メニューバーウィンドウにある ▷というボタンを押すか, 画面

下部にある ▷というボタンを押すか, Document メニューの Next Page を選択するか,�� ��Ctrl キーと�� ��PageDown キーを同時に押します.

前のページに戻る 前のページに戻るには, メニューバーウィンドウにある ◁というボタンを押すか, 画面

下部にある◁というボタンを押すか, Document メニューの Previous Page を選択するか,�� ��Ctrl キー

と�� ��PageUp キーを同時に押します.

最後ページに進む 最後のページに進むには, メニューバーウィンドウにある▷| というボタンを押すか, 画

面下部にある▷| というボタンを押すか, Document メニューの First Page を選択するか,�� ��Ctrl キー

と�� ��Shift キーと

�� ��PageDown キーを同時に押します.

最初のページに戻る 最初のページに戻るには, メニューバーウィンドウにある |◁ というボタンを押すか,

画面下部にある |◁ というボタンを押すか, Document メニューの First Page を選択するか,�� ��Ctrl

キーと�� ��Shift キーと

�� ��PageUp キーを同時に押します.

拡大縮小する 拡大縮小するには, 画面下部左側にある ▽ ボタンを押し (図 8.9), 現れる図 8.13のようなメ

ニューから適当な倍率を選択します. これとは別に, メニューバーウィンドウの拡大縮小メニュー (図

fig:acroread4-icons参照)にマウスカーソルを合わせてマウス左ボタンを押し下げた状態にし, あらわ

れる図 8.14 のようなアイコンのうち+印が付いた方にマウスカーソルを合わせてマウス左ボタンを離

すと, マウス左ボタンを押すことで画面が拡大表示できます. 同様に, -印が付いた方にマウスカーソ

ルを合わせてマウス左ボタンを離すと, マウス左ボタンを押すことで画面が縮小表示できます. また,

図 8.13のような倍率選択ウィンドウは, 文書が表示されたウィンドウ内でマウス右ボタンを押すこと

でも表示されます.

ファイルを印刷する ファイルを印刷するときには, Fileメニューから Print を選択するか, C-pと入力する

か, あるいはメニューバーの「印刷する」アイコン (図 8.10の説明参照) にマウスカーソルを合わせ

てマウス左ボタンを押します. すると, 図 8.12 のようなウィンドウが画面にあらわれます.

Page 119: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.6. acroread4: PDFファイルを読む 101

図 8.13: Acrobat Readerにおける倍率の選択

図 8.14: Acrobat Readerにおける拡大と縮小の選択

図 8.15: Acrobat Readerの印刷ウィンドウ

図 8.15の最上段の Print To: という見出し付きで囲まれたところは, 印刷コマンド関連の指定をする

部分です. この領域の最上段が印刷コマンドを指定する部分です. ここで印刷コマンドにオプション

を追加すると, 例えば印刷するプリンタを指定したりすることができます. 一方, 2行目の File という

見出しの左側のボックスにマウスカーソルを合わせてマウス左ボタンを押すと, データを印刷するか

わりに PostScript形式のファイルに保存することができます. この場合は, File Name: という見出し

の右のボックスにファイル名を入力します.

図 8.15の上から 2段目の Print Range という見出し付きで囲まれた部分は, 印刷の範囲を指定する

部分です. 初期状態では, 1行目の All と書かれた部分の左側のボックスの色が変わっていますが, こ

れはすべてのページを印刷する設定になっていることを意味します. これを変更して指定した範囲の

Page 120: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

102 第 8章 X Window System上で動作するツール

ページのみ印刷するときには, 2行目の From: という部分の左側のボックスにマウスカーソルを合わ

せてマウス左ボタンを押し, 続いて From: という見出しの右側のボックスに印刷開始ページの番号,

To: という見出しの右側のボックスに印刷終了ページの番号を入力します. さらに, Odd と書かれた

部分の左側のボックスにマウスカーソルを合わせてマウス左ボタンを押すと, 奇数ページを印刷しな

い設定にすることができます. この操作をもう 1回おこなうと, 奇数ページを印刷する設定に戻りま

す. Even と書かれた部分の左側のボックスについても同様です.

印刷関係の設定が正しいときには, 図 8.15の左下の OK ボタン押しましょう. すると印刷が始まり

ます.

印刷をキャンセルするときには, 図 8.15の右下の Cacnel ボタンを押します.

8.7 Tgif: シンプルな描画ツール

Tgifは, William Chia-Wei Cheng によって開発されている, X Window Systemで動作する 2次元の描

画ツールです. このソフトウェアは, いくつの条件の下で無償での利用が許諾されています. 当学科のコン

ピュータには Tgifの第 4.1版がインストールされています.

Tgifには, 描いた図形を拡大縮小しても図の細部がぎざぎざにならないという特徴があります (このよう

な特徴を持つ描画ツールを「ベクター系」と呼びます). Tgifはシンプルな描画ツールなので, 美術館にある

ような凝った絵を描くのには適していんが, 学生実験や卒業研究, 学術論文などで多く使われるような図を

描くのには適しています. UNIX上で良く使われるグラフ作成ツールであるGnuplotとの共同作業がやりや

すいことも Tgifの特徴です. さらに, 電子媒体で配布される文書の標準的なフォーマットである PostScript

や PDF形式のファイルを Tgif用の形式に変換してから加工することもできます. Tgif自体には数式入力

機能はありませんが, LATEXとの共同作業をおこなうことで図中に美しい数式を埋め込むことができます.

本節では, これから Tgif の基本的な使い方について説明してゆきます.

説明に入る前に言葉の定義をしておきます. 以下では, マウス左ボタンを押すことを「クリックする」と

言うことがあります. それから, Tgifは 3個ボタンが付いたマウスがコンピュータに付いていることを前提

としているのですが, 実際にコンピュータに付いているマウスは 2ボタンのものであることもあります. 2

個しかボタンがついていないコンピュータでは, マウスの中央ボタンを押す操作をマウスの左右のボタンを

同時押しすることで代用することができます.

8.7.1 Tgifの起動と終了

さっそく Tgifを起動してみましょう. このためには, X Window Systemが動いている状態で, ktermな

どのウィンドウ内で

tgif�� ��←↩ (8.16)

と入力します. すると, 図 8.16のように tgifのウィンドウが画面に開きます. 図 8.16にはウィンドウの各

部分の名称も示しておきました. この中にはめったに使われないものも含まれています.

では, とりあえず何もしないで Tgifを終了してみることにします. このためには, 図 8.16のメニューバー

ウィンドウ左端の「ファイル」と書かれている部分をクリックして, 画面に図 8.17のようなポップアップ

ウィンドウを出します. このウィンドウにはファイル操作に関する様々なメニューなどが表示されているの

ですが, 一番下にファイルを終了するためのメニュー「終了」があります.

「終了」という文字の右の方に Cntrl+q という文字が書かれていることに注意して下さい. ここに書か

れている Cntrl+qなどの文字の意味はショートカットと言って, いちいちメニューを開いてコマンドを選択

しなくても, メニューの横に書いてある通りのキーを押すだけで同様の操作ができる, というものです. こ

こに, Cntrl+qは�� ��Ctrl キーを押しながら

�� ��q キーを押すことを意味します. 以下では, これらを, Muleの操

作法を説明したときに記法に合わせて,

C-q (8.17)

Page 121: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.7. Tgif: シンプルな描画ツール 103

などと略記します.

少し説明が長くなりました. では, Tgifを終了しましょう. このためには, 表示されているメニューの「終

了」のところでマウスの左ボタンを押すか, あるいは Tgifのウィンドウにマウスカーソルが入っている状

態で

キャンバスウインドウ

メッセージウインドウメニューバーウインドウ

パネルウインドウ

状態ウインドウページ操作ウインドウ

スクロールバー

中断/ハイパースペースウインドウ

図 8.16: Tgifを起動したところ

図 8.17: Tgifのファイルメニュー

Page 122: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

104 第 8章 X Window System上で動作するツール

C-q (8.18)

と入力します.

8.7.2 簡単な図形の描画

本節では簡単な図形を描画する方法について説明します.

図形を描画するときには, Tgifのウィンドウの左側に表示されているアイコンをクリックして描画モード

を選択する必要があります. 描画モードの一覧とその説明を図 8.18に示します. なお, 図 8.18の意味をい

オブジェクトの選択/移動/拡大縮小モード

円の描画(まず円の端を指定)

楕円描画モード(まず端を指定)

折れ線/曲線モード

多角形/閉じた曲線モード

円弧モード(まず中心を指定)

円弧モード(まず端を指定)

角の丸い長方形モード

頂点の選択/移動モード

回転/変形モード

テキスト入力モード

四角形描画モード

楕円描画モード(まず中心を指定)

フリーハンドの折れ線/曲線モード

図 8.18: モードメニュー

ちどに覚える必要はありません. マウスカーソル図 8.18のアイコンに合わせると, 画面下側の状態ウィンド

ウの左側にその意味が表示されます. Tgifを起動したときにはオブジェクトの選択/移動/拡大縮小モード

が選択されています.

8.7.3 折れ線や曲線を描く

では, さっそく直線や折れ線を描いてみましょう.

直線を描く

まず直線を描いてみます. モードメニューの上から 7番目の

折れ線/曲線モード

を選択して下さい. 次に, 線を描き始める点にマウスカーソルを合わせてマウスをクリックして下さい. 続

いてそのままマウスを動かすと, 画面に直線があらわれます. 直線の終点が希望する位置に合ったところで

マウスの中央ボタンを押して下さい. すると, 画面に直線が描画されます.

折れ線を描く

次に折れ線を描いてみます. 先ほどと同じように, まずマウスをクリックして直線の始点を指定して下さ

い. 次に, 折れ線の第 1の頂点にマウスカーソルを合わせて, マウスをクリックして下さい. マウス中央ボ

タンを押した場合と異なり, 今回は, 指定した頂点まで直線を引いたあと, 続けて次の頂点を指定することが

できます. 折れ線の終点まで来たら, 先の場合と同じように, マウスの中央ボタンを押します. この段階で,

キャンバスウィンドウは図 8.19のようになります.

Page 123: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.7. Tgif: シンプルな描画ツール 105

線の端の矢記号を取る

図 8.19では, 直線や折れ線の端に矢印がついています. これを変更するにはどうしたらよいでしょうか?

描き終った図形の特徴を変更するためには, 一旦オブジェクトの選択/移動/拡大縮小モードに戻ります. モー

ドメニューの一番上のクリックして,

オブジェクトの選択/移動/拡大縮小モード

に戻って下さい. オブジェクトの選択/移動/拡大縮小モードに戻ったら, 次に特徴を変更したい図形にマウ

スカーソルを合わせてマウスをクリックして下さい. すると, 図 8.20のように, クリックされた図形の頂点

に四角形の印がつきます. この印のことを「ハンドル」といいます. 現在は, この折れ線全体が選択されて

いることになります.

では, この折れ線の矢印を消してみましょう. そのためには, メニューバーウィンドウの

各種設定

というメニューをクリックして下さい. すると, 図 8.21のように各種設定メニューが開きます. メニューの

右端に記号 ▶があるところにはサブメニューがあります. この中にある

線のスタイル

という部分をクリックしましょう. すると, 図 8.22のように, 選択できる線のスタイルのメニューがあらわ

れます. このメニューの意味は, 上から順に

• 矢印なし

図 8.19: 直線と折れ線を描いたところ

ハンドル

図 8.20: ハンドルが表示されたところ

Page 124: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

106 第 8章 X Window System上で動作するツール

• 折れ線の終点に矢印

• 折れ線の始点に矢印

• 折れ線の始点と終点に矢印

というようになっています. ここでは, 一番上の「矢印なし」を選択することにします. メニューの一番上

の plain となっている部分をクリックして下さい. すると, 選択されている (ハンドルが表示されている)

折れ線の終点の矢印が消えます.

ここで注意してほしいのは, 今おこなった線のスタイルの変更は, これ以降 Tgifを終了するまでずっと有

効であるということです. ですから, 線のスタイルを矢印ありに戻すには, もう 1回「各種設定」メニュー

を開く必要があります.

図 8.21: Tgifの各種設定メニューが開いたところ

図 8.22: 線のスタイルのメニュー

Page 125: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.7. Tgif: シンプルな描画ツール 107

折れ線の頂点の位置を変更する

次に, 折れ線の頂点の位置を変更してみます. このためには,

オブジェクトの選択/移動/拡大縮小モード

において頂点を移動したい図形にマウスカーソルを合わせてマウスをクリックし, その図形の頂点にハンド

ル」がついた状態にした上で, ハンドルにマウスカーソルを合わせ, マウス左ボタンを押したままマウスを

移動させて下さい. このような操作をすることで, 頂点の位置を変えることができます.

線の形を折れ線から曲線に変更する

さらに, 線の形を折れ線から曲線に変更してみましょう. このためには,

各種設定

メニューの

線の種類

を開きます. すると, 図 8.23のような 3種類のメニューが表示されます. 図 8.23の一番上が折れ線, 中央が

図 8.23: 線の種類メニュー

指定した点を適当によけて通るなめらかな曲線, 一番下が指定した点をすべて通るなめらかな曲線です. こ

こでは, 図 8.23の中央のメニューをクリックしてみて下さい. すると, 図 8.24のように, 線のスタイルが折

れ線から曲線に変わります.

図 8.24: 折れ線を曲線に変更

Page 126: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

108 第 8章 X Window System上で動作するツール

8.7.4 四角形を描く

四角形を描画する

四角形を描くには, 画面左端のモードメニューから四角形描画モードを選択します. 続いてマウスカーソ

ルをキャンバスウィンドウ内に移動させ, 適当な点でマウス左ボタンを押し, ボタンを押したままでマウス

を動かします. すると, 画面内に四角形が描画されます. この図形はマウス左ボタンを離すと確定します. ボ

タンを押しているあいだは四角形の形を自由に変えることができます. 図形の入力そのものを中止したいと

きには�� ��ESC キーを押します. 希望する四角形が描けたら, マウス左ボタンを離せば, 図形が確定します (図

8.26参照).

四角形の内部に模様をつける

ここで, 四角形の中に模様をつけてみましょう. このためには, まず画面左端のモードメニューからオブ

ジェクトの選択/移動/拡大縮小モードを選択し, 今描き終わった四角形にハンドルが付いている状態にして

から, メニューバーウィンドウの「各種設定」のメニューの「塗りつぶし」を選択します (図 8.25). ここで

は斜線のパターンを選択してみます. すると, 図 8.26のような塗り潰されたパターンが得られます.

図 8.25: 塗りつぶしパターンの選択

図 8.26: 四角形を描き終わったところ

Page 127: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.7. Tgif: シンプルな描画ツール 109

8.7.5 日本語を入力する

日本語フォントの選択

indextgif@tgif!にほんごにゅうりょく@日本語入力!にほんごふぉんとのせんたく@日本語フォントの選択

次に, 日本語の文字を入力してみましょう. このためには, まずフォント (活字の字体)を選択する必要があ

ります. Tgifを最初に起動したときには Courier という名前のフォントが選択されているのですが, 残念な

がらこれは英語専用のフォントであり, 日本語は表示できません. ですから, 文字を入力することに先立っ

て適切なフォントを選択する必要があるわけです.

Tgifが提供している日本語が表示できるフォントは 4種類あります. これらを表 8.4にまとめておきま

す. ただし, 筆者の手元にあるバージョンの Tgif(4.1.38)の Tgifの縦書きモードにはバグがあり, 記号「ー」

表 8.4: Tgifで利用可能な日本語フォントフォントの名前 書体

Ryumin 明朝体

Ryumin-V 明朝体, 縦書き

GothicBBB ゴシック体 (太字)

GothicBBB-V ゴシック体, 縦書き

のみは縦にしてくれません.

ではさっそくフォントを変更してみましょう. このためには, 「各種設定」メニューの「フォント」をク

リックします. すると図 8.27のようなメニューがあらわれます. ここでは明朝体 (Ryumin)を選択すること

図 8.27: フォントメニュー

にします. このメニューのRyumin の部分をクリックして下さい. これで日本語フォントが選択されました.

日本語の入力と漢字変換

次に, 実際に日本語を入力してみましょう. ウィンドウ左端にあるモードメニューでテキスト入力モード

(「T」と書いてあるところ) をクリックして下さい. 続いて, キャンバスウィンドウ中で文字を入力したい

ところまでマウスカーソルを移動させて, マウスをクリックして下さい. すると, 図 8.28のように, 画面に

灰色の箱が表示されます. 次に日本語を入力するわけですが, このためにはまず

図 8.28: 文字がこれから入力されてゆく箱

C-\ (8.19)

と入力します (�� ��Ctrl キーと

�� ��\ キーを同時に押す; キーボードによっては�� ��\ のかわりに

�� ��¥ と刻印されているものもあります). すると, 図 8.29のような日本語入力のウィンドウが開きます. たとえば,「貴社の記者が汽

Page 128: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

110 第 8章 X Window System上で動作するツール

車で貴社した」という文章を入力してみましょう. 日本語入力のウィンドウにマウスカーソルを移動させて,

ローマ字で, キーボードから「きしゃのきしゃがきしゃできしゃした」(kishanokishagakishadekishashita)

と入力すると, ウィンドウの中は図 8.30のような状態になります. ここで�� ��Space キーを押すと, 図 8.31の

ように漢字変換がなされます.

図 8.29: 日本語入力のウィンドウ

図 8.30: ひらがなを入力したところ

図 8.31: 漢字に変換されたところ

この漢字変換は正しくありません. 修正するにはどうしたらよいでしょうか?

まず最初に, 図 8.31の文章の最初の「貴社の」という部分が白黒反転していることに注意して下さい. Tgif

が使っている漢字変換プログラムは, まず文章を適当な文節に分割して, 各文節を適切と思われる漢字に変

換してゆきます. しかし, 文節の分割と漢字変換ともに, 正しく行われるとは限りません. ですから, 変換後

の漢字の修正作業は

• 文節を区切り直す

• 文節の漢字を変更する

という 2種類の作業に分類できます. この中で, 文節を区切り直す作業は, さらに文節を伸ばす, 縮める, 次

(右)の文節に移動する, 前 (左)の文節に移動するという 4種類の作業に分類できます.

文節の操作法は表 8.5の通りです. なお, 文節間の移動についてはカーソルキーでも代用できます.

表 8.5: 文節の操作の仕方作業の内容 キー入力

文節を伸ばす C-f

文節を縮める C-b

次 (右)の文節に移動する C-o

前 (左)の文節に移動する C-i

Page 129: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.7. Tgif: シンプルな描画ツール 111

漢字変換の内容を変更するには, 白黒反転している部分を変換したい文節に合わせて�� ��Space キー を押し

ます.�� ��Space キーを押すたびに漢字の内容が置き換えられてゆきます. 一定回数変換に失敗すると, たとえ

ば図 8.32のように, 変換の全候補が表示されます. 漢字選択ウィンドウでの操作法は以下の通りです. なお,

図 8.32: 漢字変換の全候補の表示

表 8.6: 文節の操作の仕方作業の内容 キー入力

確定�� ��Enter

右の候補に移動する C-f

左の候補に移動する C-b

上の候補に移動する C-p

下の候補に移動する C-n

文節間の移動についてはカーソルキーでも代用できます.

変換作業が終了したら�� ��Enter キーを押します. すると, 日本語入力のウィンドウは空になり, かわりにキャ

ンバスウィンドウの中に変換後の文章があらわれます (図 8.33). まだ入力したい文章があるときは, 日本語

図 8.33: 変換後の漢字がキャンバスウィンドウに書かれたところ

入力のウィンドウにマウスカーソルを移動させてキーボードを押してゆけば, そのまま打ち込みを続けるこ

とができます.

作業を終わるときには, キャンバスウィンドウの中でマウスをクリックして下さい. すると, 日本語入力

のウィンドウは消えます.

Page 130: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

112 第 8章 X Window System上で動作するツール

8.7.6 描き終わった図を保存する

描き終わった図形を保存するときには, メニューバーウィンドウの「ファイル」メニューから「保存」を

選択します (ショートカットは C-sです). すると, 図 8.34のような保存する先のファイル名を入力するウィ

ンドウがあらわれます. ファイル名はキーボードから入力します. 日本語のファイル名は使ないことと, ファ

図 8.34: ファイル名を入力するウィンドウ

イル名に空白が含まれてはいけないことに注意して下さい. Tgifのデータファイルの拡張子は obj ですが,

これは Tgifが自動的に付けてくれます. ですから, ファイル名から拡張子を除いた本体だけの部分を入力し

て下さい. ここではファイル名を「test」としておきます. キーボードから「test」という文字列 (括弧「」

は含みません) を入力して�� ��Enter キーを押して下さい. これで今描いた図形が保存されました.

8.7.7 描き終わった図を印刷する

Tgifで描いた絵を印刷したり実験レポートなどの文書に取り込んだりしたい場合には, Tgif用のセーブ

ファイルをそのまま使うことはできないので, データをを印刷に適した形式に変換する必要があります. よ

く使われるのが, 文書印刷のための標準的な形式のひとつである PostScript という形式 (拡張子は ps)です.

ところで, PostScriptという形式は自由度が非常に高いのですが, いろいろなことができすぎるために, レ

ポート本文などに PostScript 形式のデータを取り込むと問題が生じることがあります. このような問題が

起きないように PostScriptの機能に制限を加えた encapsulated PostScript という形式 (拡張子は eps)もよ

く使われます. Tgifを最初に起動したときには, 印刷データの形式は encapsulated PostScript になってい

ます.

では, 印刷できる形式にデータを変換してみましょう. ただし, 以下の操作をおこなっても, 印刷可能な

ファイル (PostScript形式のファイル) が作成されるだけで, 実際にプリンタにデータが送られるわけでは

ないことに注意して下さい.

印刷できる形式にデータを変換するには, メニューバーウィンドウの「ファイル」メニューから「印刷」

を選択します (ショートカットは C-pです). 正常に作業が終わった場合は, メッセージウィンドウに

’test.eps’に出力中...

EPS file printed into ’test.eps’

などといったメッセージが出ます (ファイル名は場合によって変わります).

このようにして作成されたファイルは, コマンド lprによってプリンタに直接送って印刷することができ

ます. たとえば, test.eps というファイルを印刷するには,

lpr␣test.eps�� ��←↩ (8.20)

とします.

PostScript形式のファイルを印刷するときにコマンド a2psを使ってはいけないことも思い出しておいて

下さい.

では, 次に Tgifでファイルを読み込む練習をするので, 一旦 Tgifを終了して下さい. Tgifの終了のしか

たは覚えているでしょうか? メニューバーウィンドウの「ファイル」メニューから「終了」を選択するか,

C-qとすれば終了です. 今作業をしていたディレクトリに test.obj というファイルと test.eps というファイ

ルができていることを確認しておいて下さい.

Page 131: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.8. gnuplot: 2次元および 3次元グラフ作成ツール 113

8.7.8 ファイルを開く

Tgifのオブジェクトファイルを開くときには, まずTgifを起動してから, メニューバーウィンドウの「ファ

イル」メニューから「ファイルを開く」を選択します (ショートカットは C-o です). すると, 図 8.35のよう

なウィンドウが開きます. 開きたいファイルの名前をクリックし, 続いてウィンドウ左端の 了解 をクリック

図 8.35: ファイルを開く

すると, そのファイルを開くことができます. 中止するときには キャンセル をクリックします. ここでは,

先ほど作成した test.obj を選択することにします. 先ほど作成した図を読み込むことができたでしょうか?

ここまでで, tgifを使うための必要最低限の操作をひと通りやってみたことになります. より詳しい使い

方についてはオンラインマニュアルなどを参照して下さい.

8.8 gnuplot: 2次元および3次元グラフ作成ツール

gnuplotは高機能な 2次元および 3次元のグラフを作成するためのフリーウェアです. gnuplotは, 2次元

の関数やデータファイルのグラフ, 3次元グラフ, 等高線グラフなど, いろいろなグラフを作成することがで

きます. また, gnuplotには, 非常に多様な出力ファイルの形式をサポートしている, Tgifや TEXとの協調

作業がやりやすい, TEXコマンドの簡略版を用いてグラフに簡単な数式を入れることができるといった特徴

があります. 本節では, gnuplotのごく基本的な使い方について簡単に説明してゆきます.

8.8.1 gnuplotを起動する

gnuplotを起動するには, ktermなどで

gnuplot�� ��←↩ (8.21)

と入力します. すると, 図 8.36のように gnuplotの起動メッセージが画面に表示され, gnuplotが立ち上が

ります.

8.8.2 gnuplotを終了する

gnuplotを終了するには, gnuplotの画面内で

quit�� ��←↩ (8.22)

と入力します.

Page 132: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

114 第 8章 X Window System上で動作するツール

図 8.36: gnuplotの起動画面

8.8.3 基本的な操作法

gnuplotの基本的な操作法はふだん使っているシェルと同じです. キーボードからコマンドを打ち込んで�� ��Enter キー を押すと, 打ち込んだ内容が実行されます. コマンド行の編集には, 表 8.7のキーが使えます.

なお, ここでも キー入力の説明にMule 風の記法を採用しています. たとえば, C-fは�� ��Ctrl キーを押しなが

ら�� ��f キーを押すことを意味します.

表 8.7: gnuplotにおけるキー入力キー 1 キー 2 効果�� ��Ctrl +

�� ��f �� ��→ 1文字前進�� ��Ctrl +�� ��b

�� ��← 1文字後退�� ��Ctrl +�� ��p

�� ��↑ 1個前に入力した行を表示�� ��Ctrl +�� ��n

�� ��↓ 1個次に入力した行を表示�� ��Ctrl +�� ��e 行末に移動�� ��Ctrl +�� ��a 行頭に移動�� ��Ctrl +�� ��d

�� ��Delete カーソル位置の文字を消す�� ��Ctrl +�� ��h

�� ��BackSpace カーソルの手前の文字を消す�� ��Ctrl +�� ��k カーソルの位置から行末までを消す�� ��Ctrl +�� ��l 画面を再描画する�� ��Ctrl +�� ��u 行全体を消す�� ��Ctrl +�� ��w 最後の単語を消す

8.8.4 1変数関数を描画する

関数のグラフを描画をするにはコマンド plotを使います. たとえば, gnuplotのウィンドウ内で

plot␣sin(x)�� ��←↩ (8.23)

と入力すると, 図 8.37のように正弦関数のグラフが描画されます. 横軸の範囲と縦軸は適当に調整されます.

一方, 必要な場合には, x軸と y軸の範囲を指定することもできます. このためには,

plot␣[xの下限:xの上限]␣[yの下限:yの上限]␣関数�� ��←↩ (8.24)

のようにします. たとえば, 正弦関数を横軸の範囲を [0, 2π]に取ってプロットしたいときには,

plot␣[0:2*pi]␣[-1:1]␣sin(x)�� ��←↩ (8.25)

Page 133: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.8. gnuplot: 2次元および 3次元グラフ作成ツール 115

図 8.37: 正弦関数のグラフ

のようにします. ここに, piは円周率 πに対応する gnuplotの定数です.

なお, xの下限, xの上限の一方を省略して書くこともできます. また, 上記では plotの最も簡単な使い方

のみ紹介しましたが, plotには非常に数多くのオプションがあります. これらについてはマニュアルなどを

参照して下さい.

8.8.5 epsファイルに保存する

描画したグラフを LATEX で処理可能な eps (encapsulated PostScript) 形式で保存するには, まず set

terminal というコマンドを使って出力データの形式を PostScript形式に変更します.

set␣terminal␣postscript␣eps�� ��←↩ (8.26)

キーボードからの入力に誤りがなければ,

Options are ’eps noenhanced monochrome

dashed defaultplex "Helvetica-Ryumin" 14’

とうようなメッセージが画面に表示されます.

続いて, set output というコマンドを使って出力ファイルの名前を指定します. ここでは, test.epsとし

ておきましょう.

set␣output␣’test.eps’�� ��←↩ (8.27)

ここまでの手順が終わった状態で

replot�� ��←↩ (8.28)

と入力すると,グラフが test.epsというファイルに保存されます. ここまでの作業が終わったときの gnuplot

のウィンドウの内容を図 8.38 に示します.

8.8.6 非対話的な gnuplotの実行

gnuplotコマンドをファイルにあらかじめ書いておいて, そのファイルを実行することもできます.

以下のような内容のファイルがカレントディレクトリに用意されているものとしましょう.

plot sin(x)

pause -1

ファイル名は test.gnuplotとします.

このようなファイルを準備した上で kterm などで

gnuplot␣test.gnuplot�� ��←↩ (8.29)

Page 134: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

116 第 8章 X Window System上で動作するツール

図 8.38: ファイルへの保存が終わったときの gnuplot のウィンドウの状態

と入力すると, 先ほどと同じように正弦関数のグラフが画面に描画されます.

なお, 非対話的に gnuplotを実行した場合には, gnuplotはすべてのコマンドを実行し終わるとただちに

終了してしまいます. 上の例で

pause␣-1 (8.30)

とある部分は, ユーザが�� ��Enter キーを押すまで gnuplotが終了しないようにするためのものです.

8.8.7 ファイルからコマンドを実行する

gnuplotを起動し, gnuplotのウィンドウ内でコマンド load を実行することでも, あるファイルに書かれ

たコマンド群を実行することができます. コマンド load を使うときには, 引数としてファイル名を単一引

用符「’」で囲って指定します.

例として, 先ほどの例と同じファイル test.gnuplotを実行する場合を考えましょう.

このためには,

load␣’test.gnuplot’�� ��←↩ (8.31)

と入力します.

8.8.8 コマンドのファイルへの保存

コマンド save を実行すると, 最も最近のコマンド plot に関連した一連のコマンド群をファイルに保存で

きます.

コマンド save を使うときも, 引数としてファイル名を単一引用符「’」で囲って指定します.

例として, 今実行したコマンドを test2.gnuplotというファイルに保存してみます.

save␣’test2.gnuplot’�� ��←↩ (8.32)

コマンド save を実行した場合には, gnuplot が標準で設定するいろいろなパラメータの内容がすべてファ

イルに書き込まれるため, ファイルの内容はかなり複雑になります.

8.8.9 データファイルのプロット

データファイルとは, 実験の測定値や統計データのような数値が規則正しく並べられたファイルのことを

いいます. 本節では, データファイルに記載されたデータ点からグラフを作成する方法について説明します.

データファイルをプロットするときには,

plot␣’ファイル’�� ��←↩ (8.33)

Page 135: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

8.8. gnuplot: 2次元および 3次元グラフ作成ツール 117

とします. ただし, 「ファイル」と書かれた部分にはデータファイルの名前が入ります.

例として, 図 8.39のような単純なデータファイルがあった場合を考えます. ファイル名を’sample1.dat’と

します. (実際に以下を実行してみたい人は, Muleなどを使って, sample.dat という名前で, 図 8.39のよう

な内容を持つファイルを作成して下さい).

100

120

100

110

90

図 8.39: データファイル sample.dat の内容

このデータファイルをプロットするには,

plot␣’sample.dat’�� ��←↩ (8.34)

とします. すると, 図 8.40のようなグラフが描画されます.

90

95

100

105

110

115

120

0 0.5 1 1.5 2 2.5 3 3.5 4

’sample.dat’

図 8.40: データファイル sample.datのプロット (1)

次に, データ点のあいだを線で結んでみます. このためには,

plot␣’sample.dat’␣with␣lines�� ��←↩ (8.35)

とします. すると, 図 8.40のようなグラフが画面に描画されます.

90

95

100

105

110

115

120

0 0.5 1 1.5 2 2.5 3 3.5 4

’sample.dat’

図 8.41: データファイル sample.datのプロット (2)

なお, データファイルは以下に述べるような書式および規則にしたがって作成され, gnuplotによって解釈

されます.

• 1行中に複数の数値が空白で区切って並べられる

Page 136: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

118 第 8章 X Window System上で動作するツール

• ふつうは 1行中にグラフの x座標と y座標を空白で区切って並べられる

• x座標を省略して 1行に数値を 1個だけ書いた場合, gnuplotはこのデータファイルの x座標を 0から

始まる整数であると解釈して実行する

これ以外に, データ点のあいだをなめらかな曲線で結んだり, データ点の近くを通過するなめらかな曲線

を引いたり, 最小 2乗法によってデータに直線や曲線をあてはめたりすることもできます.

gnuplotのより詳細な使い方についてはマニュアルなどを参照して下さい.

8.9 gimp

gimpは画像処理のための極めて多様な機能を持った, フリーのペイント系の描画ツールです. ここに, ペ

イント系のツールとは, 描画された図形を点の集まりとして記録するツールのことをいいます. このような

ツールには, 図を拡大縮小すると輪郭がぎざぎざになるという特徴があります.

gimpは, 写真などをパソコンで取り込んで特殊加工するといったような高度な処理に適したツールであ

り, 能力的には市販のフォトショップという画像処理用の極めて高性能のソフトウエアに匹敵する強力なツー

ルなのですが, あまりに機能が多すぎるため, 実験レポート作成などより「素朴な」描画で事足りる場合に

はややオーバースペックです.

よって, この講義では, gimpの起動法と終了法を紹介するのみとし, 具体的な操作法について触れません.

コンピュータ室に gimpの日本語マニュアルを印刷したものは置いてあるので, 興味のある人は読んでみて

下さい.

gimpを起動するときには, ktermなどのウィンドウで

gimp�� ��←↩ (8.36)

と入力します. また, gimpを終了するときには, gimpのウィンドウにマウスカーソルが入っている状態で,

C-q (8.37)

と入力します.

Page 137: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

119

第9章 数式処理/数値計算ソフトウエア

9.1 MuPAD入門

9.1.1 MuPADとは

MuPADは, ドイツの Paderborn大学で開発が始まり, 現在は SciFace Softwareによって開発, 販売され

ている, 計算代数を中心とした数学計算用の数式処理/数値計算ソフトウエアです. このソフトウェアは,

Windows版は有料なのですが, LINUX, Solarisなどの UNIX系 OS版およびマッキントシュ版については

個人使用に限り無償で配布されています. また, いくつかの OSついては動作保証がないという条件のもと

で完全に無償で配布されています.

当学科にインストールされている MuPAD は FreeBSD-2.2.8 用のもので, これは無保証かつ無償です.

SciFace Softwareから必要な数だけインストールして使用してよいという許諾を得ています.

9.1.2 MuPADの起動と終了

MuPADを起動するには,

mupad�� ��←↩ (9.1)

と入力します. すると, 図 9.1のように, ktermなどのウィンドウの中でMuPADが立ち上がります.

図 9.1: MuPADの起動画面

MuPADを終了するときには,

quit;�� ��←↩ (9.2)

と入力します.

Page 138: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

120 第 9章 数式処理/数値計算ソフトウエア

9.1.3 オンラインマニュアル

MuPADには非常に詳しいオンラインマニュアルが備わっています.

関数などの名前の前に「?」記号を付けたものを入力するとその関数などのオンラインマニュアルが表示

されます. 例えば, MuPADのウィンドウ内で

?int�� ��←↩ (9.3)

と入力すると (この関数は積分をする関数です), 図 9.2のようにマニュアルが画面に表示されます.

図 9.2: MuPADのオンラインマニュアル

この画面における操作法は, コマンド jless (あるいは less)と同じです. マニュアルの表示を消したいと

きには,

q (9.4)

と入力します.

9.1.4 MuPADの基本的な使い方

入力行とその評価

MuPADの実行環境はインタプリタ型と呼ばれるものになっています. インタプリタ型とはどういうこ

とかというと, みなさんが打ち込んだコマンドや関数など (入力行) が 1行ずつ実行されてゆく, ということ

です.

この場合, MuPADはどこで入力行が終わっていると判断するかということが問題になります.

MuPADの入力行はセミコロン「;」 で終わります. MuPADはセミコロンを見付けると, 入力行を評価

(計算)し, 結果を画面に表示します. 単純に Enterキーを押しただけでは, 入力は継続しているものとみな

され, みなさんが打ち込んだ内容は評価 (計算)されません.

ですから,

1+1; (9.5)

のように 1+1をそのまま入力した場合にも,

Page 139: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.1. MuPAD入門 121

1

+ (9.6)

1

;

のように途中に余分な改行を入れた場合にも結果は同一になります.

入力行の終わりのところで, セミコロンのかわりにコロン「:」 を使うこともできます. 「;」と「:」の違

いは何かというと, 「;」を使った場合には評価 (計算)結果が画面に表示されるのに対して「:」を使った場

合には結果が画面に表示されない, という点が異なります. ですから, 「;」と「:」を必要の応じて使い分け

る必要があります.

コマンド行編集およびヒストリ機能

MuPADにも, コマンド行を編集する機能およびみなさんが過去に入力したコマンドの履歴をさかのぼる

機能 (ヒストリ機能) があります. これらを表 9.1にまとめておきます. なお, 過去に実行されたコマンドに

表 9.1: MuPADのコマンドライン編集およびヒストリ機能

操作 効果 別のキー

C-p 1個前に実行されたコマンドを表示�� ��↑

C-n 1個後に実行されたコマンドを表示�� ��↓

C-f 1文字分右に移動�� ��←

C-b 1文字分左に移動�� ��→

C-a 行頭に移動

C-e 行末に移動

C-d カーソル位置の文字を消す�� ��Delete

C-h カーソル位置の 1個前文字を消す�� ��BackSpace

ついては, C-pあるいは C-nでコマンドを呼び出したあとで�� ��Enter キーを押すと再実行されます.

過去の計算結果の参照

MuPADは過去に実行したコマンドの結果を記憶しています.

過去の計算結果を呼び出すときには, 記号「%」を使います. MuPADは

%; (9.7)

と入力すると直前に計算された結果を画面に表示し,

%2; (9.8)

と入力すると 2個前に計算された結果を画面に表示します. 3個以上前に計算された結果を画面に表示する

ことも, 同様にしてできます.

たとえば,

1+1; (9.9)

というコマンドを実行して, 画面に

>> 1+1;

2

(9.10)

という計算結果が表示された後で,

Page 140: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

122 第 9章 数式処理/数値計算ソフトウエア

%; (9.11)

というコマンドを実行すると, 画面には

>> %;

2

(9.12)

のような結果が表示されます. ここから, 直前の計算結果がそのまま画面に表示されていることが確認でき

ます.

代入と比較

これはやや直観に反するのですが, 変数に数値を代入するときには記号「:=」を使い, 数値が等しいかど

うかを判定 (比較) するときには記号「=」を使います. ですから,

i:=100; (9.13)

という文は「変数 iに数値 100を代入する」という意味になるのに対し,

i=100; (9.14)

という文は「変数 kと数値 100を比較し, 等しければ真, 等しくなければ偽を返す」という意味になります.

9.1.5 演算子, 定数と数学関数

演算子

MuPADは数学の計算をおこなうための言語ですから, 数学演算のための一連の演算子および定数が用意

されています. これらを表 9.2にまとめておきます.

表 9.2: MuPADの数学演算子と定数

単項, 2項演算子

記号 意味

! 階乗

+ 加算

- 減算

* 乗算

/ 除算

div 商

mod 剰余

^ べき

比較演算子

記号 意味

= =

<> ̸=< <

<= ≤> >

>= ≥

定数

標記 意味

PI 円周率

E ネイピアの数

Infinity 無限大

I 虚数単位

EULER オイラーの定数

complexInfinity 複素数の無限大

undefined 未定義値

これらのいくつかを使ってみましょう.

まず, 4の階乗を計算してみます.

4!; (9.15)

を実行すると, 以下のような結果が得られます.

>> 4!;

24

(9.16)

次に, 5を 3で割った割った結果の整数部分を求めてみます.

Page 141: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.1. MuPAD入門 123

5␣div␣3; (9.17)

を実行すると, 結果は

>> 5 div 3;

1

(9.18)

のようになります.

次に, 5を 3で割った余りは, 演算子modで求めることができます.

5␣mod␣3; (9.19)

を実行すると, 結果は

>> 5 mod 3;

2

(9.20)

となります.

続いて, べきの計算の例として, 210 を求めてみましょう.

2^10; (9.21)

を実行すると, 結果は

>> 2^10;

1024

(9.22)

という結果が得られます.

べきの計算では, 有理数や無理数のべき, 負数のべきも許されています. たとえば,

14√10

(9.23)

は, 数学の記法でも

10−14 (9.24)

と表現できるわけですが, これをMuPADで計算させたいときには

10^(-1/4); (9.25)

と入力します. 計算結果は以下のように表示されます.

>> 10^(-1/4);

3/4

10

-----

10

(9.26)

数学関数

MuPADに用意されている基本的な数学関数のうち比較的良く使いそうなものを表 9.3にまとめておきま

す. なお, 以下の使用例で関数の引数が定数になっている部分には変数を使うこともできます.

9.1.6 微分, 積分

MuPADを使うと, 微分, 積分に出て来る多くの計算をコンピュータにやらせることができます.

Page 142: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

124 第 9章 数式処理/数値計算ソフトウエア

表 9.3: 数学関数

関数名 意味 使用例

float 有理数を浮動小数点数で近似する float(5/3);

round 四捨五入する round(1.2);

frac 有理数から 1未満の部分を抽出する frac(23/4);

sqrt 平方根を取る sqrt(2);

sign 符号を取る sign(-10);

fact 階乗 fact(4);

abs 実数や複素数の絶対値を取る abs(1+I);

Re 複素数の実部を取る Re(3+4*I);

Im 複素数の虚部を取る Im(3+4*I);

conjugate 共役複素数を取る conjugate(3+4*I);

ln 対数関数 ln(E);

exp 指数関数 exp(1);

sin 正弦関数 sin(PI);

cos 余弦関数 cos(PI/2);

tan 正接関数 tan(PI/4);

asin 逆正弦関数 asin(sqrt(2)/2);

acos 逆余弦関数 acos(1/2);

atan 逆正接関数 atan(1);

和の公式

まず最初に, 和の公式をMuPADを使って求めてみましょう. 和を求めるには, MuPADの関数 sum を使

います.

では,

1 + 2 + · · ·+ n (9.27)

を計算してみましょう.

(9.1.6)を数学の記号∑を使って書き直すと,

n∑i=1

i (9.28)

となります.

MuPADで (9.1.6)を計算するための記法は,

sum(i,i=1..n); (9.29)

です.

(9.1.6)をMuPADで実行すると, 結果は次のようになります.

>> sum(i,i=1..n);

2

n n

- + --

2 2

(9.30)

Page 143: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.1. MuPAD入門 125

これは, みなさんが良く知っている公式

1 + 2 + · · ·+ n =n(n+ 1)

2(9.31)

と同じです.

続いて,

12 + 22 + · · ·+ n2 (9.32)

を計算してみましょう.

MuPADでは, 数のべきは記号「^」を使ってあらわします. たとえば, x2 のことは, x^2と標記します.

ですから, MuPADで (9.1.6)を計算するための記法は,

sum(i^2,i=1..n); (9.33)

です.

(9.1.6)を実行すると, 以下のような結果が得られます.

>> sum(i^2,i=1..n);

2 3

n n n

- + -- + --

6 2 3

(9.34)

これも, みなさんが良く知っている通りの結果です.

MuPADは無限級数を計算することもできます. 例として,

∞∑i=0

1

i!(9.35)

を計算してみましょう. (9.1.6)の和は, よく知られているように, オイラーの数 eになります.

(9.1.6)をMuPADで計算するための記法は,

sum(1/i!,i=0..infinity); (9.36)

です. ここに, 記号「!」はMuPADでも階乗を意味します.

(9.1.6)を実行すると,

>> sum(1/i!,i=0..infinity);

exp(1)

(9.37)

のような結果が得られます. exp(1)(数学の記法で書けば e1)は eと一致するので, MuPADが正しい結果

を出していることがわかります.

積の公式

積を求めるには, 関数 sum のかわりに関数 product を使います. 使い方は関数 sum と同じです.

例題として,

n∏i=1

i (9.38)

を計算してみましょう. (9.1.6)は, 定義から明らかに, nの階乗 n!になります.

(9.1.6)をMuPADの記法で書き直すと

product(i,i=1..n); (9.39)

Page 144: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

126 第 9章 数式処理/数値計算ソフトウエア

となります. これを実行すると,

>> product(i,i=1..n);

gamma(n + 1)

(9.40)

という結果が得られます.

上の計算結果において, gamma() はガンマ関数と呼ばれる関数をあらわしています. 数学の記法では, ガ

ンマ関数は Γ(x)と書かれます. ところで, 引数が自然数のとき, Γ(n+ 1) = n!となることが知られていま

す. ですから, この場合もMuPADは正しい結果を与えていることが確認できます.

極限

MuPADには, 極限を求める機能があります. このためには, 関数 limit を使います.

たとえば, みなさんが良く知っている通り,

limn→∞

(1 +

1

n

)n

= e (9.41)

なわけですが, MuPADは実際にこの計算をすることができます.

(9.1.6)の左辺をMuPADに計算させるには,

limit((1+1/n)^n,n=infinity); (9.42)

と入力します. すると, 以下のような結果が得られます.

>> limit((1+1/n)^n,n=infinity);

exp(1)(9.43)

exp(1)の意味はオイラーの数 eと同じですから, この結果は (9.1.6)と一致します.

次に,

limx→0

sinx

x(9.44)

の計算をしてみましょう. みなさんがよく知っている通り, この値は 1です.

MuPADに (9.1.6)を計算させるには,

limit(sin(x)/x,x=0); (9.45)

と入力します. 実行結果は次のようになります.

>> limit(sin(x)/x,x=0);

1(9.46)

微分

数学関数を微分するには, MuPADの関数 diff を使います.

たとえば,

d

dxsinx (9.47)

をMuPADに計算させたいときには,

diff(sin(x),x); (9.48)

と入力します.

結果は

Page 145: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.1. MuPAD入門 127

>> diff(sin(x),x);

cos(x)

(9.49)

のようになります.

合成関数の微分も簡単にできます.

たとえば,

d

dx(sinx)2 (9.50)

をMuPADに計算させたいときには,

diff(sin(x)^2,x); (9.51)

と入力します.

結果は

>> diff(sin(x)^2,x);

2 cos(x) sin(x)

(9.52)

のようになります.

多変数関数をある変数について偏微分するときには, 関数 diffの第 1引数に微分したい関数, 第 2引数に

微分したい変数を書きます.

たとえば, x2 sin yを xについて微分したいときには,

diff(x^2*sin(y),x); (9.53)

とします.

(9.1.6)を実行すると,

>> diff(x^2*sin(y),x);

2 x sin(y)

(9.54)

という結果が得られます.

同様に, x2 sin yを yについて微分したいときには,

diff(x^2*sin(y),y); (9.55)

とします.

(9.1.6)を実行すると,

>> diff(x^2*sin(y),y);

2

x cos(y)

(9.56)

という結果が得られます.

3変数以上の関数についても, 取り扱いはこれまでと同様です.

積分

数学関数を積分するときには, MuPADの関数 int を使います. 関数 int は, 定積分を求めるときにも不定

積分を求めるときにも使えます.

不定積分を求めるときの一般的な書き方は,

int(関数, 変数) (9.57)

Page 146: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

128 第 9章 数式処理/数値計算ソフトウエア

のようになります. ここに, 「関数」と書かれた部分には適当な数学関数, 「変数」と書かれた部分には x,y

などの変数が入ります.

例として, まず∫1

xdx (9.58)

の計算をしてみましょう. これを計算すると, 結果は log x(自然対数)となるはずです.

(9.1.6)を計算するためのMuPADの書式は,

int(1/x,x); (9.59)

です.

(9.1.6)を実行すると, 結果は

>> int(1/x,x);

ln(x)

(9.60)

となります. ln(x)はMuPADで自然対数を計算するための関数ですから, 上記では正しく不定積分の計算

がなされていることがわかります.

一方, 定積分を求めるときの一般的な書き方は,

int(関数, 変数=初期値..終了値) (9.61)

のようになります. ここに, 「関数」と書かれた部分には適当な数学関数, 「変数」と書かれた部分には x,y

などの変数が入ります. また, 初期値, 終了値には適当な数あるいは記号が入ります.

では, 定積分の例として, 半円の面積を求めてみましょう. このために, MuPADで∫ 1

−1

√1− x2dx (9.62)

の計算をします.

(9.1.6)をMuPADのコマンドを使って書き直すと,

int(sqrt(1-x^2),x=-1..1); (9.63)

のようになります.

(9.1.6)を実行したときの結果は

>> int((1-x^2)^(1/2),x=-1..1);

PI

--

2

(9.64)

のようになります. PIはMuPADで円周率 πをあらわす定数ですから, 半円の面積が正しく計算されてい

ることが確認できます.

先の計算結果からもわかるように, MuPADは数学演算の結果が数学記号を使って表現できるときには,

可能な限りその数学記号を保存しようとします. これはなぜかというと, 数学記号に基づいて計算している

限りは計算結果に誤差が含まれることはないからです.

計算結果として数学記号ではなく数値が必要なときには, MuPADの関数 float を使います.

たとえば, 半円の面積を数値で計算したいときには,

float(int(sqrt(1-x^2),x=-1..1)); (9.65)

(9.1.6)を実行すると, 結果は

>> float(int(sqrt(1-x^2),x=-1..1));

1.570796326

(9.66)

Page 147: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.1. MuPAD入門 129

のようになり, π/2の近似値が計算されていることが確認できます.

積分範囲として数ではなく記号を指定することもできます. このような例として,∫ b

a

x2dx (9.67)

の計算をしてみましょう. 結果は b3/3− a3/3になるはずです.

(9.1.6)をMuPADのコマンドに直した

int(x^2,x=a..b); (9.68)

を実行してみると,

>> int(x^2,x=a..b);

3 3

a b

- -- + --

3 3

(9.69)

となり, 正しい計算がなされていることが確認できます.

なお, 複雑な積分については, MuPADは計算結果を簡単な形で表示してくれないことがあります.

9.1.7 フーリエ変換とラプラス変換

本節では, 1年次後学期と 2年次前学期の講義内容をやや先取りするのですが, MuPADを使って関数を

フーリエ変換やラプラス変換する方法について説明します.

フーリエ変換とラプラス変換の定義

関数 f(t)が与えられているとき, 積分∫ ∞

−∞f(t)e−iωtdt (9.70)

によって定まる関数

F (ω) =

∫ ∞

−∞f(t)e−iωtdt (9.71)

F (ω)のことを, 関数 f(t)のフーリエ変換といいます.

また, 関数 F (ω)が与えられているとき, 積分

1

∫ ∞

−∞F (ω)eiωtdω (9.72)

によって定まる関数のことを, 関数 F (ω)の逆フーリエ変換 indexMuPAD@MuPAD!ぎゃくふーりえへんか

ん@逆フーリエ変換といいます.

フーリエ変換と逆フーリエ変換は互いに他方の逆変換になっています. ですから, ある関数をフーリエ変

換してからさらに逆フーリエ変換する, あるいは逆フーリエ変換してからフーリエ変換すると, もとの関数

に戻ります.

フーリエ変換は工学の分野では非常に重要な道具であり, 特に電気電子工学の分野では日常的に利用され

ています. 本学科では, 2年次前期に開講される電気数学 IIIでフーリエ変換が取り扱われています.

フーリエ変換と同様に工学の分野でよく使われるものに, ラプラス変換というものがあります. これは,

関数 f(t)に対し, 積分∫ ∞

0

f(t)e−stdt (9.73)

によって定まる関数

Page 148: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

130 第 9章 数式処理/数値計算ソフトウエア

F (s) =

∫ ∞

0

f(t)estdt (9.74)

のことをいいます. フーリエ変換とラプラス変換の違いは, フーリエ変換では ω が実数だったのに対して,

ラプラス変換では sが複素数であることです.

フーリエ変換と同様に, ラプラス変換にも逆変換が存在します. これを逆ラプラス変換と言います. 逆ラ

プラス変換の定義は逆フーリエ変換に比べてやや複雑で,

limT→∞

∫ σ+iT

σ−iT

F (s)estdt (9.75)

というものです. ここに, σは sの実部をあらわしています.

ラプラス変換も工学の分野では非常に重要な道具であり, 電気電子工学の分野で日常的に利用されます.

本学科では, 1年次後期に開講される電気数学 IIでラプラス変換が取り扱われています.

ここでは, 1年次の学生にとってはやや先回りになるのですが, MuPADを使って数学関数をフーリエ変

換やラプラス変換する方法について簡単に触れておくことにします.

フーリエ変換する

数学関数をフーリエ変換するには, すこし長いのですが, transform::fourier というコマンドを使います.

では, 例題をやってみます. まず, 関数

exp[−t2]

を ∫ ∞

−∞exp[−t2] exp[−wt]dt

によってフーリエ変換してみましょう. 計算結果を gという変数に記憶しておくことにすると, このための

MuPADのコマンドは,

g:=(transform::fourier(exp(-t^2),t,w));�� ��←↩ (9.76)

となります. MuPADによる計算結果は以下のように表示されます.

>> g:=(transform::fourier(exp(-t^2),t,w));

/ 2 \

1/2 | w |

PI exp| - -- |

\ 4 /

(9.77)

逆フーリエ変換する

数学関数を逆フーリエ変換するには, transform::ifourier というコマンドを使います. では, 先にフーリエ

変換した関数を逆フーリエ変換して, もとの関数に戻ることを確認しましょう. このためのMuPADのコマ

ンドは,

transform::ifourier(g,w,t);�� ��←↩ (9.78)

となります. MuPADによる計算結果は以下のように表示されます.

>> transform::ifourier(g,w,t);

2

exp(- t )

(9.79)

逆フーリエ変換によって確かにもとの関数 exp[−t2]に戻っていることが確認できます.

Page 149: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 131

ラプラス変換する

数学関数をラプラス変換するには, transform::laplace

indexMuPAD@MuPAD!transform::laplace@transform::laplaceというコマンドを使います.

例題として, 正弦関数 sin(t)をラプラス変換してみます. 計算結果は hという変数に記憶しておくことに

しましょう.

h:=(transform::laplace(sin(t),t,s));�� ��←↩ (9.80)

と入力すると, MuPADは

>> h:=(transform::laplace(sin(t),t,s));

1

------

2

s + 1

(9.81)

という結果を表示します. みなさんはまだ知らないでしょうが, これは sin(t)のラプラス変換に一致します.

逆ラプラス変換する

数学関数を逆ラプラス変換するには, transform::ilaplace というコマンドを使います.

例題として, 先の計算結果を逆ラプラス変換してみます.

transform::ilaplace(h,s,t)�� ��←↩ (9.82)

MuPADは計算結果を以下のように表示します.

>> transform::ilaplace(h,s,t);

sin(t)

(9.83)

こんども, 逆変換によってもとの関数が得られていることが確認できます.

9.2 Scilab入門

科学技術計算用のソフトウェアの分野の中で, 特に数値計算に関連した分野では, MATLAB という商用ソ

フトウェアが事実上の標準となっています. ところで, MATLABは非常に高価な商用ソフトウェアであり,

一般ユーザには必ずしも手が出しやすいものではありません. そこで, MATLABと同等の機能を実現する

ことを目指したフリーウェアがいくつか開発されています. それらの中で代表的なものに, Scilab, Octave,

MaTX などがあります. 上述の 3種類のソフトウェアにはそれぞれ特徴があるのですが, ここではこれらの

中で Scilab について取り上げます.

9.2.1 Scilabとは

Scilabは, フランスの INRIA(Institut National de Recherche en Informatique et en Automatique) で開

発されている, 科学技術計算用の有名な商用ソフトウェアであるMATLABとほぼ同等な機能を持つフリー

ウェアです.

Scilabは, 線形代数, 制御系設計, 信号処理, 最適化などの分野における各種の問題を解くための関数を備

えている他, プログラミング言語として必要な機能をひと通り持っているため, 高度で複雑な処理をおこな

うプログラムをきわめて短かく記述することができます.

Scilabの標準的な実行環境はインタプリタと呼ばれるものです. インタプリタとは, みなさんが書いたプ

ログラムが 1行ずつコンピュータによって解釈されて実行されてゆくような環境のことをいいます. 一般

Page 150: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

132 第 9章 数式処理/数値計算ソフトウエア

に, インタプリタ型の実行環境にはプログラムの実行速度がやや犠牲になるという欠点があるのですが, そ

の反面, プログラム中にある誤りを探すことが容易になるという利点と, ちょっとした計算をするときに電

卓感覚で利用できるという利点があります.

Scilabの使い方を解説した日本語の教科書は残念ながら存在しませんし, 英語の教科書も非常に少ないで

す. 一方, Scilabには使いやすいオンラインマニュアルが付属しているので (ただし記述はわかりにくいで

す), これを利用すれば Scilabのいろいろな機能や使い方について調べることができます.

上述のように Scilabには非常に多くの機能があるのですが, 本節ではみなさんが現在受講している電気数

学 I(線形代数)に関連した機能に絞って Scilabの使い方を, 本項執筆時点における最新版である Scilab-2.6

に基づいて解説します.

これ以外の機能, 特にグラフの描画やプログラミングの方法などについては, 原田助手が作成した資料

( harada/Lab/scilab-intro.pdf)やオンラインマニュアルなどを参照して下さい.

9.2.2 Scilabの起動と終了

Scilabを起動する

Scilabを起動するには, ktermなどで

scilab�� ��←↩ (9.84)

と入力します. ここに,�� ��←↩ は

�� ��Enter キーを押すことを意味します.

上記のコマンドを実行すると, Scilabが起動し, 画面に図 9.3のようなウィンドウがあらわれます. 図 9.3

図 9.3: Scilabの起動画面

の画面に出ている

-->

という部分が Scilabのプロンプトです. この部分の右側にいろいろなコマンドを打ち込んでゆくことで,

Scilabにいろいろな作業を実行させることができます. ウィンドウ上部には, いろいろなメニューを呼び出

すためのボタンがあります. これらのメニューの使い方についてはこれから順を追って説明してゆきます.

Scilabを終了する

Scilabを終了したいときには, Scilabのプロンプトに続いて

quit�� ��←↩ (9.85)

と入力します.

Page 151: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 133

9.2.3 いくつかの例題

Scilabにはウィンドウ上部のメニューから呼び出すことができる豊富な例題が用意されています. ここで

は, 例題をいくつか実行してみることにします.

簡単な例題

では, 図 9.3に示されている Demos というボタンを押す (マウスカーソルをこのボタンに合わせてマウ

ス左ボタンを押す)という操作をおこなってみて下さい. すると, 画面に図 9.4のようなウィンドウがあらわ

れます. このウィンドウは, Scilabの各種のデモ (例題)を選択するためのウィンドウです. ここで, Scilab

図 9.4: デモ (例題)を選択するためのウィンドウ

の主ウィンドウの方を見て下さい. すると, ウィンドウ内に

-->exec(’SCI/demos/alldems.dem’); (9.86)

という表示が出ています. これは, Scilabのプログラムが記載された alldems.dem というファイルを実行し

ている, という意味です.

では, まず最初に一番上にある “Introduction to SCILAB” というメニューを選択してみましょう. この

ためには, “Introduction to SCILAB”という文字の部分にマウスカーソルを合わせてマウス左ボタンを押

します. すると, 図 9.4のウィンドウは消えてしまいます. 何がおこったのでしょうか?

Scilabの主ウィンドウの方に目を移してみましょう. ここまでの操作が正常におこなわれていれば, Scilab

の主ウィンドウは図 9.5のような状態になっています. ウィンドウ内に

図 9.5: デモ “Introduction to SCILAB”が実行されている画面

Page 152: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

134 第 9章 数式処理/数値計算ソフトウエア

pause mode: enter empty lines to continue. (9.87)

という新しいメッセージが表示されているのがわかるでしょうか?

実は, この状態で, すでにデモ “Introduction to SCILAB”が実行されています. このデモでは, 利用者が�� ��Enter キーを押すたびにいろいろな作業が実行されてゆくようになっています. ですから, “enter empty

lines to continue.” (継続するには空行を入力せよ)というメッセージが表示されているわけです. メッセー

ジが英語なので, すこしわかりにくいかもしれません.

では, さっそく�� ��Enter キーを押してみましょう. すると, 画面には,

-->// SCILAB OBJECTS (9.88)

という表示が出ます. いささか素っ気ないですが, これから Scilabのオブジェクト (変数など)を紹介する

よ, ということが宣言されているわけです.

画面を見ながら�� ��Enter キーを数回押し, どのような表示があらわれるか確認してみて下さい. まったく面

白くありませんが, 図 9.6のような感じでデモが続いてゆきます. ここでは, Scilabの基本的な構文が紹介さ

図 9.6: デモ “Introduction to SCILAB”を途中まで実行した画面

れています. ここから, たとえば a という変数に値 1を代入するには

a=1 (9.89)

と書けば良いことがわかります.

このデモは退屈なので, とりあえず動作確認ができたところで打ち切ることにします.

デモを中断するためには,

C-c (9.90)

(�� ��Ctrl キーを押しながら

�� ��c キーを押す) と入力します. すると, 画面左端のプロンプトが

-1-> (9.91)

というふうに変わります. この状態では, 先ほどのデモは中断されています. 中断されたデモを継続して実行

することも, 完全に終了することもできるのですが, ここでは完全に終了することにします. このためには,

abort�� ��←↩ (9.92)

と入力して下さい. すると, プロンプトは通常のもの (--> )に戻り, デモの実行は完全に終わります.

描画の例題

続いて, グラフを描く例題をいくつか実行してみます. 再び図 9.3 に示されている Demos というボタ

ンを押して下さい. そして, 画面にあらわれた図 9.4 のようなウィンドウで, 上から 2 番目の “Graphics:

Page 153: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 135

図 9.7: デモ “Graphics: Intro-

duction”の選択メニュー

図 9.8: 空白のグラフ描画用ウィンドウ

Introduction” というメニューを選んで下さい. すると, 図 9.7のような選択メニューと図 9.8のような空白

のグラフ描画用ウィンドウがあらわれます. では, さっそく一番上の “plot2d” の部分を押して選択してみ

ましょう. すると, 図 9.9のようなメッセージウィンドウがあらわれます. このウィンドウには, これから実

行される Scilabのコマンドがすべて表示されています. ウィンドウ左下の Ok ボタンを押すと描画が実行

され, グラフィックスウィンドウには図 9.10のようにグラフが描画されます. 他のグラフもいくつか試して

図 9.9: これから実行するコマン

ドを確認するためのウィンドウ

図 9.10: plot2dの例題で描画されたグラフ

みましょう.

グラフ描画のデモを終わるときには, 図 9.7の左下にある Cancel というボタンを押します. さいごにこ

のボタンを押してグラフ描画のデモを終了しておいて下さい.

図 9.4の内容を見ればわかるように, Scilabにはこれ以外にも多数のデモが用意されています. この中で

は, グラフィックス関係と “Car parking”, “Bike Simulation (1)” は見るだけでも面白いと思います. 各自で

試してみて下さい.

9.2.4 Scilabのオンラインマニュアル

Scilabのオンラインマニュアルを見たいときには, 図 9.3の画面上側のボタンの並びの一番右側にある

Help というボタンを押します. すると, 図 9.11のようなウィンドウが開きます. このウィンドウの上側は

各トピックのヘルプを表示するためのもので, 下側はいくつかに分類されたヘルプの項目の中から特定の項

Page 154: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

136 第 9章 数式処理/数値計算ソフトウエア

目を選択するためのものです. どちらもウィンドウ内に収まらないので, ウィンドウ左側にスクロールバー

が付いています. 図 9.11のウィンドウの操作法は次の通りです.

各トピックを選択するためのウインドウ

項目選択ウインドウキーワード入力ボックス

スクロールバー

終了ボタン

図 9.11: Scilabのヘルプ画面

あるトピックのヘルプを見る ウィンドウ上側で, 見たいトピックに対応する文字列にマウスカーソルを合

わせてマウス左ボタンを押す.

トピックウィンドウ内をスクロールさせる ウィンドウ上側左端のスクロールバーにマウスカーソルを合わ

せ, マウス左ボタンを押したままマウスを動かす.

トピックの分類項目を選択する ウィンドウ下側で, 見たい分類項目対応する文字列にマウスカーソルを合

わせてマウス左ボタンを押す.

分類項目ウィンドウ内をスクロールさせる ウィンドウ下側左端のスクロールバーにマウスカーソルを合わ

せ, マウス左ボタンを押したままマウスを動かす.

キーワードでトピックを検索する ウィンドウ下段のキーワード入力ボックス ( “Appropos”と書いてある

部分の右) にキーワードを入力し,�� ��Enter キーを押す.

ヘルプを終了する ウィンドウの左端下から 2段目の Done というボタンを押す.

では, さっそく三角関数 cos(·)のオンラインマニュアルを探してみることにします. キーワード入力ボッ

クスに cos という文字列を入力して�� ��Enter キーを押して下さい (図 9.12). すると, 文字列 cos を含むマニュ

図 9.12: 三角関数のマニュアルを探そうとしているところ

アルの一覧がヘルプウィンドウの上側にあらわれます (図 9.13). ここには 文字列 cos を含むトピックのマ

ニュアルがすべて列挙されていますが, 大部分は今探したいものとは無関係です. 今探している cos(·)のマニュアルは上から 5番目になります. では, 上から 5番目の

図 9.13: 文字列 cos を含むトピックの一覧が表示されたところ

cos - cosine function (9.93)

という部分にマウスカーソルを合わせてマウス左ボタンを押して下さい. すると, 図 9.14のように関数 cos(·)のマニュアルが表示されます. このウィンドウにおける操作の方法は, コマンド jless あるいは less とほぼ

Page 155: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 137

図 9.14: 関数 cos のマニュアルが表示されたところ

表 9.4: Scilabのマニュアル閲覧中の操作操作 意味 別のキー操作

q 終了する

C-n 1行下にスクロール�� ��↓

C-p 1行上にスクロール�� ��↑

同様です. 念のため, 図 9.14のウィンドウにおける操作法を表 9.4列挙しておきます. なお, 図 9.14の右端

のメニューの最下段にある Close window を押すことでもヘルプの表示を終了することができます. また,

図 9.14のウィンドウの左端にあるスクロールバーも使えます. ただし, このスクロールバーを使うときには,

マウスの左ボタンではなく中央ボタンを使います. スクロールバー (灰色の部分)にマウスカーソルを重ね,

マウス中央ボタンを押したままにしてマウスを移動させると, ウィンドウ内のテキストを上下にスクロール

させることができます. また, 画面の左端のスクロールバー上下にある白色の部分にマウスカーソルを重ね

てマウス中央ボタンを押すと, ウィンドウ内のテキストを上下に一気にスクロールさせることができます.

図 9.14の右端にはいろいろなメニューボタンがありますが, これらについてはここでは説明しません. こ

れは, この部分にあるメニューが「マニュアルを見る」という本来の目的とはあまり関係ないからです (実

は, この画面では xless というコマンド less を X Window System に対応するよう拡張したコマンドが起動

しています).

ウィンドウ下段から分類項目を選ぶときには, ウィンドウ下段に表示された文字列の中から見たい項目を

選びます. 選択の仕方はウィンドウ上段と同じで, 希望する項目に対応する文字列にマウスカーソルを合わ

せてマウス左ボタンを押します.

では, ウィンドウ下段上から 3番目の “Elementary Functions” を選択してみましょう. すると, ウィンド

ウ上段に表示されている内容が Elementary Function (基本的な関数)の一覧に切り換わります (図 9.15).

図 9.15: 項目 Elementary Functions に含まれるトピックの一覧が表示されたところ

Page 156: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

138 第 9章 数式処理/数値計算ソフトウエア

9.2.5 Scilabの実行環境

Scilabは, 利用者がキーボードから打ち込んだコマンドを 1行ずつ解釈して実行します. このような実行

環境はインタプリタと呼ばれます. なお, コマンドをキーボードから打ち込むかわりに, 必要なコマンド群

をすべてファイルに書いておいて, 一括して実行することもできます. また, Muleのウィンドウ内でコマン

ドを編集しておいて, そのコマンドを ktermのカット&ペースト機能を使って Scilabのウィンドウに貼り付

けることでもコマンドを実行できます. 不慣れなうちは最後に述べた方法が一番使いやすいでしょう.

このように対話的に使うときに便利なように, シェルと同様に, Scilabにもコマンド行編集やヒストリの

機能があります. これらの機能を表 9.5にまとめておきます. ただし, C-fなどの記号は�� ��Ctrl キーと

�� ��f キーを同時に押すことなどを意味します. これらの機能はシェルやMuleと同じなので, 改めて覚える必要はな

表 9.5: Scilabのコマンド行編集機能機能 キー入力

1文字右に進む C-f

1文字左に戻る C-b

1個前のコマンドに戻る C-p

1個次のコマンドに進む C-n

カーソルの左の文字を消す C-h

カーソル位置の文字を消す C-d

カーソル位置から行末までを消す C-k

いでしょう. なお, C-fなどの変わりにカーソルキーを使うこともできますし, C-hは�� ��BackSpace で代用で

きます.

9.2.6 Scilabの構文と関数

Scilabは高水準のプログラミング言語です. Scilabの最も単純な使い方は「高機能な関数電卓として使

う」というものですが, いろいろなプログラムを利用者が自分で作成することで, はるかに高度な使い方を

することができます.

Scilabの基本的な使い方は,

Scilabのウィンドウ内でコマンドなどを打ち込んで�� ��Enter キーを押す

というものです. 打ち込む内容は, 代入, 比較, Scilabの関数の呼び出し, 繰り返しや条件分岐のための命令

など多岐にわたります. ここでは, Scilabでコマンドなどを打ち込むときの構文や Scilabで使える関数につ

いて簡単に説明します.

演算子

Scilabには, 四則演算などの各種の演算子が用意されています. これらの中で基本的なものを表 9.6にま

とめておきます.

表 9.6の演算子の中で説明を要するのはべきだけでしょう.

たとえば, 2の 10乗を計算したいときには,

2^10�� ��←↩ (9.94)

と入力します. すると,

-->2^10

ans =

1024.

(9.95)

という結果が得られます. なお, “ans” という文字の意味については後で説明します.

Page 157: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 139

表 9.6: Scilabの演算子記号 意味

+ 数, ベクトル, 行列の加算

- 数, ベクトル, 行列の減算

* 数, ベクトル, 行列の乗算

/ 数の除算

’ ベクトル, 行列の転置

^ 数, 正方行列のべき

** 数, 正方行列のべき (^と同じ)

定数

Scilabは円周率%pi , 虚数単位%i およびオイラーの数%e (=2.71828...) を定数としてあらかじめ用意して

くれています. ですから, たとえば

%pi�� ��←↩ (9.96)

と入力すると,

%pi =

3.1415927

(9.97)

という出力が得られます.

Scilabの定数をいくつか表 9.7にまとめておきます.

表 9.7: Scilabの定数記号 意味

%pi 円周率

%i 虚数単位

%e オイラーの数

%inf 無限大

%t, %T 真 (論理値)

%f, %F 偽 (論理値)

代入と比較

MuPADと同じように, Scilabでも代入と比較を区別するために別の記号を使います. ところで, この記

号の使い方は, MuPADとは全然違います. まずこれについて見てみましょう.

Scilabでは, 変数に数値を代入するときには記号「=」を使い, 数値が等しいかどうかを判定 (比較) する

ときには記号「==」を使います.

Scilabで変数に値を代入するときには,

x=10�� ��←↩ (9.98)

などのように, 等号の左側に変数名, 右側に値 (データ)を書きます. 取り扱うことができるデータの種類は,

整数, 実数, 複素数, ベクトル, 行列などです. 代入文を使うときには, 左辺の変数がどのような種類である

かを利用者が気にする必要はありません. Scilabは, 右辺に書かれた内容から, 左辺の変数がどのような種

類であるかを自動的に判断してくれます.

なお, Scilabで代入を含まない式を評価した場合, 結果は ans という名前の変数に自動的に代入されます.

変数の値を画面に表示したいときには, その変数名をキーボードから入力します. たとえば,

Page 158: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

140 第 9章 数式処理/数値計算ソフトウエア

x�� ��←↩ (9.99)

と入力すると, 変数 xの値が画面に表示されます.

上に述べたように, 論理的な比較をするときには, 記号==を使います. 論理的な比較をおこなったときの

結果は真 (%t; 画面には Tと表示される)と偽 (%f; 画面には Fと表示される)のいずれかです.

ここで, 代入と比較の例を見てみましょう. Scilabの主ウィンドウ内で

x=1�� ��←↩ (9.100)

x==2�� ��←↩

と入力してみて下さい. この例では, 最初の行は「変数 xに値 1を代入する」, 2行目は「変数 xの値と数 2

を比較する」という意味になります. これを実行した結果は, 以下のようになります.

-->x=1

x =

1.

-->x==2

ans =

F

(9.101)

2番目の比較の式 (x==2)が実行された結果は変数 ansに代入されるので, 実行後には変数 ansの内容が F(偽)

と表示されています.

論理値については, 入力するときの表記 (%t$, \verb画面に表示したときの表記 (T, F)が異なることに

注意して下さい. ですから, たとえば変数 xに論理値「真」を代入するつもりで

x=T

と入力しても, 期待した結果は得られません. このようなことをやりたい場合には,

x=%t

と入力する必要があります.

計算結果の表示の抑制

Scilabのコマンドをキーボードから打ち込んでゆくとき, 行の最後にセミコロン を打つと, 行を評価した

結果は画面には表示されません. これに対し, セミコロンを打たなければ, 行を評価した結果が画面に表示

されます.

コメント

Scilabでは, 文字「//」で始まる行はコメント とみなされます. コメントとは, おもに人間にとってプロ

グラムを読みやすくする目的で挿入されるいろいろな記述のことです. コメントはプログラム本体では実行

されませんし, 計算結果に影響を与えることもありません.

入力行の継続

1行の長さが長すぎるときには, コンマの後に記号「...」を使うと, 次の行にコマンド行を継続できます.

Page 159: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 141

関数, 制御構造など

さらに, Scilabには, 各種の数学関数を含むいろいろな関数が用意されています. どのような関数が用意さ

れているかについてはマニュアルなどを参照して下さい. また, Scilabは for文や while文, if文などといっ

た各種制御構造をサポートしています. これらの意味については現段階では理解できなくても構いません.

9.2.7 線形代数の例題

では, いくつかの例題を通して Scilabの簡単な使い方を学んでゆきましょう. なお, 以下の例では小さい

行列のみを扱いますが, Scilabは非常に大きな行列 (1000行くらいのものでも)も何の問題もなく扱えるこ

とを注意しておきます.

行列やベクトルの定義

まず, 2行 2列の Aという名前の行列を定義してみます.

A=[1,2;3,4]�� ��←↩ (9.102)

と入力して下さい.

すると, 画面には

-->A=[1, 2; 3, 4]

A =

! 1. 2. !

! 3. 4. !

(9.103)

という表示が出ます.

上記の操作で定義されるのは, [1 2

3 4

]という行列です.

なお, 今定義した行列 Aは, あなたが Aという変数の内容を他のもので上書きしてしまわない限り, Scilab

を終了するまではずっと残っています. そして,

A�� ��←↩ (9.104)

と入力することで, いつでも Aの内容を確認することができます. 試してみて下さい.

ここで, Scilabにおける行列の一般的な記法を説明しておきましょう.

Scilabで行列を定義するときには,

• 行列全体を角括弧「[ ]」 で囲う

• 個々の要素をコンマ「,」 あるいは 1個以上の半角スペース「 」 で区切る, これらを併用してもよい

• 1行が終わったところには, セミコロン「;」 を打つか改行を入れる, これらを併用してもよい

という規則にしたがいます.

ですから,

A=[1 2�� ��←↩ (9.105)

3 4]�� ��←↩

というように入力しても, 上と同じ行列 Aを定義することができます.

なお, 半角スペースや改行を 2個以上連続させて置いた場合にも, これらが 1個しかない場合と効果は変

わりません.

横ベクトル (行ベクトル) を定義したいときには,

Page 160: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

142 第 9章 数式処理/数値計算ソフトウエア

x=[1,2,3,4]�� ��←↩ (9.106)

などのようにします. 上の例の通り打ち込むと,

--> x=[1,2,3,4]

x =

! 1. 2. 3. 4. !

(9.107)

という結果が得られます.

同様に, 縦ベクトル (列ベクトル) を定義したいときには,

x=[1;2;3;4]�� ��←↩ (9.108)

などのようにします. この例を打ち込むと, 結果は

-->x=[1;2;3;4]

x =

! 1. !

! 2. !

! 3. !

! 4. !

(9.109)

のようになります. Scilabは横ベクトルと縦ベクトルを区別します.

なお, 横ベクトルと 1行 n列の行列は同じものであり, 縦ベクトルと n列 1列のの行列は同じものです.

行列やベクトルの加減算と乗算

行列やベクトルの加減算と乗算には, 記号+ - *を使います.

まず, 縦ベクトルの加算の例を見てみましょう.

x =

[1

2

], y =

[10

20

]

という 2個のベクトルを定義し, これらのベクトルの加算を実行してみましょう.

x=[1;2];�� ��←↩

y=[10;20];�� ��←↩ (9.110)

x+y�� ��←↩

と入力してみて下さい. ここに, 1行目と 2行目の行末の「;」はベクトル xとベクトル yの内容を画面に表

示させないようにするために入れてあります.

結果は

-->x=[1;2];

-->y=[10;20];

-->x+y

ans =

! 11. !

! 22. !

(9.111)

Page 161: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 143

となります. ベクトルの加算が正しくおこなわれていることが確認できるでしょうか?

次に, 行列の減算の例を見てみましょう.

A =

[1 2

3 4

], B =

[10 0

0 10

]

という 2個の行列を定義し, これらの行列の減算を実行してみましょう.

このためには,

A=[1,2;3,4];�� ��←↩

B=[10,0;0,10];�� ��←↩ (9.112)

A+B�� ��←↩

とします.

結果は

-->A=[1,2;3,4];

-->B=[10,0;0,10];

-->A+B

ans =

! 11. 2. !

! 3. 14. !

(9.113)

となります. 行列の減算が正しく実行できていることが確認できるでしょうか?

続いて,

C =

[1 2 3

4 5 6

], D =

1 100

2 200

3 300

という 2個の行列を定義し, これらの行列の積 C ×Dを計算してみましょう.

このためには,

C=[1,2,3;4,5,6];�� ��←↩

D=[1,100;2,200;3,300];�� ��←↩ (9.114)

C*D�� ��←↩

と入力します.

入力に誤りがなければ, 結果は

-->C=[1,2,3;4,5,6];

-->D=[1,100;2,200;3,300];

-->C*D

ans =

! 14. 1400. !

! 32. 3200. !

(9.115)

のようになるはずです.

ところで, 加算, 減算, 乗算を実行しようとしたとき, 行列やベクトルの大きさが合わない場合にはどうな

るでしょうか?

例として,

Page 162: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

144 第 9章 数式処理/数値計算ソフトウエア

v =[1 1

], w =

[2 2

](9.116)

という 2個の横ベクトルに対し, v×wを計算してみましょう. もちろん, 本来この計算はできないはずです.

Scilabのウィンドウで

v=[1,2];�� ��←↩

w=[3,4];�� ��←↩

v*w�� ��←↩

(9.117)

と入力すると,

-->v=[1,2];

-->w=[3,4];

-->v*w

!--error 10

inconsistent multiplication

(9.118)

というエラーメッセージが出ます. このエラーメッセージの意味は, 「形が合わないから掛算ができない」

というようなものです.

ところで, (9.2.7)で定義されたベクトル v,wの内積を計算するにはどうしたらよいでしょうか? このため

には, wを転置して縦ベクトルにすればよいです. ベクトルや行列を転置するために, Scilabは演算子「’」

を用意しています. これを使ってみましょう.

(9.2.7)の入力が終わっている状態で, Scilabのウィンドウ内で

v*w’�� ��←↩ (9.119)

と入力してみて下さい. すると, 今度は正しく計算ができ,

-->v*w’

ans =

11.

(9.120)

という表示が画面にあらわれます.

さいごに, 行列とベクトルの乗算をやってみます.

A =

[1 2

3 4

], x =

[1

1

]とし, 行列 Aとベクトル xの積を計算してみます.

A=[1,2;3,4];�� ��←↩

x=[1;1];�� ��←↩ (9.121)

A*x�� ��←↩

と入力して下さい. 入力に誤りがなければ,

-->A=[1,2;3,4];

-->x=[1;1];

-->A*x

ans =

! 3. !

! 7. !

(9.122)

という結果が得られます.

Page 163: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 145

行列やベクトルの次元を知る: size

行列やベクトルの次元を知りたいときには, 関数 size を使います. 関数 size は行列の行の大きさと列の

大きさを要素として持つ 2次元のベクトルを値として返します. たとえば, 2行 3列の大きさを持つ行列を

A=[11,12,13;14,15,16];�� ��←↩

のように定義し,

size(A)�� ��←↩

と入力すると,

-->A=[11,12,13;14,15,16];

-->size(A)

ans =

! 2. 3. !

(9.123)

のような結果が得られます. 得られた結果はベクトル [23]であり, 第 1要素が行列 Aの行の大きさ, 第 2要

素が行列 Aの列の大きさになっていることが確認できます.

関数 size は, 縦ベクトルを n行 1列の行列, 横ベクトルを 1行 n列の行列として取り扱います. ですから,

たとえば

x=[11,12,13,14]; (9.124)�� ��←↩

size(x)�� ��←↩

と入力すると (xは 1行 4列の行列, すなわち横ベクトル), 結果は

-->x=[11,12,13,14];

-->size(x)

ans =

! 1. 4. !

(9.125)

となりますし,

y=[23;24;25];�� ��←↩ (9.126)

size(y)�� ��←↩

と入力すると (xは 3行 1列の行列, すなわち縦ベクトル), 結果は

-->y=[23;24;25];

-->size(y)

ans =

! 3. 1. !

(9.127)

のようになります.

行列の要素の参照と部分抽出

行列の要素を参照するには,

A(1,2)�� ��←↩ (9.128)

Page 164: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

146 第 9章 数式処理/数値計算ソフトウエア

のように, 行列の名前に続いて ( )の中の行列の行の番号と列の番号を順番に指定します. 同様に,ベクトル

の要素を参照するには,

x(2)�� ��←↩ (9.129)

のように, ベクトルの名前に続いて ( )の中にベクトルの要素の番号 (添字)を指定します. 縦ベクトルの場

合にも横ベクトルの場合にも同様の記法が使えます.

記号コロン (「:」) を使うと, いくつかの添字をまとめて指定できます. 記号「:」の使い方は,

初期値:終了値 (9.130)

あるいは

初期値:刻み:終了値 (9.131)

または

: (9.132)

です. なお, 「初期値」, 「終了値」, 「刻み」と書かれた部分には適当な数が入ります. また, 記号「:」を

単体で使うと, 「考えうる添字すべて」という意味になります.

いくつか例を見てみましょう.

まず,

A =

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

という行列を定義しておきます. このためには, 以下のように入力して下さい.

A=[11,12,13,14,15;�� ��←↩

21,22,23,24,25;�� ��←↩ (9.133)

31,32,33,34,35];�� ��←↩

A(2,3)�� ��←↩ (9.134)

と入力すると, 行列 Aの第 2行 3列の要素が抽出され,

-->A(2,3)

ans =

23.

(9.135)

のような出力が得られます.

次に, 行列 Aの第 3行, 第 2列から 4列までを抽出してみましょう.

A(3,2:4)�� ��←↩ (9.136)

と入力してみて下さい. すると,

-->A(3,2:4)

ans =

! 32. 33. 34. !

(9.137)

のような出力が得られます.

続いて, 行列 Aの第 2行から 3行まで全体を抽出してみましょう. このために, 列の方については,「考え

うる添字すべて」という意味で, 記号「:」を単体で使います.

A(2:3,:)�� ��←↩ (9.138)

Page 165: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 147

と入力してみて下さい. すると,

-->A(2:3,:)

ans =

! 21. 22. 23. 24. 25. !

! 31. 32. 33. 34. 35. !

(9.139)

という結果が得られます.

ベクトルについても同様のことができます.

実は, 演算子「:」によって得られるものは数値が規則正しく並んだベクトルです. ですから, たとえば

1:4�� ��←↩ (9.140)

と入力すると,

-->1:4

ans =

! 1. 2. 3. 4. !

(9.141)

という結果が得られます. 今までベクトルや行列について記号「:」を使って範囲指定していたときには, 実

は添字としてベクトルを使っていただけだったのです. 実際, ベクトルや行列の一部を抜き出したいときに

は, 添字として任意のベクトルを使うことができます.

これ以外に, 行列から要素を抜き出すために%tと%fが並んだパターンを使う, という方法があります.

ベクトルのノルムを計算する: norm

関数 norm はベクトルなどのノルムを計算します. ここに, ベクトルのノルムとはそのベクトルの長さ (あ

るいは大きさ)のことです. 数学の本では, ベクトルのノルムは ∥ · ∥という記号で表記されることが多いです. ベクトル x = [x1, . . . , xn]に対し, このベクトルのノルムの典型的な定義のひとつは,

∥x∥ =√x21 + x2

2 + · · ·+ x2n

です.

さて, scilabでベクトルのノルムを計算するときには, 関数 norm を使います. 使用例を以下に示します.

x=[1,1,1];�� ��←↩ (9.142)

norm(x)

結果は以下のようになります.

--> norm(x)

ans =

1.7320508

(9.143)

この結果は,√12 + 12 + 12 =

√3を数値に直したものになっています.

行列式の計算: det

関数 det は行列式を計算します. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (9.144)

det(A)�� ��←↩

Page 166: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

148 第 9章 数式処理/数値計算ソフトウエア

結果は以下のようになります.

--> A=[1,2;3,4];

-->det(A)

ans =

- 2.

(9.145)

逆行列の計算: inv

関数 inv は逆行列を計算するための関数です. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (9.146)

inv(A)�� ��←↩

結果は以下のようになります.

--> A=[1,2;3,4];

--> inv(A)

ans =

! - 2. 1. !

! 1.5 - 0.5 !

(9.147)

対角行列の生成: diag

関数 diag はベクトルからそのベクトルの要素を対角要素に持つ正方行列を生成します.

たとえば,

x=[1,2,3,4];�� ��←↩ (9.148)

X=diag(x)�� ��←↩

とすると,

--> x=[1,2,3,4];

-->X=diag(x)

X =

! 1. 0. 0. 0. !

! 0. 2. 0. 0. !

! 0. 0. 3. 0. !

! 0. 0. 0. 4. !

(9.149)

といった結果が得られます.

固有値の計算: spec

関数 spec は行列の固有値を計算します. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (9.150)

spec(A)�� ��←↩

結果は以下のようになります.

Page 167: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

9.2. Scilab入門 149

--> spec(A)

ans =

! - 0.3722813 !

! 5.3722813 !

(9.151)

線形方程式を解く

方程式 Ax = bを解くときには,

x=A\b;�� ��←↩ (9.152)

とします.

たとえば,

A=[2 0;0 4];�� ��←↩

b=[1;1];�� ��←↩ (9.153)

A\b�� ��←↩

と入力すると

ans =

0.50000

0.25000

(9.154)

という結果が得られます. この解が等式 [2 0

0 4

][0.5

0.25

]=

[1

1

]

を満たすことを確認して下さい.

Page 168: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 169: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

151

第10章 ネットワークコマンド

今回の講義では, 基本的なネットワークコマンドの使い方について学ぶことにします.

10.1 ホスト名, ドメイン名, IPアドレス

みなさんが今使っているコンピュータには, たとえば

en01.eee.u-ryukyu.ac.jp

といったような名前が付いています.

この名前の中で, 最初のピリオド以降の部分をドメイン名とよびます.

また, 最初のピリオド以前の部分 (この例では「ed01」)が, このコンピュータの名前になります (図 10.1).

en01.eee.u-rykyu.ac.jp

そのコンピュータの名前

ドメイン名

図 10.1: コンピュータの名前とドメイン名

ドメイン名は, あるネットワーク内のコンピュータすべてに共通です. たとえば, この学科に属するすべ

てのコンピュータは, eee.u-ryukyu.ac.jpというドメイン名を持ちます. 一方, たとえば情報工学科に属する

コンピュータは, ie.u-ryukyu.ac.jp というドメイン名を持ちます.

コンピュータのホスト名とは,コンピュータの名前からドメイン名を取り除いたもの (上の例では「en01」),

あるいは完全な名前「en01.eee.u-ryukyu.ac.jp」のいずれかのことを指します. この講義では 完全な名前

「en01.eee.u-ryukyu.ac.jp」の方をホスト名と呼ぶことにします.

コンピュータにはホスト名は別に IPアドレスという番号が割り振られています.

現在主流の規格では, IPアドレスは 8ビット数 4個分の長さ (32ビット)を持ちます. ただし, 0と 1がな

らんだパターンはとても読みにくいので, これを表記するときには, まず IPアドレスに対応するビットパ

ターンをを 8ビットごとに区切り, 続いてそれぞれの 8ビットずつのかたまりを 10進数 (0から 255まで)

に直して読み, さいごにその各々の数値をピリオドで区切ってならべます (図 10.2).

例えば, 琉球大学のWWWサーバの IPアドレスは

133.13.7.6 (10.1)

となっていますし, 電気電子工学科の DNSサーバの IPアドレスは

133.13.40.2 (10.2)

になっています. これらの IPアドレスはシステム管理者によって設定されます. 一般ユーザは設定するこ

とができません.

IPアドレスは, 世界中に散らばっている個々のコンピュータに対して一意的に決まる必要があります.

昔 IP アドレスの規格を作った人達は, 32ビット分のデータがあれば世界中のコンピュータを一意的に表

記するのに十分であると考えていました. ですが, コンピュータが爆発的に普及したため, コンピュータに

Page 170: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

152 第 10章 ネットワークコマンド

10000101 00001101 00000111 00000110

10000101 00001101 00000111 00000110

128*1+64*0+32*0+16*0+8*0*4*1+2*0+1*1=133

128*0+64*0+32*0+16*0+8*1*4*1+2*0+1*1=13

128*0+64*0+32*0+16*0+8*0*4*1+2*1+1*1=7

128*0+64*0+32*0+16*0+8*0*4*1+2*1+1*0=6

8ビットずつに区切る

8ビットの各ブロックを10進数に直しピリオドで区切ってならべる

133.13.7.6

32ビットのIPアドレス

図 10.2: IPアドレスの読み方

割り振るべき IPアドレスが足りない, という事態が起こっています. この対策として, IPアドレスの桁数

を 128ビットに拡張した規格 (IPv6) が提案され, 徐々に使われるようになってきています. また, 別の対策

として, あるネットワーク内には, そのネットワークだけで流通する IPアドレスを割り振り, さらに, 外部

ネットワークに迷惑をかけないように, そのネットワーク内のコンピュータが外部ネットワークとは間接的

にしか通信できないように設定しておくしておく, ということがよくおこなわれます. このように, そのネッ

トワーク内のみで流通する IPアドレスをプライベート IPアドレスと呼び, 外部と間接的にしか通信しない

ネットワークのことをプライベートネットワークといいます.

電気電子工学科の教育用コンピュータ室は, プライベートネットワークになっています. そして, たとえ

ば en01 には

192.168.1.201

という IPアドレスが割り振られています.

あるコンピュータが直接認識できるホスト名と IPアドレスの組は, おもに/etcというディレクトリにあ

る hostsというファイルに記録されています.

jless␣/etc/hosts�� ��←↩ (10.3)

と入力して, このコンピュータが他のコンピュータから情報をもらわなくても認識できるホスト名と IPア

ドレスの組み合わせを確認して下さい.

このファイルに記載されていないコンピュータの情報は, NISあるいは DNSというサービスを利用して

取得されます.

なお, 必要に応じて各ホストに IPアドレスを自動的に割り振るDHCPというしくみが採用されている場

合もあります. この学科の教育用コンピュータシステムでは DHCPは利用されていません.

10.2 ネットワーク番号

IPアドレスの前半の数ビット分はそのネットワークを識別するために使われます. これをネットワーク

番号と呼びます.

ネットワーク番号として最初の 8ビットが使われたネットワークをクラス Aのネットワーク, 最初の 16

ビットの部分が使われたものをクラス Bのネットワーク, 最初の 24ビットの部分が使われたものをクラス

Page 171: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

10.3. ネットマスク 153

Cのネットワーク と呼びます. そして, ある程度歴史のある組織は上記のような分類にしたがった IPアド

レス琉球大学はクラス Bのネットワークです.

世界中で使われているコンピュータの数と比較して IPアドレスとして使える数値の種類が十分多かった

ころは, 上記のような大雑把な分類でも IPアドレスが足りなくなることはありませんでした. しかし, 近年

はコンピュータの数が増えすぎたため, 上記のような効率の悪い分類では IPアドレスに対する需要に対処

できなくなっています. ですから, 近年は, クラス単位ではなく, 任意のブロック単位で IPアドレスを割り

付けられるようにした, CIDR(Classless Inter-Domain Routing) に基づいた IPアドレス体系というものが

主流になっています.

さて, クラス A, クラス Bやクラス Cの IPアドレスを持っている組織では, ネットワークを細分してか

ら使うことが多いです. 細分されたネットワークをサブネットと呼びます.

ここで, 例として, 133.13のネットワークで, ホスト名として使える 16ビットのうち, 最初の 6ビットを

ネットワークを識別するために使うことを考えましょう. 133.13のネットワークでは, 2進数表記で

10000101 00001101 00000000 00000000∼ 10000101 00001101 11111111 11111111 (10.4)

の番号をホストに割り振ることができるのですが, これらのうち第 17ビットから第 22ビットまでをネット

ワークをあらわすための番号として使うことにします (図 10.3). この場合には, 各々のサブネットに割り振

1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1

硫球大学のネットワーク番号

この部分をサブネットのネットワーク番号として使う

残りの部分はそのネットワーク内の各ホストをあらわすのに使う

図 10.3: サブネットへの分割の例

られるネットワーク番号は, IPアドレスの第 1ビットから第 22ビットまでになります.

10.3 ネットマスク

ネットワーク番号を抽出するために, ネットマスクというものが使われます.

ネットマスクは 32ビットの長さをもつビットパターンで, これとそのホストの IPアドレスと 2進数の掛

算をするとネットワークアドレスが抽出されるよう設定されます. クラス Bのネットワークのネットマス

クは 255.255.0.0, クラス Cでは 255.255.255.0になります. 上のサブネットの例では

11111111 11111111 11111100 00000000 (10.5)

がネットマスクになります. これを 10進で表記しなおすと,

255.255.252.0 (10.6)

になります.

IPアドレスのうち, ホスト番号の部分をすべて 1に設定したものにも特別な意味があります. これは, ブ

ロードキャストアドレスと呼ばれ, そのネットワーク内にあるすべてのホストを同時に指し示すのに利用さ

れます.

Page 172: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

154 第 10章 ネットワークコマンド

10.4 MACアドレス

コンピュータにはネットワークインターフェースカードという通信用の部品がついていて, この部品にも

固有の番号が割り振られています. この番号をイーサネットアドレスあるいはMAC アドレスと呼びます.

これは 48ビットの数で, 8ビットごとに 16進数表記したものをコロン (:)区切って並べることで表記され

ます. この番号はメーカーによって PROMに焼き付けられ, それ以降変更されることはありません.

以下に, イーサネットアドレスの一例を示します.

00:40:05:a7:62:82 (10.7)

10.5 ifconfig: ネットワークインターフェースの情報を取得

コンピュータをネットワークに接続して通信をおこなわせるためには, コンピュータとネットワークを接

続するインターフェースが必要です. これをネットワークインターフェースといいます.

ネットワークに接続されたコンピュータが正しく通信をおこなうことができるためには, ネットワークイ

ンターフェースがMACアドレスを持ち, かつ IPアドレス, ネットマスクが正しく設定されている必要があ

ります. では, ネットワークインターフェースが正しく設定されているかどうかを確認したいときにはどう

したらよいでしょうか?

このために, ifconfig というコマンドが用意されています.

コマンド ifconfig は, そのコンピュータに接続されたネットワークインターフェースの状態を表示します.

では, このコマンドを使ってみましょう. ktermを開いて, 以下のコマンドを実行して下さい.

/sbin/ifconfig␣-a�� ��←↩ (10.8)

このコマンドを en01 で実行すると, 図 10.4のような出力が得られます (コンピュータによって出力は少し

ずつ違います). 図 10.4において, xl0というのが, このコンピュータに塔載されているネットワークイン

図 10.4: ifconfigの出力

ターフェースの種類です. inet という部分は IPアドレス, netmaskという部分はネットマスク, broadcast

という部分はブロードキャストアドレス, etherという部分はイーサネットアドレスをあらわします.

図 10.4の例では, ed1というインターフェースが

• IPアドレス: 192.168.1.201

• ネットマスク: ffffff00

• ブロードキャストアドレス: 192.168.1.255.255

• MACアドレス: 00:00:e8:3a:50:13

Page 173: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

10.6. ping 155

を持っていることがわかります.

ネットマスクの表記が 16進数になっていることに注意して下さい. コマンド ifconfig は, ネットマスクを

4ビットごとに区切り, 各 4ビット分のブロックを 16数で読み換えて表示します.

なお, 2番目の lo0 というのはループバックデバイスといって, このコンピュータをネットワークに接続

されている他のコンピュータと統一的に取り扱うためのしくみです.

10.6 ping

他のホストが動いているかどうかを確認するためのコマンドが ping です.

このコマンドの使い方は

/sbin/ping␣ホスト名�� ��←↩ (10.9)

です.

ping は, 一定の時間ごとに相手のコンピュータにパケットを送り, 結果を画面に表示します. pingは C-c

と入力すれば終了します.

では, 以下を実行して下さい.

/sbin/ping␣en**名�� ��←↩

(しばらく待つ) (10.10)

C-c

図 10.5に ping の出力結果の一例を示します.

図 10.5: pingの出力

10.7 nslookup

コンピュータのホスト名と IPアドレスの片方がわかっていてもう片方がわからないという状況で, ホス

ト名から IPアドレスを, あるいは IPアドレスからホスト名を調べたい, ということが時折生じます. この

ような場合に有用なコマンドが nslookup です.

コマンド nslookupの使い方は,

nslookup␣ホスト名�� ��←↩

あるいは

nslookup␣IPアドレス�� ��←↩

Page 174: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

156 第 10章 ネットワークコマンド

のいずれかです.

コマンド nslookup は, DNSサーバというサーバと通信をおこなうことで, みなさんが知りたい情報を取

得し, 画面に表示します.

では, コマンド nslookup を使ってみましょう. 以下を実行してみて下さい.

/usr/sbin/nslookup␣www.u-ryukyu.ac.jp�� ��←↩ (10.11)

実行結果は, たとえば図 10.6のようになります.

図 10.6: コマンド nslookup の実行結果

また, IPアドレスからホスト名を検索することもできることを確認するために,

nslookup␣133.13.7.6�� ��←↩ (10.12)

というコマンドも実行して下さい.

10.8 いわゆる rコマンド

本節では, ネットワークに接続されている他のコンピュータを利用するために用意されている, 最初の文

字が rで始まるコマンド (rコマンドと呼ばれます) の中で, rloginというコマンドのみを紹介します.

10.8.1 rlogin

コマンド rlogin は, 他の UNIXが動いているコンピュータにログインするために使われるコマンドです.

このコマンドは, 信頼性が高い環境 (互いに接続しあう 2台のコンピュータがお互いのことを信頼している

状態)のみで利用されます. この場合の「信頼している」とは, 相手側のコンピュータに悪意を持った利用

者がいない, 通信が盗聴されていないなどのさまざまなことがらを指します. ですから, インターネットで

の利用には完全に不適当です.

rloginの使い方は,

rlogin␣ホスト名�� ��←↩ (10.13)

あるいは

rlogin␣-l␣ユーザ名␣ホスト名�� ��←↩ (10.14)

のいずれかです. ホスト名の部分には, そのコンピュータの完全な名前 (例えば en01.eee.u-ryukyu.ac.jp)が

入るか, あるいは短い名前 (en01)が入ります. ホスト名の部分に長い名前が必要か短い名前でよいかは, 接

続元と接続先の関係で決まります. 今あなたが使っているコンピュータにおけるあなたのログイン名とこれ

Page 175: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

10.9. telnet 157

からあなたがリモートログインしたいコンピュータにおけるあなたのログイン名が同一のときには, コマン

ド login にオプションをつける必要はありません.

rloginで他のコンピュータでログインするときには, 通常のログインと同様に, パスワードの入力が求めら

れます. 設定次第でパスワードの入力を省くこともできるのですが, これは安全性の観点から薦められませ

ん. この理由は, もしあなたのパスワードがあるコンピュータで破られた場合, あなたがパスワードなしでロ

グインできる設定になっているすべてのコンピュータが危険にさらされるからです. どうしてもパスワード

なしでログインしたいときには, ホームディレクトリに .rhosts という名前のファイルを作ります. .rhosts

の中身は, パスワードなしでリモートログインしたいコンピュータの名前を列挙したものです. みなさんが

このファイル内あるコンピュータ名を記載した場合, みなさんはこのコンピュータがいかなる状態にあろう

とも無条件に信頼することになります. ですから, 特別な理由がない限り, .rhosts を作成すべきではありま

せん.

10.9 telnet

他のコンピュータ (UNIX とは限らない) にログインするために使われるもっとも一般的なコマンドが

telnet です.

このコマンドは, それほど信頼性が高くない環境でも利用されます. telnet の代表的な使い方は,

telnet␣ホスト名

です. ホスト名の部分に長い名前が必要か短い名前でよいかは, 接続元と接続先の関係で決まります. telnet

は, かづてはインターネットで安全に利用することができるコマンドだと思われていたのですが, 通信が暗

号化されていないために盗聴に対して完全に無力である (特にパスワードを盗まれてしまう)ことと, 同じ

理由で進行中の telnet による通信を第 3者に乗っ取られてしまう危険があることから, 現在では, インター

ネットで提供されるサービスのうち最も危険なもののひとつと考えられています. これらの危険を回避する

唯一の手段が暗号化です. 最近は, 多くの場合は, telnet のかわりに, 通信を暗号化する ssh というコマンド

が 使われるようになっています.

telnet には, ログインする以外にも, ユーザ情報の取得, 電子メールの送信, ネットニュースを読むなどい

ろいろな機能がありますが, ここでは単純に telnet を使ってとなりの端末にログインすることだけを試して

みることにします.

では,

telnet␣en**�� ��←↩ (10.15)

と入力して下さい. ただし, **のところにはあなたの隣のコンピュータの名前が入ります.

すると, 画面に

login: (10.16)

というプロンプトが出ます. ここでふたんコンピュータにログインするときと同様にみなさんのログイン名

を入力すると, 続いて

Password:

というプロンプトが出てパスワード入力を要求されます. ここでは, ふだんと同じパスワードを入力して下

さい.

ログインに成功すると, 画面は図 10.7のようになります. ログインに成功したあとは, ふだんコンピュー

タを使うときと同じ感覚でほとんどすべての作業ができます.

10.10 セキュリティに関する注意

上でも述べたように, コマンド rlogin は, セキュリティ上の理由から, インターネットでの利用には完全

に不適当です. また, コマンド telnet もパスワードなどのデータを暗号化せずにインターネットで送信する

Page 176: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

158 第 10章 ネットワークコマンド

図 10.7: telnet でログインに成功したところ

ため, ネットワークが盗聴されている場合には容易にみなさんのアカウントが乗っ取られてしまう可能性が

あり, やはり危険です. そこで, 信頼できないネットワークを利用した通信においてセキュリティを確保す

るために, ssh というプロトコル (データ通信の手順)が定められています. このプロトコルでは転送される

データがある程度の強度の暗号化方式を用いて暗号化されるため, 設定が適切になされていれば, rlogin や

telnet による通信と比較すると通信の安全性が格段に向上しています. UNIX系のオペレーティングシステ

ムでは, sshプロトコルを利用した通信のためのコマンドは, ふつうは ssh という名前です.

10.11 ftp

ftpは, 異なるコンピュータのあいだでファイルを転送するためのコマンドです.

使い方は,

ftp␣ホスト名�� ��←↩ (10.17)

です. ftpの利用形態には,

1. 遠隔端末に正規のアカウントを持っている場合

2. 匿名ユーザとして利用する場合

の 2種類があります. 2番目の使い方を, anonymous ftp といいます.

みなさんがインターネット上のいろいろなWebページからファイルをダウンロードする場合, ファイル

の転送のためにWWWブラウザが内部で ftpを利用していることが多いです. 最近は直接みなさんが ftp

コマンドを利用する機会は比較的少なくなっているので, ここでは使い方は説明しません.

Page 177: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

159

第11章 WWWブラウザ

Webページを閲覧する目的で利用されるプログラムをWWWブラウザといいます.

WWW ブラウザには非常にいろいろな種類があるのですが, Internet Explorer というプログラムと

Netscapeというプログラムが非常に大きなシェアを持っています. この学科のコンピュータ室では Netscape

が利用可能です.

セキュリティ対策などの理由により, この学科のコンピュータ室では, 琉球大学内部のWWWサーバの

みにアクセスを許可しています. ですから, 大学で琉球大学以外のWebページを閲覧したい場合は, 総合情

報処理センターのアカウントを取得して総合情報処理センターにあるコンピュータを利用する必要があり

ます.

先に述べたように, WWWブラウザには非常にいろいろな種類があります. そして, それらの中には, 画

像データを取り扱えるものと文字のみが取り扱えるものがあり, また多機能なものから機能が非常に少ない

ものまで様々な種類があります.

ところで, みなさんは, 文字のみが取り扱えるWWWブラウザと聞くと, 単純に機能が劣っていると考え

るかもしれません. しかし, これは必ずしも正しくありません.

画像が取り扱えず, 機能が非常に限定されたWWWブラウザには,

• プログラム自体がコンピュータにかける負荷がすくない

• 通信するデータの量がすくないので, 転送速度が遅いネットワークでも快適に使える

• 機能が限定されているためにセキュリティ上の問題が生じにくい

という利点があります.

一方で, Internet Explorer や Netscape は, 多機能であるが故に,

• ある程度高速なコンピュータでないと快適に動作しない

• 遅いネットワークでは快適に使えない

• 致命的なセキュリティホールが頻繁に発見される

という問題があります. 特に Internet Explorer はセキュリティホールが多いことで有名です.

みなさんが自分のWebページを作成するときには, WWWブラウザにはいろいろな種類があるというこ

とを常に認識しておくべきです. 自分が使っているWWWブラウザで綺麗に表示されるWebページが他

のWWWブラウザで見やすく表示されるとは限りません. Webページを作成して公開するときには, 最低

限 Internet Explorer, Netscape Navigator およびなにかひとつの文字のみが取り扱えるWWWブラウザで

動作確認を取るべきです.

WWW ブラウザを用いてインターネットの Web ページなどを閲覧するときには, Uniform Resource

Locator(URL)という記法を用いて閲覧したいインターネット上の資源を指定します. URLの一般的な記

法は,

プロトコル://サーバのドメイン名/パス名 (11.1)

のようになっています. 上記において,「プロトコル」と書かれた部分には, 通信に使われる規格の名前が入

ります. この部分はたいていは「http」です. また, 「サーバのドメイン名」という部分には相手のWWW

サーバの名前が, 「パス名」の部分には見たいWebページの内容が起かれているディレクトリが入ります.

パス名を省略すると, 多くの場合にはそのWWWサーバの標準的なトップページが表示されます.

たとえば, 琉球大学の総合情報処理センターのページの URLは

Page 178: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

160 第 11章 WWWブラウザ

http://www.cc.u-ryukyu.ac.jp/ (11.2)

ですし, 琉球大学の総合Webページの URLは

http://www.u-ryukyu.ac.jp/ (11.3)

です.

この講義では, これから画像が取り扱えるWWWブラウザと文字のみが取り扱えるWWWブラウザの

違いを簡単に見ることにします. 画像が取り扱えるWWWブラウザとしては Netscape を, 文字のみが取

り扱えるWWWブラウザとしては w3mを取り上げます.

11.1 Netscape

11.1.1 Netscapeの起動

Netscapeを起動するには,

netscape�� ��←↩ (11.4)

と入力します. すると, しばらく待った後で, 図 11.1および図 11.2のようなウィンドウと, 利用許諾条件を

表示するための図 11.3のようなウィンドウが開きます.

図 11.1: Netscape起動直後にあ

らわれるウィンドウ (1)

図 11.2: Netscape起動直後にあ

らわれるウィンドウ (2)

図 11.3: Netscapeの利用許諾条件表示画面

利用許諾条件は本来は注意深く読むべきものですが,この講義ではとりあえずこの条件に同意してNetscape

本体を動かすことにします. 図 11.3左下の 同意する というボタンにマウスカーソルを合わせてマウス左ボ

タンを押して下さい.

すると, 図 11.4のような画面があらわれます. この画面は, しばらく待つか, ウィンドウのどこかでマウ

ス左ボタンを押すと, 図 11.5のような空白ページに切り換えわります.

なお,

netscape␣http://www.u-ryukyu.ac.jp�� ��←↩ (11.5)

Page 179: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

11.1. Netscape 161

スクロールバー(スクロール不要のときには表示されない)

閲覧したいURLなどをここで指定するファイルメニュー

ブックマーク(しおり)戻る 次

図 11.4: Netscapeの起動画面 (1)

図 11.5: Netscapeの起動画面 (2)

のように, 直接 URLを指定して Netscapeを起動することもできます.

では, URLを指定していくつかWebページを閲覧してみることにします.

まず総合情報処理センターのWebページを閲覧してみましょう. Netscapeのウィンドウの上から 3段目

の「場所」と書かれた部分の横の白いボックスのどこか (図 11.4参照)にマウスカーソルを合わせてマウス

左ボタンを 1回押して下さい. 続いて, このボックスの中に,

http://www.cc.u-ryukyu.ac.jp/ (11.6)

という文字列を入力して�� ��Enter キーを押して下さい. すると, 図 11.6のように, 総合情報処理センターの

Webページが表示されます.

続いて, 琉球大学の総合Webページを閲覧してみます. 再び Netscapeのウィンドウの上から 3段目の

「場所」と書かれた部分の横の白いボックスのどこかにマウスカーソルを合わせてマウス左ボタンを 1回押

し, キーボードを使って

http://www.cc.u-ryukyu.ac.jp/ (11.7)

という文字列を

http://www.u-ryukyu.ac.jp/ (11.8)

に変更してから�� ��Enter キーを押して下さい. すると, 図 11.7のように, 琉球大学の総合Webページが表示

されます.

11.1.2 Netscapeの基本操作

Netscapeにはいろいろなメニューがありますが, よく使われるのは「ファイル」メニューと「ブックマー

ク」, 「戻る」, 「次」の 4種類だけです.

「ファイル」メニューを開くには, マウスカーソルを Netscapeのウィンドウの左上の「ファイル」と書

かれている部分に合わせて, マウス左ボタンを押します. すると, 図 11.8のようなウィンドウがあらわれる

ので, マウスカーソルを移動させ, 希望するメニューのところまで移動したらもう 1回マウス左ボタンを押

します.

Netscapeを終了する

Netscapeを終了するには, 「ファイル」メニューを開き, 一番下の「終了」という部分にマウスカーソル

を合わせてマウス左ボタンを押します.

Page 180: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

162 第 11章 WWWブラウザ

図 11.6: 総合情報処理センターのWebページ 図 11.7: 琉球大学の総合Webページ

新しいウインドウを作成する

閲覧したいWebページやファイルを指定する

ページの内容をファイルに保存する

ページの内容を印刷する

終了する

図 11.8: Netscapeの「ファイル」メニュー

Webページやファイルなどを開く

閲覧したいWebページやファイルなどを指定するには, 「ファイル」メニューを開き, 上から 2番目の

「ページを開く」という部分にマウスカーソルを合わせてマウス左ボタンを押します. すると, 図 11.9のよ

うな, Webページやファイルなどを指定するためのウィンドウが開きます.

図 11.9: NetscapeでWebページやファイルなどを指定するためのウィンドウ

開きたいWebページの URLやファイルなどの名前を図 11.9中央の白いボックス内にキーボードから入

力し, ウィンドウ左下の 開く ボタンにマウスカーソルを合わせてマウス左ボタンを押すと, そのWebペー

ジやファイルなどを開くことができます.

ファイルを指定するときには, ファイルを絶対パスで指定したものを図 11.9中央の空白部分に書き込み

ます.

また, 図 11.9右端のやや上寄りにある ファイルを選択... というボタンを押すと, 図 11.10のようなウィ

ンドウがあらわれます.

図 11.10の中央から左寄りの「ディレクトリ」というボックスでは, 表示されたディレクトリ名にマウス

カーソルを合わせてマウス左ボタンを押すことでディレクトリが選択できます (「..」は 1個根本のディレ

クトリを指します). また, 中央から右寄りの「ファイル」と表示されたボックスでは, 上と同様にしてファ

イルを選択することができます. さらに, 下段の「選択」と書かれたボックスにファイル名を直接入力する

こともできます.

Page 181: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

11.1. Netscape 163

図 11.10: Netscapeのファイル選択ウィンドウ

画面左下の OK ボタンにマウスカーソルを合わせてマウス左ボタンを押すと, そのファイルを開くこと

ができます. 画面右下の キャンセル ボタンを押すとキャンセルができます.

上記の方法以外に, Netscapeのウィンドウの上から 3段目にある「場所:」と書かれた部分の右側の白い

ボックスに URLやファイル名を直接キーボードから入力して�� ��Enter キーを押すことでも, Webページや

ファイルを開くことができます. また, 白いボックスの右側の下向きの三角形の部分にマウスカーソルを合

わせてマウス左ボタンを押すと, 図 11.11のように最近閲覧した URLなどの一覧が表示されます. 見たい

URLのところにマウスカーソルを合わせてマウス左ボタンを押すと, その URLを開くことができます.

ここでURLなどを直接指定する

この部分の三角系を押すと最近閲覧したURLなどを選択できる

図 11.11: 最近閲覧した URLなどの表示

新しいウィンドウを開く

新しいウィンドウを開くには,「ファイル」メニューを開き, 一番上の「Navigatorウィンドウ」という部

分にマウスカーソルを合わせてマウス左ボタンを押します.

Page 182: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

164 第 11章 WWWブラウザ

移動

ページの内容が画面に収まりきらないときには, 画面右端および下端に表示されるスクロールバーにマウ

スカーソルを合わせてマウス左ボタンを押し下げ, そのままの状態でマウスを移動させると, ページ内でス

クロールができます. カーソルキーを使っても同様の操作ができます.

Webページによっては, ウィンドウがいくつかのサブウィンドウ (フレーム)に分割され, それぞれのフ

レームにスクロールバーがついていることもあります. このような場合は, あるフレームにマウスカーソ

ルを入れてからマウス左ボタンを押し, それに続いてカーソルキーを押すと, そのフレーム内で画面をスク

ロールさせることができます.

以前見ていたWebページに戻ったり, 一旦以前見ていたWebページに戻ったあとでまた次のWebページ

を見たくなったりしたときには, Netscapeのウィンドウの上から 2段目の「戻る」「進む」というメニュー

を使います. これらのメニューにマウスカーソルを合わせてマウス左ボタンを押すことで, 現在のページよ

り 1個前に参照したページや 1個後に参照したページを再び表示することができます.

印刷する

ページの内容を印刷したいときには, 「ファイル」メニューを開き, 下から 3番目の「印刷」という部分

にマウスカーソルを合わせてマウス左ボタンを押します (Netscapeの状態によって, この部分の表示が「フ

レームを印刷」のように変わることがあります). すると, 図 11.12のようなウィンドウが開きます. 印刷メ

図 11.12: Netscapeの印刷ウィンドウ

ニューでは, Webページをプリンタに送るか PostScriptファイルとして保存するかを選択することができ

ます. 標準ではプリンタに送る設定になっていますが, 最上段の「出力先:」という列にある「ファイル」と

いう文字の左の菱形にマウスカーソルを合わせてマウス左ボタンを押すと PostScriptファイルに保存する

設定に変わります.

印刷する場合には, 上から 2段目の「印刷コマンド:」という部分の右側のボックスにコマンドを指定しま

す. 通常は設定を変更する必要はありません. 一方, PostScriptファイルに保存する場合には, 上から 3段目

の「ファイル名:」という部分の右側のボックスにファイル名を入力します.

ウィンドウ左下の 印刷 という部分にマウスカーソルを合わせてマウス左ボタンを押すと印刷が実行され

ます. ウィンドウ右下の キャンセル という部分にマウスカーソルを合わせてマウス左ボタンを押すと印刷

をキャンセルします.

データを PostScriptファイルで保存する設定で一連の操作をおこなった場合は, 上記の操作がおわって

も, あなたのディレクトリに PostScriptファイルが生成されるだけで, 実際にデータが印刷されることはあ

りません. データを印刷したいときには,

lpr␣ファイル�� ��←↩ (11.9)

と入力する必要があります.

Page 183: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

11.2. w3m 165

ブックマーク

Netscapeのウィンドウの上から 3段目, 左端の「ブックマーク」という部分にマウスカーソルを合わせ

てマウス左ボタンを押すと, ブックマークのウィンドウが開きます (図 11.13).

図 11.13: Netscapeのブックマーク

図 11.13の一番上の「ブックマークを追加」という部分にマウスカーソルを合わせてマウス左ボタンを押

すと, 現在閲覧しているURLをブックマークに追加することができます. また, ブックマークにすでに登録

されている URLについては, その URLの部分にマウスカーソルを合わせてマウス左ボタンを押すことで,

対応するWebページにジャンプすることができます.

また, 上から 3番目の「ブックマークを編集」という部分にマウスカーソルを合わせてマウス左ボタンを

押すとブックマークを編集することができます. この操作をおこなうと, 図 11.14のようなウィンドウが開

きます.

いらなくなったブックマークを消したいときには, 消したいブックマークの部分にマウスカーソルを合わ

せてマウス左ボタンを押し, 当該行の背景がクリーム色で表示された状態にしてから, ウィンドウ上部の「編

集」メニューにマウス左ボタンを合わせてマウス左ボタンを押し, あらわれるメニュー (図 11.15の上から

5番目の「削除」にマウスカーソルを合わせてマウス左ボタンを押します.

図 11.14: Netscapeのブックマーク編集画面

図 11.15: 「編集」メニュー

11.2 w3m

この節では, テキスト形式でWebページを表示するブラウザによってWebページの見え方がどう変わる

かを見るために, w3m というブラウザを利用します. ただし, w3mの細かい使い方は説明しません. w3m

Page 184: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

166 第 11章 WWWブラウザ

の利用法を知りたい場合は,

jman␣w3m�� ��←↩ (11.10)

と入力してオンラインマニュアルを参照して下さい.

では早速, w3mを使って総合情報処理センターのWebページを閲覧して下さい. このためには, ktermで

w3m␣http://www.cc.u-ryukyu.ac.jp/�� ��←↩ (11.11)

と入力します. すると, 図 11.16のように, ktermのウィンドウ内に総合情報処理センターのWebページが

表示されます.

図 11.16: 総合情報処理センターのWebページ (w3mによる表示)

続いて, テキスト形式のブラウザを使うと問題が生じる例として, 琉球大学の総合Webページを見てみま

しょう. w3mで指定した URLを開くときには,

U (11.12)

と入力します. すると, ウィンドウ下部に

Goto URL: (11.13)

というプロンプトが出るので, この部分に閲覧したい URLを指定します. ここでは,

http://www.u-ryukyu.ac.jp/�� ��←↩ (11.14)

と入力して下さい.

上記の操作をおこなうと, 図 11.17 のような表示が出ます. ここから, 琉球大学の総合Webページはテキ

ストベースのブラウザでは正常に表示されないことがわかります.

実は, w3mには, このようなページを 1個の文書に変換して表示する機能があります. この機能を使いた

いときには

F

と入力します. このように操作すると, 図 11.18のように, このページの内容が画面に表示されます. ただ

し, すべてのテキストベースのブラウザにこのような便利な機能が備わっているわけではありません.

w3mを終了するときには,

q (11.15)

と入力します. すると, ウィンドウ下部に

Do you want to exit w3m (y or n)? (11.16)

という表示が出るので,

y�� ��←↩ (11.17)

と入力して下さい. すると w3mが終了します.

Page 185: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

11.2. w3m 167

図 11.17: 琉球大学の総合Webページ (w3mに

よる表示 (1))

図 11.18: 琉球大学の総合Webページ (w3mに

よる表示 (2))

Page 186: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 187: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

169

第12章 シェル, 環境設定ファイル, Perl入門

12.1 シェル

シェルとは, UNIX系のオペレーティングシステムにおいて, 利用者からの入力を受け, それをオペレー

ティングシステムが理解できる命令に変換し, オペレーティングシステムからの出力を利用者に伝えるプロ

グラムのことです. また, シェルにはプログラミング言語としての側面もあり, シェル言語で書かれたシェル

スクリプトと呼ばれるプログラムを用意して実行することで, いろいろな作業を自動化することができます.

UNIX系のオペレーティングシステムではいろいろなシェルが使われているのですが, これらは大きく分

けると, sh系

と csh 系の 2種類に分類されます. sh系のシェルの元祖は Bシェルと呼ばれるシェル (/bin/sh)です.

このシェルには, 簡潔で高速であるという利点がある一方で, 利用者との対話的な処理に関連した機能が貧

弱だという欠点があります. 現在では, Bシェルのユーザインターフェースに関連した機能を大幅に強化し

た bash と呼ばれるシェルが, Linuxを中心に広く使われています.

csh系のシェルの元祖は Cシェルと呼ばれるシェル (/bin/csh)です. このシェルは, Bシェルよりもユー

ザとの対話機能が豊富なシェルとして開発されたもので, C言語に近い文法を持ちます. ただし, プログラ

ミング言語としては, Bシェルと比較すると, 必ずしも使いやすくありません. cshについてもユーザイン

ターフェースに関連した機能を大幅に強化した tcsh と呼ばれるシェルが広く使われていたのですが, みな

さんが使っている FreeBSDというオペレーティングシステムでは, この拡張機能は/bin/cshに統合されて

います.

みなさんが利用している環境では, ログインシェル (みなさんがログインしたときに利用されるシェル)と

して, /bin/cshが指定されています. これ以外に bash もインストールされているので, 興味がある人はコ

マンド chfn を使ってログインシェルを変更しても構いません. コマンド chfn についてはオンラインマニュ

アルを参照して下さい. なお, 対話的に利用している限りでは, csh と bash のあいだには, 利用者が意識で

きるような違いはほとんどありません. 一方で, シェル言語で書かれたプログラム (シェルスクリプトと呼

ばれます) を作成する際には, たいていの場合は Bシェルが利用されます. Bシェルのスクリプトを作成す

る際には, スクリプトの最初の行に

#!/bin/sh (12.1)

という内容を書いておきます.

12.2 シェルプログラミング

先ほど述べたように, シェルにはプログラミング言語としての側面もあり, シェルスクリプトと呼ばれる

プログラムを作成して実行することができます. シェルのプログラムを組むことをシェルプログラミングと

言います.

プログラムを書くと聞くと, 何か難しいことをするように感じる人もいると思いますが, 実際やらなけれ

ばならないことはとても簡単です.

最も簡単なシェルスクリプトは, みなさんがふだん使っているコマンドをファイルに並べた書いただけの

ものです. ただし, 最初の行の扱いだけは特別です. ここには, #!/bin/shという内容を書いておく必要が

あります.

シェルスクリプトの例を図 12.1に示します.

では, Muleを使って, 図 12.1のような内容のファイルを作成して下さい. ファイル名を foo.sh とします.

なお, Muleを使ってシェルスクリプトを編集しようとすると, 最初の行に

Page 188: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

170 第 12章 シェル, 環境設定ファイル, Perl入門

#!/bin/sh

echo "This is a sample of shell script"

sleep 2

ls -laF ~

sleep 2

cat ~/.login

sleep 2

echo "Done"

図 12.1: シェルスクリプトの例

#! /bin/csh -f (12.2)

という内容が自動的に挿入されることがありますが, この部分は不要なので消してしまって下さい.

このシェルスクリプトを実行するには, ktermなどで

sh␣foo.sh�� ��←↩ (12.3)

と入力するか, あるいは

chmod␣+x␣foo.sh�� ��←↩ (12.4)

./foo.sh�� ��←↩

と入力します.

図 12.1の内容のうち, sleepというコマンドは初出なので, これについて簡単に説明します. コマンド sleep

は, このコマンドの後で指定された数字に対応する秒数だけシェルを休止します.

シェルスクリプトを人間にとって読みやすくするために, 注釈を入れるということがよくおこなわれます.

シェルスクリプトの註釈は, 文字#から始まり行末で終わる, という規則になっています. 注釈の部分はシェ

ルスクリプトを実行する際には完全に無視されます. ですから, 注釈とは, あくまで人間が読むためのもの

であって, プログラムの実行自体には何の関係もありません.

シェルスクリプトを使うと, いろいろな環境変数を自動的に設定できる他, 場合分けや繰り返しを用いる

ことでとても複雑な処理を自動的におこなうことができます.

12.3 環境設定ファイル

12.3.1 環境設定ファイルとは

みなさんがログインしたときには, どのようなディレクトリにあるコマンドが利用可能か, 標準的に利用

される言語は何か, ニュースサーバやメールサーバの名前は何か, などといった情報が自動的に設定されて

います. また, X Window Systemを起動したときや, 各種のアプリケーションを起動したときにも, 多くの

場合には操作系や見た目に関するいろいろな情報が自動的に設定されています.

UNIX系のオペレーティングシステムでは, これらの情報は, みなさんのホームディレクトリにある「環

境設定ファイル」と呼ばれるファイルに記載されています. 環境設定ファイルを参照することにより, 各種

のアプリケーションは, いわばみなさん専用の設定で起動することになります.

アプリケーションの標準的な挙動を変更したいときには, Muleなどのテキストエディタでみなさんのホー

ムディレクトリにある環境設定ファイルを書き換えます. これを「カスタマイズする」といいます. この

場合に重要なのは, みなさんの個人環境設定ファイルを書き換えても他の人には一切影響がないということ

です.

あるユーザが自分の環境をカスタマイズしたときに他の人に影響が出ないようにする, ということは, 単

一のコンピュータを複数の人が利用するマルチユーザの環境では非常に重要です.

Page 189: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.3. 環境設定ファイル 171

環境設定ファイルは, 通常は最初の文字が「.」(ピリオド)で始まります. また, 最初の文字が「.」で始ま

るディレクトリに特定のアプリケーション用の環境設定ファイルなどがまとめられていることもあります.

代表的な環境設定ファイルやディレクトリを表 12.1に示します.

表 12.1: 代表的な環境設定ファイルとディレクトリ.login ログインしたときに 1回だけ参照される環境設定ファイルで, パスや各種環

境変数などの設定をおこなう.

.cshrc ktermなどを開くたびに参照される環境設定ファイルで, パスや各種環境変

数の設定をおこなう.

.Xdefaults X Window Systemから起動される各種アプリケーションの標準設定が記

載される.

.xinitrc X Window Systemを起動したときの環境設定や起動アプリケーションを

指定する.

.fvwm2rc X Window Systemでウィンドウマネージャ fvwm2 が起動したときの各種

設定が記載される.

.netscape Netscapeの個人環境設定やブックマーク, キャッシュなどが置かれる.

環境設定ファイルの一覧を表示したいときには, コマンド ls に a というオプションを付けます. すなわち,

ls␣-a�� ��←↩ (12.5)

と入力すれば, そのディレクトリにある環境設定ファイルの一覧を画面に表示することができます.

なお, どのような環境設定ファイルにどのような内容を書くかということは, 厳密に決まっているわけで

はありません. たとえば, 環境設定ファイル .login と環境設定ファイル .cshrc に書くべき内容はかなりの

部分で重複しています. .login と .cshrc のどちらをより積極的に利用するかは, 個人の好みの問題です. こ

の学科の設定では, .loginに必要な事項の大部分が記載されています. また, 環境設定ファイルの名前そのも

のを個人の好みで変更できる場合もあります. たとえば, X Window System の標準設定がどのファイルに

記載されているかは, ファイル .xinitrc で指定されています.

12.3.2 環境設定ファイルのカスタマイズ

では, 練習のために, いくつかの環境設定ファイルに非常に簡単な変更を加えてみることにします. なお,

環境設定ファイルにおかしな設定を書いてしまうと, ログインできなくなってしまうことがあります. また,

非常に変なことをした場合には, コンピュータがハングアップ (動かなくなること)に近い状態になってしま

うこともあります. これから述べる作業を実行するときには, 入力ミスがないよう十分に注意して下さい.

今回の講義が終わった後には, 環境設定ファイルは各自で自由に変更して構いませんが, 環境設定ファイ

ルを書き損なうと重大な問題が生じることがあることは確実に記憶しておいて下さい. なお, 学科の標準的

な環境設定ファイルはディレクトリ

/home/a/proto/ (12.6)

にあります. 環境設定ファイルを壊してしまった場合には, ここからコピーして下さい.

cp␣/home/a/proto/.??*␣~�� ��←↩ (12.7)

と入力すれば, 学科の標準的な環境設定ファイルをすべてみなさんのホームディレクトリにコピーできます.

また,

cp␣/home/a/proto/.cshrc␣~�� ��←↩ (12.8)

とすれば, 学科の標準的な環境設定ファイル .cshrc をみなさんのホームディレクトリにコピーできます.

Page 190: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

172 第 12章 シェル, 環境設定ファイル, Perl入門

環境設定ファイル .cshrcの変更

まず最初に, ktermなどのウィンドウの左端に出るプロンプト (みなさんの入力を促すための記号)を変更

してみましょう. みなさんの現在の環境では, プロンプトはファイル .cshrcで設定されています.

みなさんの環境設定ファイル .cshrcの内容は, 以下のようになっています. プロンプトが設定されている

# csh, tcsh が起動されると常に実行される.

# .login で必要な設定が終わっている場合は,

# ここで改めて設定する必要はない.

echo source .cshrc

setenv LANG ja_JP.EUC

set history=100

set savehist=100

# プロンプトの設定

set prompt="%m $ "

alias ll ’ls -l ’

alias la ’ls -a ’

alias n ’mule -nw’

図 12.2: ファイル .cshrcの内容

のは, 9行目の

set prompt="%m $ " (12.9)

という部分です. 文字「prompt=」に続く 2重引用符の中に何か文字列を書くと, その文字列がそのままプ

ロンプトの左側に表示される文字列になります.

では, プロンプトを変更してみましょう.

作業を始める前に, ホームディレクトリに移動してから, これから変更を加えるファイルのバックアップ

を取っておくことにします.

cd␣~�� ��←↩ (12.10)

cp␣.cshrc␣.cshrc.orig�� ��←↩

と入力して下さい.

次に, Muleを起動して .cshrcを開き, .cshrcの 9行目を

set prompt="TEST >" (12.11)

と書き換えて保存して下さい.

この .cshrcの内容は, 次にログインするか kterm などを開くまではみなさんの環境には反映されません.

これを強制的に読み込みたいときには, source というコマンドを使います. コマンド source の使い方は,

source␣環境設定ファイル�� ��←↩ (12.12)

です.

では,

source␣~/.cshrc�� ��←↩ (12.13)

と入力して下さい. すると, プロンプトの左側に表示される文字列が TEXT >に変わります.

なお, 変更前の .chsrc に書かれていた

set prompt="%m $ "

Page 191: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.3. 環境設定ファイル 173

表 12.2: プロンプトにおける代表的な特殊記号記号 意味

%~ カレントディレクトリ

%h 現在のヒストリ番号

%m ホスト名

%n ユーザ名

%t 時刻

という部分のうち, 文字%とそれに続く英文字など 1文字の記号には, 特別な意味があります. 代表的なもの

を表 12.2に挙げておきます. 表 12.2から, 最初の設定では, プロンプトは「ホスト名に続いて記号$が表示

される」というように設定されていたことがわかります.

ファイル .cshrc の 11行目以降にある

alias ll ’ls -l ’ (12.14)

という部分は, コマンド alias を使ってエイリアスというものを定義しています. エイリアスとは, コマンド

に付ける「あだ名」のようなものです.

エイリアスを新たに定義するときにはコマンド alias を使うのですが, このときには

alias あだ名 ’実際に実行されるコマンド’ (12.15)

という書き方をします. エイリアスの宣言はふつうは環境設定ファイルの中でおこないますが, コマンド行

からこれを入力することもできます.

上記のようなエイリアスが設定されている場合には, あだ名の部分で指定した文字列を入力すると,「’実

際に実行されるコマンド’」という部分に書かれたコマンドが実行されます. 先の例では,

ll�� ��←↩ (12.16)

と入力するとコマンド

ls -laF (12.17)

が実行される設定になっていることがわかります.

では, 例として,

t�� ��←↩

と入力すると trr が起動するようなエイリアスを書いてみましょう.

Muleを起動して .cshrcを開き, 最後の行に

alias␣t␣’mule␣-e␣trr’

という内容を追加してから保存して

source␣~/.cshrc�� ��←↩ (12.18)

と入力して下さい. 続いて,

t�� ��←↩ (12.19)

と入力して, trrが起動することを確認して下さい.

これらの一連の作業が終わったら,

cp␣.cshrc.orig␣.cshrc�� ��←↩ (12.20)

と入力して, 環境設定ファイルをもとに戻しておきましょう.

Page 192: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

174 第 12章 シェル, 環境設定ファイル, Perl入門

環境設定ファイル .fvwm2rcの変更

この学科では, みなさんがログインすると, X Window System が起動し, fvwm2 というウィンドウマネー

ジャが立ち上がる設定になっています. この fvwm2 の設定をおこなっているファイルが, .fvwm2rc という

ファイルです. fvwm2は .fvwm2rc を編集することできわめて柔軟にカスタマイズできるのですが, この講

義では背景色や背景の絵を変える簡単な方法について説明します.

作業に入る前に,

cd␣~�� ��←↩ (12.21)

cp␣.fvwm2rc␣.fvwm2rc.orig�� ��←↩

と入力して, .fvwm2rcのバックアップを取っておいて下さい.

.fvwm2rcにおいて背景色などが設定されているのは, .fvwm2rcの 136行目の

+ "I" exec xsetroot -solid DarkSlateBlue

+ "I" exec kterm -geometry 80x24+0+0

#+ "I" exec xpmroot /usr/X11R6/include/X11/pixmaps/world.xpm

#+ "I" exec xsetroot -bitmap /usr/X11R6/include/X11/bitmaps/mensetmanus

という部分です. 上記の最初の行の DarkSlateBlueという部分を希望する色の名前に変えることで背景色

が変更できます.

なお, 上記において, 文字#で始まる部分は注釈です. この部分は, fvwm2の挙動には反映されません.

どのような色が使えるかを調べたいときには,

xcolors�� ��←↩ (12.22)

と入力して下さい. すると, 印刷は白黒なので見にくりですが, 図 12.3のように, 利用可能な色とその名前

の一覧が画面に表示されます. 図 12.3のウィンドウの色とその名前が表示された部分にマウスカーソルを

図 12.3: 利用可能な色一覧の表示

合わせてマウス左ボタンを押すとウィンドウ上部の文字の部分がその色に変わり, マウス中央ボタンを押す

とウィンドウ上部の背景がその色に変わります.

q (12.23)

Page 193: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.3. 環境設定ファイル 175

と入力すると xcolors は終了します.

なお, ルートウィンドウで左ボタンを押してあらわれるメニューで「Fvwm終了」を選択するとあらわれ

るメニューの, 上から 3番目の「再起動」という部分 (図 12.4) を選択する (この部分にマウスカーソルを合

わせてマウス左ボタンを押す)と fvwm2 を再起動することができるのですが, 再起動のときに背景色を再

設定することもできます.

図 12.4: fvwm2の再起動

現在の学科の標準的な環境設定ファイルはこのような設定になっています. 改めて .fvwm2rc から背景な

どの処理に関連した部分 (138行から 146行)を抜き出しておきましょう. 再起動時にも背景色が設定され

るようにするには, 上記の 2行目と 8行目を両方変更する必要があります. では, 背景色を希望する色に変

えてから, fvwm2を再起動して下さい.

AddToFunc InitFunction "I" Module FvwmButtons

+ "I" exec xsetroot -solid DarkSlateBlue ⇐= ここを変更する+ "I" exec kterm -geometry 80x24+0+0

#+ "I" exec xpmroot /usr/X11R6/include/X11/pixmaps/world.xpm

#+ "I" exec xsetroot -bitmap /usr/X11R6/include/X11/bitmaps/mensetmanus

AddToFunc RestartFunction "I" Module FvwmButtons

+ "I" exec xsetroot -solid DarkSlateBlue ⇐= ここを変更する#+ "I" exec xpmroot /usr/X11R6/include/X11/pixmaps/world.xpm

#+ "I" exec xsetroot -bitmap /usr/X11R6/include/X11/bitmaps/mensetmanus

背景に画像を貼り付けることもできます. 貼り付けることができるファイルの形式は X Window System

用のビットマップ (白黒)と, X Window System の pixmapという形式のファイルです. 前者には xbm と

いう拡張子を付けることがあります. 後者には, たいてい xpm という拡張子が付いています.

では, まず白黒画像を背景に貼り付ける例を見てみましょう. このための準備として, ディレクトリ

/home/b/teacher/hanba/sample/

にあるサンプルファイル moheG.xbm をみなさんのホームディレクトリにコピーして下さい. このための

コマンドは

cp␣~hanba/sample/moheG.xbm␣.�� ��←↩ (12.24)

です.

続いて, .fvwm2rcの 138行目から 146行目の部分を, 以下のように書き換えてみて下さい. 作業が終わっ

たら, fvwm2を再起動して動作確認をして下さい.

AddToFunc InitFunction "I" Module FvwmButtons

#+ "I" exec xsetroot -solid DarkSlateBlue ⇐= 行頭に#追加+ "I" exec kterm -geometry 80x24+0+0

#+ "I" exec xpmroot /usr/X11R6/include/X11/pixmaps/world.xpm

+ "I" exec xsetroot -bitmap ~/moheG.xbm⇐= 行頭の#を取り, ファイル名変更

AddToFunc RestartFunction "I" Module FvwmButtons

#+ "I" exec xsetroot -solid DarkSlateBlue ⇐= 行頭に#追加#+ "I" exec xpmroot /usr/X11R6/include/X11/pixmaps/world.xpm

+ "I" exec xsetroot -bitmap ~/moheG.xbm ⇐= 行頭の#を取り, ファイル名変更

Page 194: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

176 第 12章 シェル, 環境設定ファイル, Perl入門

続いて, カラー画像を貼り付ける例を見ます. このための準備として, ディレクトリ

/home/b/teacher/hanba/sample/

にあるサンプルファイル mandel.xpm をみなさんのホームディレクトリにコピーして下さい. このための

コマンドは

cp␣~hanba/sample/mandel.xpm␣.�� ��←↩ (12.25)

です.

作業が終わったら, fvwm2を再起動して動作確認をして下さい.

AddToFunc InitFunction "I" Module FvwmButtons

#+ "I" exec xsetroot -solid DarkSlateBlue

#+ "I" exec kterm -geometry 80x24+0+0

+ "I" exec xpmroot ~/mandel.xpm⇐= 行頭の#を取り, ファイル名変更#+ "I" exec xsetroot -bitmap ~/moheG.bmp⇐= 行頭に#追加

AddToFunc RestartFunction "I" Module FvwmButtons

#+ "I" exec xsetroot -solid DarkSlateBlue

+ "I" exec xpmroot ~/mandel.xpm⇐= 行頭の#を取り, ファイル名変更#+ "I" exec xsetroot -bitmap ~/moheG.bmp ⇐= 行頭に#追加

Windowsのビットマップ形式 (*.bmp)の画像や JPEG形式のファイル (*.jpg)が手元にあり, それを背景

に使いたいときには, convertというコマンドを使ってその画像を xpm形式に変換します. コマンド convert

の使い方については 第 8.3節およびオンラインマニュアルを参照して下さい. 画像を背景に使う場合, 適当

に減色した方がよいでしょう.

さいごに, X Window System の背景を飾るプログラムをいくつか紹介しておきます.

xfishtank�� ��←↩ (12.26)

と入力すると, 背景に魚が泳ぐ映像が表示されます.

xearth�� ��←↩ (12.27)

と入力すると, 背景に地球儀が表示されます.

xsnow�� ��←↩ (12.28)

と入力すると, 背景に雪が降り, ウィンドウの上部に積もってゆきます. いずれのプログラムも

C-c

と入力することで終了します.

これらのプログラムをX Window System 起動時に立ち上げるようにした.fvwm2rcの例を図 12.5示しま

す. ただし, もとの.fvwm2rcの 138行目から 146行目に対応する部分のみ抜き出してあります. xsnowは背

景の色を設定しないので, この場合のみ背景色の設定が含まれています.

12.4 Perl

先に述べたように, シェルにはプログラミング言語としての機能があるのですが, 機能がそれほど豊富で

はないために, 複雑なシェルスクリプトを自作するのは必ずしも容易ではありません. 特に, ファイルの自

動編集をおこないたいときなどには, grep, sed, awk といったコマンド (この講義では取り上げません)を

シェルスクリプト中で呼び出す, ということがふつうにおこなわれます.

ところで, grep, sed, awk などの機能をシェルと統合したような言語というものも存在します. それが, 本

節で紹介する Perl です.

Perl は高速できわめて多機能の言語であり, シェル, grep, sed, awk に加えて, みなさんが来学期に学ぶ

C言語の特徴を備えており, さらにオブジェクト指向の考えも取り入れられています. Perl はもともとはテ

Page 195: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 177

AddToFunc InitFunction "I" Module FvwmButtons

+ "I" exec xfishtank

+ "I" exec kterm -geometry 80x24+0+0

AddToFunc RestartFunction "I" Module FvwmButtons

(a) xfishtankの場合AddToFunc InitFunction "I" Module FvwmButtons

+ "I" exec xearth

+ "I" exec kterm -geometry 80x24+0+0

AddToFunc RestartFunction "I" Module FvwmButtons

(b) xearthの場合AddToFunc InitFunction "I" Module FvwmButtons

+ "I" exec xsetroot -solid DarkSlateBlue

+ "I" exec xsnow

+ "I" exec kterm -geometry 80x24+0+0

AddToFunc RestartFunction "I" Module FvwmButtons

+ "I" exec xsetroot -solid DarkSlateBlue

(c)xsnowの場合

図 12.5: .fvwm2rcで xfishtankなどを起動

キスト処理の自動化やシステム管理作業などによく使われていたのですが, 最近は CGI プログラムを作成

するための言語として標準的に利用されるようになっています.

Perl はきわめて多機能の言語であり, その機能をまともに解説すると主要な部分に限っても書籍 1冊分に

なってしまいます. そこで, 今回の講義では,

英文字から成るファイルに含まれるすべての単語を調べ, 出現頻度が多いものから順にならべて

画面に表示する,

というプログラムを作成することを目標にして議論を進めることにします. ただし, 上記のプログラムでは,

大文字と小文字は区別しないものとします.

なお, 今回の講義のこの部分は,「詳細はわからなくても良いからとにかく使ってみることに意義がある」

という方針で設計されています. 細部が理解できなくても, あまり気にしなくてもよいです.

12.4.1 Perlの実行

具体的なプログラムの作成作業を始める前に, まず Perlのプログラムをどうやって作成し, どのようにし

て実行するかについて知る必要があります. 本節では, 非常に簡単な例題を使ってこのための手順について

説明します.

ステップ 1: Perlプログラムの作成

Muleを起動して, Perlのプログラムを作成します. ファイル名は何でもいいのですが,ここでは welcome.pl

としておきます. 図 12.6のような内容を持つファイルを作成して下さい. ここに, 上記のサンプルに含まれ

る print という語句は, 指定された文字列や変数 (後述)を画面に表示するための Perlの関数 (コマンドの

ようなもの)をあらわしています. Perlのプログラム中に,

print "文字列\n";

Page 196: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

178 第 12章 シェル, 環境設定ファイル, Perl入門

#!/usr/bin/perl

print "Welcome!\n";

図 12.6: ファイル welcome.pl の内容

という記述をすると, 2重引用符「”」で囲って指示された文字列 (文字の並び) が画面に表示されます.

なお, 記号「\n」は「改行文字」と呼ばれます. これはコンピュータによって「ここで改行する」という

画面制御のためのコマンドのようなものとして解釈される特別な文字です.

ステップ 2: パーミッションの変更

今作成したばかりの welcome.plを実行可能にします. 以下の操作をおこなって下さい.

chmod +x welcome.pl�� ��←↩ (12.29)

ステップ 3: 実行

では, 今作成したプログラムを実行しましょう.

./welcome.pl�� ��←↩ (12.30)

とタイプして下さい. 画面に Welcome! という文字があらわれたら, プログラム作成は成功です (図 12.7).

図 12.7: welcome.plを実行したところ

12.4.2 Perlの基本的な文法

本節では, 以下の議論の準備として, Perlの基本的な文法について簡単に解説しておきます.

構文

Perlのプログラムを書く場合は, ふつうはプログラムの最初の部分に

#!/usr/bin/perl (12.31)

Page 197: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 179

という文字列を書きます. これは Perl を実行するためのおまじないだと思って下さい.

2行目以降が, 実際のプログラムになります. 各行に書かれる内容は, 変数 (データを入れておくための

置き場所)および変数への数値の代入, 各種演算子, ( )などの区切り記号, 予約語と呼ばれる特別の意味を

持ったキーワードなどです. Perlのプログラムでは, 特別な場合を除き, 空白文字 (スペースや空行など)が

たくさん並んでいても, それらはすべて空白文字が 1個しかない場合と同一に取り扱われます.

2行目以降で, 中括弧 {}以外の各行の最後にはセミコロン (;) が入ります. 一方, 中括弧 {}で終わる行の行末にはセミコロンは入りません.

中括弧 {}で囲まれた領域は, 「ブロック」と呼ばれるプログラム中の単位を作ります. 以下で述べる if

文, while文および for文を使うときには, 必ずブロックを作らなければなりません.

2行目以降で文字# に続く部分は注釈とみなされます. 注釈は人間にとってプログラムが読みやすくなる

ように入れるものであり, プログラムの実行結果には関係しません.

Perlのプログラムは, 後で述べる制御構造が指定されていなければ, 上から下に順番に実行されていき

ます.

変数の種類: スカラー変数, 配列変数, ハッシュ変数

データを入れておくための置き場所のことを変数と言います. Perlが取り扱うことができる変数は, スカ

ラー変数, 配列変数およびハッシュ変数の 3種類に分類されます.

スカラー変数とは, 数値や文字列を保存するためのデータの置き場所です.

配列変数とはスカラー変数をいくつか並べたものです. 配列の個々の要素には, 0から始まる番号 (添字)

が付きます.

ハッシュ変数とは, 2個のスカラーを対にしてまとめたものです.

配列とハッシュはよく似ているのですが. 配列では添字 (各要素を指し示す番号あるいは記号) が 0から

始まる整数に固定されているのに対して, ハッシュでは添字として任意の文字列を使うことができる, とい

う点が異なります. ハッシュの「添字」として使われる文字列のことを「キー」と呼びます.

図 12.8を見ると配列とハッシュの違いのイメージがわくかもしれません. 要するに, 配列とは番号が付い

たロッカーのようなもので, ハッシュとは個々の置き場所に番号のかわりに何か名前が書いてあるロッカー

のようなものです.

配列

ハッシュ

0 1 2 3 4

Blue Green Red White Cyan

配列の個々の要素には番号がつく

ハッシュの個々の要素には名前がつく

図 12.8: 配列とハッシュの違い

変数には好きな名前を付けることができるのですが, いくつか制限があります.

Page 198: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

180 第 12章 シェル, 環境設定ファイル, Perl入門

まず最初に, Perlは変数名の前に特別な記号を付けることでスカラー変数と配列変数, ハッシュ変数を区

別します. この区別の仕方は,

• スカラー変数の名前の第 1文字は記号$

• 配列変数の名前の第 1文字は記号@

• ハッシュ変数の名前の第 1文字は記号%

というものです.

変数の名前として使える文字は, 英文字の大文字と小文字, アンダースコア (記号「_」)です. ただし, 記

号$, @あるいは%に続く最初の 1文字は英文字である必要があります. 変数名の文字数は 255文字までです.

また, いくつか予約語が定義されていて, 予約語と同じ名前は使えません.

スカラー変数, 配列変数およびハッシュ変数の 3種類に同じ名前を使うこともできます. たとえば, $a, @a,

%aという 3種類の変数を使った場合, Perlはこれらを別の変数であるとみなします. ですから, 異なる種類

の変数に同じ名前を使っても, Perlが混乱することはありません.

なお, 配列やハッシュのように, スカラーがいくつか並んだ構造のことを, リストと呼びます.

変数への値の代入や参照

スカラー変数に数値を代入するときには,

$a=10; (12.32)

などといった書き方をします. 一方, スカラー変数に数値を代入するときには,

$a="Hello"; (12.33)

などのように, 代入したい文字列を 2重引用符「"」で囲います.

配列変数に数値を代入するときには,

@b=(1,2,3,4); (12.34)

というように, 要素の並び全体を ( )で囲い, 個々の要素をコンマで区切って並べます. 一方, 配列変数に文

字列を代入するときには,

@b=("One","Two","Three","Four"); (12.35)

のように, 各要素を 2重引用符で囲います.

配列の中で特定の添字を持った箇所に数値を参照したり, そこに数値を代入したりする場合には注意が必

要です. 配列の特定の番号の要素を参照するには,

$b[1]; (12.36)

などのように, 配列名に続いて角かっこ [ ]を書き, かっこの中に添字を指定するのですが, これ以外に

配列名の先頭の文字「@」が文字「$」に変わる (12.37)

という規則があります. これはなぜかというと, 配列とはスカラー変数が並んだものなので, 配列の特定の

添字を持った部分はスカラー変数になるからです. ですから, (12.4.2)の配列@bの第 1要素 (前から 2番目,

”Two”となっている部分) の値を文字列 Zwei に変更したいときには,

$b[1]="Zwei"; (12.38)

といったような書き方をします.

ハッシュに値を代入するときには,

%c=("さとう","白","きゅうり", "緑","トマト","赤"); (12.39)

Page 199: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 181

などのようにします. 代入のしかたは配列と同じですが, ハッシュは必ず「一般化された添字」(「キー」と

呼びます)と対応する値のペアから構成されなければならないので, (12.4.2)において要素の数は偶数個で

なければなりません.

これとは別に, ハッシュの特定のキーを持った要素に値を代入するには,

$ハッシュ名{"キー"}=値; (12.40)

という書き方をします. この場合も, ハッシュ名の最初の文字「%」が文字「$」に変わります. さらに, ハッ

シュ名に続いて中括弧{ } の中にキーを (ふつうは 2重引用符で囲って)指定し, 等号の右側に値を書きま

す. 値が文字列なら 2重引用符で囲う必要がありますが, 数値の場合には 2重引用符は付けません. たとえ

ば, (12.4.2)のハッシュにおいてキー「さとう」に対応する値を「白い」から「甘い」に変更するには,

$c{"さとう"}="甘い"; (12.41)

のようにします.

ハッシュの要素を参照する方法は配列の場合と同様です. たとえば, (12.4.2)の例でこのハッシュの 2番

目に宣言されているキー「きゅうり」に対応する値を参照するには,

print $c{"きゅうり"}; (12.42)

などのようにします. 最初の文字が「%」から「$」にことは配列の場合と同様です.

Perlでは, 変数を使う前にあらかじめ宣言しておく必要はありません. どのような変数も, それが始めて

利用された瞬間に誕生します. 新たに誕生した変数は, そこに値が代入されない限り, undef と呼ばれる値

を持ちます. undefは, 数値に直すと 0と同じと解釈されます.

演算子

スカラーなどに対して, 4則演算, 文字列の比較などの各種の演算子が用意されています. これらを表 12.3

にまとめておきます. これらの演算子には優先順位 (いくつかの演算子と被演算子が並んでいるときに, ど

の演算を先に実行するかという規則)が定められています. この優先順位は, 小学校の算数で学ぶ優先順位

(「掛算を足し算より先にする」など) と類似しています. この優先順位は式全体を ( )で囲うことで変更

できます. たとえば,

(1-2)-3; (12.43)

と書くと左側の減算が先に実行されるので結果は-4になるのに対し,

1-(2-3); (12.44)

と書くと右側の減算が先に実行されるので結果は 2になります.

表 12.3: Perlの演算子

(a)数値演算 (b)数値や文字の比較 (c)その他

記号 意味

+ 加算

- 減算

* 乗算

/ 除算

% 剰余

** べき

記号 (数値) 記号 (文字列) 意味

< lt <

<= le ≤> gt >

>= ge ≥== eq 等しい

!= ne 等しくない

記号 意味

. 文字列を結合

& ビット AND

| ビット OR

^ ビット XOR

&& AND

|| OR

Page 200: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

182 第 12章 シェル, 環境設定ファイル, Perl入門

12.4.3 制御構造

制御構造とは,

• プログラムを上から下の順に実行してゆく

• プログラムの流れを条件に応じ分岐させる (もし~ならば~し, それ以外なら~する)

• 一定の条件が成立するあいだ特定の処理を繰り返す

という 3種類の処理を指します. Perl には, 上記の 3種類の処理をおこなうために, 複数の制御構造が用意

されています. ただし, 上記のうち最初のものについては, コンピュータプログラムは特に指示しなければ

上から下へと順番に実行されてゆくので, 特別な制御構造は必要ではありません. 以下では, 条件分岐の代

表的なものとして if 文を取り上げ, 繰り返しの代表的なものとして while 文および for 文と foreach文を取

り上げます.

12.4.4 if文

「もし~であれば~せよ」という条件分岐を書き下すための制御構造が if 文です.

if文は,

if(条件){

仕事 1;

.....

仕事 n;

}

という構造を持ちます. 括弧{, }および ifの後の括弧 (, +)+は省略できないので注意して下さい.

「もし ~なら ~せよ, さもなければ ~せよ」という処理をおこないたいときには, if 文と else という単

語を組み合わせて使います. この場合の構文は,

if(条件){

....

}else{

....

}

のようになります. else以下の条件がさらに細かく細分される場合には, else ifを省略したキーワード elsif

を使います.

では, 例として, キーボードから文字を入力して, 入力された文字が j 1個だけであるときだけ画面になに

かメッセージを表示するプログラムを作ってみましょう. ファイル名を if.pl とします. プログラムの作成

#!/usr/bin/perl

chomp($c=<>);

if ($c eq "j"){

print "The key j is pressed. \n";

}

図 12.9: ファイル if.pl の内容

が終わったら,

chmod +x if.pl�� ��←↩ (12.45)

./if.pl

と入力して, 動作を確認して下さい.

Page 201: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 183

12.4.5 while文

繰り返しをつかさどる制御構造のひとつである while 文は,「何かある条件が満たされているあいだは特

定の処理を繰り返す」というものです.

while文の一般的な構造は,

while(条件){

仕事;

}

というものです.

では, while 文を使って, コマンド cat と同じことを実行するプログラムを書いてみます. 図 12.10のよう

なファイルを作って下さい. ファイル名を while.pl とします. では,

#!/usr/bin/perl

while(<>){

print;

}

図 12.10: ファイル while.pl の内容

./while.pl␣適当なファイル�� ��←↩ (12.46)

と入力して, 今作成したプログラムが cat と同じ動作をすることを確認して下さい.

12.4.6 for文

for文は, 何かの処理を決まった回数繰り返すのに用いられます.

for文の一般的な構造は,

for(初期条件; 終了条件; 刻み幅){

仕事 1;

......

仕事 n;

}

というものです. これは, カウンタと呼ばれる変数を初期値から終了値まで刻み幅文だけ変化させながら,

中括弧 {}の中の処理をおこないます.

for文の例として, 0から 9までの数を画面に表示するプログラムを作ってみましょう. ファイル名を for.pl

とします (図 12.11).

#!/usr/bin/perl

for($i=0;$i<10;$i++){

print "$i\n";

}

図 12.11: ファイル for.plの内容

ファイルができたら, kterm で

./for.pl (12.47)

と入力して動作を確認して下さい.

Page 202: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

184 第 12章 シェル, 環境設定ファイル, Perl入門

12.4.7 foreach文

for文とやや類似した制御構造に, foreach文というものがあります. これは, リスト (スカラーがならんだ

もの)から要素を 1個ずつ拾い出して順番に処理してゆく, という制御構造です.

foreach文の一般的な構造は,

foreach $i (リスト){

仕事 1;

......

仕事 n;

}

というものです. ここに, $iという変数は, リストから拾い出した要素を一時的に保存するために使われま

す. なお, 変数名は何でもよく, $iを使う理由は特にありません.

foreach文の例として, ("one","two","three")という 3個の要素を持つ配列から要素を 1個ずつ拾い

出してを作ってみましょう. ファイル名を foreach.pl とします (図 12.12).

#!/usr/bin/perl

@data=("one","two","three");

foreach $i (@data){

print "$i\n";

}

図 12.12: ファイル foreach.plの内容

ファイルができたら, kterm で

./foreach.pl (12.48)

と入力して動作を確認して下さい.

12.4.8 ファイル中に含まれる各単語の出現頻度を数える

考え方

ここまでで最低限の準備は終わったので, 続いて「ファイル中に含まれる各単語の出現頻度を数える」と

いう目的を達成するにはどのようなことができなければならないかを考えてみましょう.

まず最初に, ファイルの内容を最初から最後まで読む必要があります. このためには, while文のところと

で出て切たのと同じテクニックが使えます. どうしてこのようなやり方でうまくいくかというと, Perlは,

• コマンド行で指定されたパラメータを@ARGV という変数に自動的にセットする

• while<>という構文があらわれると@ARGVに対応するファイルを自動的に開き, その内容を 1行ずつ

読み込む

という設計になっているからです.

続いて, 1行の内容を単語に分割する必要があります. 英文の単語は空白文字で区切られているので, 1行

を空白で分割していって結果を配列に代入すればよさそうです. ただし,

• 行末の改行文字を取り除く必要がある

• 2個以上連続した空白文字があるとき, 空白文字が単語として認識されないようにする必要がある

という点は要注意です.

次に, 得られた個々の単語を少し加工する必要があります. どのように加工するかというと,

• コンマやピリオドなど単語の一部として認識されると困るので, これらを削除する

Page 203: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 185

• 大文字と小文字を区別したくないので, 文字をすべて小文字に置き置き換える

という処理をおこないます.

ここまでで, 各行からその行を構成する単語が切り出せたことになります. では, この単語の出現頻度を

数えるにはどうしたらよいでしょうか? このためには, 先ほど紹介したハッシュがぴったりです.

さいごに, 単語を出現頻度が多い順にならべて表示する必要があります.

解答

では次に, これらの作業を実際におこなう Perlのプログラムを示します. ファイル名を word-count.pl と

します. 詳細はわからなくてもよいですから, Muleを起動して word-count.pl という名前のファイルに図

12.13の通りの内容を打ち込み,

chmod␣+x␣word-count.pl�� ��←↩ (12.49)

./word-count.pl␣/home/a/trr/text/The_Constitution_Of_JAPAN␣|␣jless�� ��←↩

と入力して, 単語の出現頻度が正しく計算されていることを確認して下さい.

#!/usr/bin/perl

while(<>){

chomp;

@words=split(/\s+/,$_);

foreach $i (@words){

$i=~s/\W//g;

$i=~tr/A-Z/a-z/;

$count{$i}++;

}

}

foreach $i (sort by_number keys %count){

printf("%-40s %4d\n",$i,$count{$i});

}

sub by_number{

$count{$b}<=>$count{$a} || $a cmp $b;

}

図 12.13: ファイル word-count.pl の内容

後学期のプログラミング演習 1の講義が始まったら, これと同じ作業をおこなうプログラムを C言語で書

き下すことに挑戦してみるとよでしょう. 上記と同じ作業をするプログラムを C言語で作成するのはそれ

ほど簡単ではありません.

解説

以下では, 図 12.13のプログラムのついて簡単に解説してゆきます. ただし, この部分の説明は完全には

理解できなくても構いません.

ファイルを 1行ずつ読んでゆく

この部分は, while文のところで出て来た例と同じで,

Page 204: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

186 第 12章 シェル, 環境設定ファイル, Perl入門

while(<>){

}

という書き方ができます. 読み込まれた行の内容は, $_ という変数に自動的に代入されます. なお, $_とい

う変数は, Perlが始めから用意している作業用の変数であり, 「プログラム中でなにかデータが読み込まれ

た場合, 利用者がとくに何も宣言しなけれれば, 読み込まれたデータは変数$_に自動的に代入される」とい

うしくみになっています (例外もあります). ですから, 変数$_の内容は, プログラムが実行されるにしたがっ

て時々刻々変化してゆきます.

行を単語に分割する 最初に行末の改行文字を削除するには, 先に述べたように

chomp;

とします. また, 行を単語に分割するときには, split という Perlの関数を使います. ここでは, 分割した結

果を@word という配列に代入することにしましょう. 関数 splitの使い方は,

split(/区切りパターン/, 変数) (12.50)

です. ここに,「区切りパターン」と書かれた部分にはどのようなパターン (文字の並び) を使って行を分割

するかを指定し,「変数」と書かれた部分には分割の対象となる変数を指定します. なお, 記号「\s」によっ

て, スペース, タブおよび改行などの任意の空白文字を指し示すことができます. さらに, 「\s+」と書くと,

「空白文字が 1個以上 (いくつでもよい)並んだもの」という意味になります. この講義ではこれ以上詳しく

は解説しませんが, 上記のような書き方を「正規表現」といいます.

上記により, 望ましい単語への分割法は,

@words=split(/\s+/,$_);

となります.

単語を選択する 分割が終わった配列から個々の単語を選択してゆくには, foreach文 を用います.

ここでは, この構文を,

foreach $i (@words){

}

のようにして使います. このような書き方をすると,

配列@wordから要素を 1個ずつ選び, それを変数$iに代入する

という意味になります.

単語の処理 各単語に対しておこなうべき処理のひとつめは, コンマやピリオドなどを消去することです.

このためには, s という 1文字の演算子を用います. 演算子 sの使い方は,

s/置換したいパターン/置換後のパターン/g; (12.51)

です. 置換したいパターン, 置換後のパターンには正規表現が使えます. 置換後のパターンを省略すると, 単

純に置換したいパターンのところで指定された内容を消去することになります.

コンマやピリオドなどを消去するためには, 単語構成文字 (英文字の大文字と小文字, 数字, 文字_)以外

のものをすべて消してしまえば十分です. ところで, 単語構成文字以外の文字は, Perlでは (正規表現を使っ

て)\W と書けます.

ある変数に対して s演算子による置き換えをしたいときには,

$変数 =~ s/置換前のパターン/置換後のパターン/g; (12.52)

のように, 記号「=~」の左辺に変数名を, 右辺に s演算子を使った作業内容を書きます.

以上により,

Page 205: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 187

$i=~s/\W//g;

とすれば当初の目的は達成されることがわかります.

続いて, 大文字を小文字に変換しましょう. このためには, 文字を入れ換えるための演算子 trを使います.

演算子 tr の使い方は 演算子 sとほとんど同じで,

$変数 =~ tr/置換前のパターン一覧/置換後のパターン一覧/; (12.53)

なのですが, このはたらきはかなり違います. たとえば「置換前のパターン一覧」の部分が ABCDとなって

いて, たとえば「置換後のパターン一覧」の部分が abcdとなっている場合には, 演算子 tr は, 文字「A」を

文字「a」に, 文字「B」を文字「b」に, 文字「C」を文字「c」に, 文字「D」を文字「d」に, といった置き

換えをおこないます. すなわち, 置換前のパターン一覧に含まれる各文字を置換後のパターン一覧に含まれ

る対応する各文字で置き換えるわけです. また, パターンの部分に A-Zなどと指定すると, 「文字 Aから文

字 Zまで」という意味になります.

以上により,

$i=~tr/A-Z/a-z/;

とすれば単語を構成する文字をすべて小文字に変換できることがわかります.

単語の数を数える 単語の数を数えるために, %countというハッシュを利用することにしましょう. ハッ

シュの各要素を取り扱うときにはハッシュの先頭の文字が「%」から「$」に変わることを思い出して下さ

い. 単語の出現頻度を数えるには, 単語そのものをハッシュのキーとして利用し, その単語が出現するたび

にその単語をキーとして持つ数値を 1ずつ加算すればよいです. ですから,

$count{$i}++;

とすることで, 「単語数を数える」という目的は達成されます.

単語を出現頻度が高い順に並べて表示する さて, ここまででハッシュ%countに単語の出現頻度が記憶さ

れています. このハッシュのキーが出現した単語, 対応する数値がその単語の出現数になっています.

出現した単語の一覧を得るためには, ハッシュ%countから, そのハッシュに含まれるキーの一覧を取得す

る必要があります. このためには, keys という Perlの関数を利用します. 関数 keys の使い方は,

keys %ハッシュ; (12.54)

というものであり, 得られるものはこのハッシュに含まれるキーを並べて作った配列です.

上記のようにしてキーの一覧を得ることはできるのですが, この段階では, キーの並び方はランダムであ

り, 出現頻度順にならんでいるわけではありません. これを並べ換えるには, sort という Perl の関数を使い

ます.

関数 sort のもっとも簡単な使い方は

sort @配列;

なのですが, これは配列の各要素を文字列と見て辞書式の順序 (辞書の前のページに出ている単語ほど優先

される)で並べるだけなので, われわれの「単語の出現頻度に応じて並べる」という目的には合致しません.

ところで, 関数 sort には,

sort サブルーチン @配列;

という書き方をすると, 配列の各要素を比較するのに指定されたサブルーチン (プログラム中で独立性が高

い部品をまとめたもの)を使う, という機能があります.

関数 sort が取り扱うことができるサブルーチンは, 「2個のスカラー変数$aと$bを比較して, $aの方が

(何らかの基準で)小さければ-1, $aと$bが等しければ 0, $aの方が大きければ 1を返す」というものなら

ば何でもよいです. ところで, 関数 sort がサブルーチンを呼んだときは, 呼ばれたサブルーチン側では, 変

数$aに比較の対象となる 1番目の数が, 変数$bに比較の対象となる 2番目の数が自動的に設定されます.

サブルーチンの典型的な書き方は,

Page 206: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

188 第 12章 シェル, 環境設定ファイル, Perl入門

sub サブルーチン名{

作業;

return 値;

}

というものです. 一般的にはサブルーチンの引数は配列@_ に自動的に代入されますが, 関数 sort から呼ば

れた場合には先に述べたように 2個のスカラー変数$aと$bに引数が代入されます. return の後に書かれた

値がサブルーチンが終了したときに親に返す値 (返却値) になります.

2個のスカラー変数$aと$bを数値として比較して$a<$bのとき−1, $a=$bのとき 0, $a>$bのとき 1を

返すサブルーチンの書き方は, (このサブルーチンの名前を by_number としておきます)

sub by_number{

if($a<$b){

return -1;

}elsif($a==$b){

return 0;

}elsif($a>$b){

return 1;

}

}

なのですが, これはいかにも長いので, 省略記法として, 「<=>」という演算子を使った,

sub by_number{

$a<=>$b;

}

というものが用意されています. これは省略記法ですので, 意味は先ほどのものと変わりません.

同様に, 文字列を辞書式順序で比較するための省略記法として, 演算子「cmp」を使った,

$a cmp $b;

という書き方が許されています.

以上により, キーの出現頻度で比較をおこなうには,

$count{$b}<=>$count{$a}; (12.55)

という書き方をすればよいことがわかります. ただし, (12.4.8)の指定だけだと, 2個の単語の出現頻度が同

じだった場合の比較ができなくなってしまうので, 上記に「出現頻度が同じ単語は辞書式順序で比較」とい

う規則を追加する必要があります. このためには, 論理演算「or」に対応する演算子「——」を用いればよ

いです. このようにして,

sub by_number{

$count{$b}<=>$count{$a} || $a cmp $b;

}

というサブルーチンが完成します.

ここまでで, ようやくハッシュ%countに含まれる各キーを出現頻度順にならべる構文がわかりました. 先

のようにサブルーチン by_numberを定義した上で,

sort by_number keys %count; (12.56)

とすればよいわけです.

このようにして整列されたキーの配列から各要素を抜き出すには, foreach 文を使います.

foreach $i (sort by_number keys %count){

}

Page 207: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

12.4. Perl 189

結果を表示するときには, printf という関数を使います. printf はフォーマット (書式)付きの出力をおこ

なう関数で,

printf "フォーマット", 変数 1, 変数 2,....; (12.57)

という使い方を指定します. 「フォーマット」と書かれた部分には, 表 12.4のような文字を書きます. %20d

表 12.4: printfにおける書式指定文字 表示したいデータの内容

%s 文字列

%d 整数

%f 浮動小数点数

%s

のように, 文字%のあとに数字を指定すると, 指定された数字文の表示桁数が確保されます. 標準では数値は

右揃えされますが, %-20dのように数字の前に記号-を書くと左揃えに変わります.

以上でようやくすべての説明が終わりました. 完成した, キーを出現頻度順に並べて表示する部分は, たっ

たの 3行で,

foreach $i (sort by_number keys %count){

printf("%-40s %4d\n",$i,$count{$i});

}

というものになります.

Page 208: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 209: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

191

第13章 LATEX

みなさんは, コンピュータで文書を作成するときにワードプロセッサあるいはパソコンで動作するワープ

ロソフトが利用されることが多いことを知っているでしょう.

科学あるいは技術分野で文書を作成するときには, ワードプロセッサのかわりに, LATEX というソフトウェ

アがよく用いられます.

ところで, ワードプロセッサと LATEXは, 文書を作成するためのソフトウェアという点は共通なのですが,

使い方 (あるいはソフトウェア設計の方針)には, 本質的な相違があります. それは, ワードプロセッサは文

書の見た目の体裁を直接加工するものであり, 文書が最終的にどのような形に整形されるかは完全にユーザ

に任されるのに対し, LATEXは文書の論理的な構成を記述するプログラミング言語のようなものであり, 文

章が最終的にどのような形に整形されるかはコンピュータによって決定されるという点です.

LATEXには,

• どのようなオペレーティングシステムが動いているコンピュータでも, LATEXのソースプログラムと

正常に動作する LATEXの処理系があれば, 以前作成した文書を復元することができる

• 素人でも正しい組版をおこなうことができる

• 編集作業が柔軟

• 組版結果が美しい

• 強力かつ柔軟な数式などの組版機能

• 無料

• 拡張性

といった利点があります.

この講義では, これから LATEXの使い方について学んでゆくことにします.

LATEXは, 1993年に, 古い LaTeX2.09と呼ばれるバージョンから, LATEX2εと呼ばれるバージョンにバー

ジョンアップされ, 混乱していた仕様が統一された他, 数多くの機能が追加されました. 日本ではまだ古い

LATEX2.09を使っている人もいるのですが, この講義では LATEX2εの方を使用します.

LATEXで作成した原稿は, そのまま書籍として出版可能な品質を持ちます. そして, 英語圏では学術書の

多くは始めから LATEXで組版されていますし, 日本語の書籍でも LATEXで組版されているものがあります.

しかし, このように高品質かつ高機能であるがゆえに, LATEXの機能は極めて多岐にわたります. この講義

では, LATEXの機能のほんの一部しか紹介することができません. みなさんが LATEXを本格的に使うときに

は, 必ず信頼できる教科書を 1冊買って下さい.

13.1 LATEXによる処理の流れ

LATEXによる文書作成の流れは, 大雑把に言うと,

• エディタを用いて LATEXのソースプログラムを作成する

• コマンド platex を用いて作成されたソースプログラムを処理する (コンパイルする)

• コマンド xdvi を用いて処理の結果を画面で確認する

• コマンド dvips を用いて作成された文書のデータを PostScriptファイルに変換する

Page 210: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

192 第 13章 LATEX

• コマンド lpr を用いて最終的に作成されたファイルを印刷する

というものです.

LATEXによる文書作成の手順は,

• 人間が作成するのは完成する原稿とは見た目がまったく異なるソースプログラムである

• ソースプログラムは人間が読むためのふつうの文書と LATEXのコマンドが混在したものになっている

• ソースプログラムをコンパイルすることにより, 完成原稿と見た目が同じものが生成される

という点においてワープロによる文書作成の手順と大幅に異なることをまず最初に注意しておきます.

LATEXのソースプログラムを作るときには, ふつうはファイル名に.texという拡張子を付けます. 拡張

子を.tex以外にしてもコンパイルする際に不都合が生じることはないのですが, 混乱を避けるために必ず

.texという拡張子を付ける習慣を付けた方がよいでしょう.

また, ソースプログラムをコマンド platex によって処理すると, 処理した結果得られるファイルには.dvi

という拡張子が付きます.

コマンド dvips によって得られる PostScriptファイルには, ふつう.psという拡張子を付けます. この

ファイルの拡張子も実は任意で良いのですが, 混乱を避けるためには, 必ず.psという拡張子を付けるよう

にした方が無難です.

コマンド platex を用いて作成されたソースプログラムを処理するときには, 章, 節, 数式やや参考文献や

などの番号が自動的に生成されます. そして, 本文中でこれらの参照している箇所についても, 正しい番号

が自動的に生成されます. しかし, この処理が正しくおこなわれるためには, platexを必ず 2回あるいは 3

回実行する必要があります. platexを 1回だけ実行した場合には, 組版は実行されるものの, 自動生成され

る番号などが正しくないことがあります.

コマンド platex の使い方は,

platex␣ファイル名�� ��←↩ (13.1)

です. たとえば, sample1.tex というファイルをコンパイルするには,

platex␣sample1.tex�� ��←↩ (13.2)

とします.

コマンド platex が正常終了すると, DVIファイル (拡張子 .dviを持つファイル)が生成されます. コマン

ド xdvi を用いると, DVIファイルを画面に表示することができます.

コマンド xdvi の使い方は,

xdvi␣ファイル名�� ��←↩ (13.3)

です. 例えば sample1.dvi というファイルが生成されている場合には,

xdvi␣sample1.dvi�� ��←↩ (13.4)

と入力します.

DVIファイルはそのままでは印刷できません. これを印刷用のフォーマットに変換するには, コマンド

dvips を使います.

コマンド dvips の使い方は,

dvips␣-f␣DVIファイル␣>␣PostScriptファイル�� ��←↩ (13.5)

です. 例えば, sample1.dvi という名前の DVIファイルを印刷用の sample1.ps というファイルに変換する

には,

dvips␣-f␣sample1.dvi␣>␣sample1.ps�� ��←↩ (13.6)

と入力します.

なお, dvipsと似た dvi2ps というコマンドもあります. 使い方は dvipsと少し違っていて,

Page 211: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.2. LATEXソースプログラムの例 193

dvi2ps␣DVIファイル␣>␣PostScriptファイル�� ��←↩ (13.7)

となります.

コマンド dvips (あるいは dvi2ps) が生成したファイル (PostScript形式です)を実際に印刷するには, コ

マンド lpr を使います. たとえば, 上の例で生成されたファイル smaple1.ps を印刷するときには,

lpr␣sample1.ps�� ��←↩ (13.8)

と入力します.

印刷する前に PostScriptファイルが正しく作成しているか否かを確認したいときには, コマンド gv を用

いれば, 画面で PostScriptファイルの内容を閲覧することができます.

なお, PostScriptファイルの作成と印刷をまとめて,

dvips␣sample1.dvi␣|␣lpr�� ��←↩ (13.9)

と入力することもできます. これらの処理を図 13.1にまとめておきます.

Mule

*.tex

platex

*.dvi

dvips

*.ps

lpr

xdvi

gv モニタ

プリンタ

図 13.1: LATEXによる処理の流れ

上述のように, LATEXで文書を作成するときの作業の流れは,

• Muleなどのテキストエディタでファイルを編集する

• いろいろなコマンドを入力する

という手順を繰り返したものになります. ですが, これらのコマンドを毎回入力するのは繁雑です. また, 編

集中のファイルのどこかに誤りがあるとき, 毎回ファイル全体を処理しないと誤り箇所が発見できないので

は, 原稿の作成効率は上がりません.

このような不便さを解決するために, LATEXによる文書作成の処理を (半)自動化するためのツールが何種

類か出回っています. それらの中で代表的なのが, Mule上で動作する AUC TEX というツールと, YaTeX

というツールです.

この講義では, 上記のうち AUC TEXの方を取り上げます.

13.2 LATEXソースプログラムの例

図 13.2に LATEXによるソースプログラムの例を, 図 13.3にこれを LATEXによって処理した結果を示し

ます.

次に, この LATEXのソースプログラムを例に取りながら, LATEXのソースプログラムの構造について簡単

に説明します.

まず最初に, 文字% から改行までは注釈とみなされ, コンピュータでこの文書を処理するときには無視さ

れることを注意しておきます.

Page 212: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

194 第 13章 LATEX

\documentclass{jarticle}

\usepackage{amsmath,graphicx}

\begin{document}

\title{簡単な{\LaTeX}文書の例}

\author{半塲 滋}

\date{2002年 4月 4日 (木)}

\maketitle

\section{はじめに}

{\LaTeX}とは, Leslie Lamportによって開発された文書処理システムです. このシステムは,

Donald Knuthが開発した{\TeX}

というシステムに基づいています.

オリジナルの{\LaTeX}はLeslie Lamportがほぼ単独で開発したものですが, {LaTeX}の現行版である{\LaTeXe}は複数の開発者によって開発および保守作業がなされています.

\section{{\LaTeX}の文書の作成法}

{\LaTeX}の文書を作成するのはとても簡単です. テキストエディタでソースコードを作成し, コマンド platex

によって処理するだけで, プロ級の品質の組版をおこなうことができます.

\end{document}

%%% Local Variables:

%%% mode: latex

%%% TeX-master: t

%%% End:

図 13.2: ソースプログラム 図 13.3: LATEXで処理した結果

Page 213: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.2. LATEXソースプログラムの例 195

\documentclass{jarticle} (13.10)

の部分で指定された jarticleという文字列が, この文書全体の形式を決定しています. 文書全体の形式の代

表的なものは,

• jarticle

• jreport

• jbook

の 3種類です.

jarticleは論文や短い報告書を書くための様式です. この様式では, いくつかの節 (セクション, section)か

ら成り, かつ偶数ページと奇数ページの外見が同じ文書が生成されます.

jreportは長い報告書や卒論, 修士論文などを書くための様式です. この様式では, いくつかの章 (chapter)

から成り, かつ偶数ページと奇数ページの外見が同じ文書が生成されます.

jbookは書籍を作成するための様式です. jbookは文書が最終的にふつうの本と同じような形で製本され

ることを前提としているので, 偶数ページと奇数ページの様式 (欄外の空白の幅, ページが打たれる位置な

ど) が異なった文書が生成されます.

\begin{document} 以前の部分はプリアンブルと呼ばれます. ここには, ページのデザインに関する指定,

追加パッケージの読み込みなどが宣言されます. この例には\usepackage{amsmath,graphicx}という記述

がありますが, これは amsmath と graphicx という 2個の追加パッケージを読み込む, という意味になりま

す. 追加パッケージ等が必要でないときには, この部分には何も書かなくても構いません.

\begin{document} から\end{document} までの部分が LATEXによって処理される文章の本文です.

LATEXのソースコードには, 必ず

• \begin{document}がただ 1個

• \end{document}がただ 1個

なければなりません. \begin{document}以前の部分はすべてプリアンブルとみなされます. また, \end{document}

以降に何か書いてあっても, それは文章をコンパイルするときには無視されます.

この例では, まず文書の題目, 著者および文書の作成日時が宣言され, 標題が出力されてから本文が始まり

ます. これらの意味について表 13.1にまとめておきます. \title は文書の題目を宣言する LATEXのコマン

表 13.1: 題目や著者などの宣言記述 意味

\title{簡単な{\LaTeX}文書の例} 題目の指定 (中括弧の中に題目を書く)

\author{半塲 滋} 著者の指定 (中括弧の中に著者名を書く)

\date{2002年 4月 4日 (木)} 日付の指定 (中括弧の中に日付を書く)

\maketitle 実際に題目, 著者および日付を出力するコマンド

ド, \author は著者名などを宣言するのコマンド, \date は文書の作成日時などを宣言するためのコマンド

です. いずれも中括弧 {} 内に引数を指定します. コマンド maketitle が宣言されると, すでに定義されて

いる文書の題目, 著者名, 日付などがページに出力されます. コマンド\maketitleがない場合には文書の題

目などはページに出力されないことに注意して下さい.

なお, 著者名や日付をページに出力したくないときには, \author{}, \date{}などのように中括弧の中を

空にします.

作成する文書のスタイルによっては, 文書の題目, 著者および文書の作成日時の宣言および\maketitleコ

マンドを利用しない場合もあります.

\maketitleの次の行以降が本文になります.

Page 214: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

196 第 13章 LATEX

13.3 LATEXの文書の基本的な構造

13.3.1 LATEXのコマンド

LATEXの文書のソースプログラムは, ふつうの文書と LATEXのコマンドが混在したものです.

LATEXのコマンドは,記号\で始まります. これらのコマンドの中には,パラメータや引数,オプションを持た

ないものとパラメータや引数,オプションを持つものがあります. 引数などは,中括弧{ } indexLaTeX@LATEX!

ちゅうかっこ@中括弧, {} あるいは角括弧 [] の中に指定されます. パラメータや引数, オプションなどの

指定の仕方はコマンドによって違います.

13.3.2 文書の論理的な構成

文章というものは,

• いくつかの文が集まって段落を作る

• いくつかの段落が集まって節を作る

• いくつかの節が集まって章を作る

• いくつかの章が集まって部を作る

といった階層構造を持ちます. 階層を規定する区分 (段落, 節, 章など)をセクション単位と呼びます.

LaTeXでは, 以下のようなセクション単位を利用します.

• part (部)

• chapter (章)

• section (節)

• subsection

• subsubsection

• paragraph

• subparagraph

上記において, 上ほど「大きい」分類, 下ほど「小さい」分類です.

sectionより小さいセクション単位はどの文書スタイルでも使えますが, partは bookおよび jbookスタ

イルのみ, chapterは book, jbook, report, jreport スタイルのみで利用可能です.

セクション単位ごとに, 見出し語の大きさ, 見出し語の後の空白の広さ, 見出し語の後に改行するか否かな

どの設定が異なります.

文書中で新しい節などを開始するときには,

\section{節の名前}

\subsection{サブセクションの名前}

\subsubsection{サブサブセクションの名前}

\paragraph{パラグラフの名前}

などのように, まずバックスラッシュ\を書き, 続いてそのセクション単位の名前を書き, 続いて中括弧{}の

中にその節などの題目 (見出し)を書きます.

先に述べたように, 文書において文の次に小さい単位が段落であるわけですが, LATEXのソースコードに

おいで段落を区切るときには, 段落の終わりに空白の行を入れます.

たとえば, 以下のようにします.

Page 215: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.3. LATEXの文書の基本的な構造 197

第 1段落目の文章.................

................................

第 2段落目の文章.................

................................

(13.11)

上記のようなソースプログラムを作ると, LATEXは適切な段落の処理を自動的にやってくれます. LATEXを

使うときには, なるべくこのような LATEXの自動組版機能を利用するようにして下さい.

ここでいくつか注意を述べます.

• LATEXは 2個以上連続する空白や改行は, すべて空白や改行 1個として取り扱います. この講義では

取り上げませんが, 空白の幅などを調整するコマンドもあります.

• LATEXのソースプログラムを作成するときには, 1行あたり 80文字前後のところで改行を入れるよう

にして下さい. 改行を入れなくても処理速度が低下する以外には大きな問題は生じないのですが, 適

切に改行が入っていないソースプログラムは誤りの発見や訂正が大変しにくいので不便です.

13.3.3 環境

LATEXは, 箇条書きや数式, 図表, 定理など, 文書中で特定の役割を持った単位を「環境」という概念で表

現します. 環境は, \begin{環境の名前}という宣言で始まり, \end{環境の名前}という宣言で終わります.

たとえば, 文書中で箇条書きをしたいときには, ソースプログラム中に図 13.4のような記述を作成します.

これを LATEXによって処理すると, 図 13.5のような結果が得られます.

\begin{itemize}

\item 箇条書きの項目 1

\item 箇条書きの項目 2

\end{itemize}

図 13.4: 環境の例 (箇条書き), ソースプロ

グラム図 13.5: 環境の例 (箇条書き), 出力

LATEXの代表的な環境をいくつか表 13.2にまとめておきます. これらの環境の使い方については適当な

表 13.2: LATEXの代表的な環境環境名 内容

itemize 箇条書き (各項目に丸印などをつける)

enumerate 箇条書き (各項目に番号をつける)

description 箇条書き (単語などの説明に使う)

equation 1行におさまる数式

eqnarray 複数行にまたがる数式

figure 図

table 表 (ふつうは内部に tabular環境を含む)

tabular 表

center テキストなどを中央揃えにする

flushleft テキストなどを左揃えにする

flushright テキストなどを右揃えにする

quote 引用

verbatim 入力した通りの文字列 (LATEXのコマンドなども含めてすべて)をタイプ文

字で出力

Page 216: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

198 第 13章 LATEX

参考書を参照して下さい.

13.3.4 相互参照

LATEXは章, 節, 数式などの番号を自動的に生成しますが, これらの番号を本文中の別の場所 (その場所よ

り前でも後でもよい) から参照することができます. このためには, \label というコマンドと\ref という

コマンドをペアで使います.

コマンド\labelは章, 節, 数式などの名前を付けるコマンドです.

\label{適当な名前} (13.12)

のようにして使います. 文書のどのような構成要素に名前を付けるかは, 使用された場所によって変わりま

す. 章や節などが始まった直後で使用すると, その章や節に名前を付けることになります. 数式環境などの

内部で使用された場合には, その数式に名前を付けます. また, 図表の環境では (この講義では取り上げませ

んが) 標題を出力するために\caption というコマンドを使うのですが, \captionコマンドの直後にコマン

ド\labelを使うと, その図表に名前を付けます. 名前としてはどのようなものも使えるのですが, 名前の前

半には「どのようなものに名前を付けたか」がわかるようなキーワードを使うことが多いです. たとえば,

節に名前を付ける場合には

\label{sec:introduction} (13.13)

などのようにし (後半の「introduction」という部分は適当です), 数式に名前を付ける場合には

\label{eq:integration} (13.14)

などのようにします (後半部については上と同様).

ラベルが付いたものの番号を参照したいときには, \refというコマンドを使います. コマンド\refの使

い方は,

\ref{コマンド\labelで宣言された名前} (13.15)

です. たとえば, (13.3.4)のようにしてラベルが宣言されている場合にこの番号を参照するには,

\ref{sec:introduction} (13.16)

とします. 先に述べたように, コマンド\refを使う場所は, コマンド\labelの前でも後でも構いません. た

だし, このような相互参照によって文書全体で正しい番号付けがなされるようにするためには, 文書全体を

platex によって 2回あるいは 3回処理する必要があります.

図 13.6に, 相互参照を多用した LATEXのソースプログラムの例を解説付きで示します.

これを処理すると, 図 13.7のような結果が得られます.

13.4 AUC TEXによるLATEX文書作成の自動化

本節では, LATEXのソースプログラムの作成, コンパイルから印刷までの一連の作業を練習してみること

にします. ただし, 単純に LATEXによる文書作成のためのコマンドをすべて試すのではなく, AUC TEX とい

う LATEX文書作成の自動化のためのツールを利用することにします. みなさんの環境では, Muleで LATEX

のソースプログラムを読み込むと, AUC TEXが自動的に起動する設定になっています.

なお, 以下の作業はすべてみなさんのホームディレクトリ以下にある,

/lecture/latex (13.17)

というディレクトリでおこなうことにします. 作業を始める前に, まず

cd ~/lecture�� ��←↩

mkdir latex�� ��←↩ (13.18)

cd latex�� ��←↩

Page 217: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.4. AUC TEXによる LATEX文書作成の自動化 199

\documentclass{jarticle}\begin{document}\section{はじめに}\label{sec:intro}第\ref{sec:physics}節では物理学を学ぶ. \section{物理}\label{sec:physics}第\ref{subsec:mechanics}節では古典力学を取り扱う. (\ref{eq:Newton})式にニュートンの運動方程式を示す. 第\ref{subsec:em}節では電磁気学を取り扱う. (\ref{eq:sef})式に静電場の方程式を示す. \subsection{古典力学}\label{subsec:mechanics}ニュートンの運動方程式は\begin{equation} F=m a \label{eq:Newton}\end{equation}である. \subsection{電磁気学}\label{subsec:em}静電場の方程式は\begin{equation} \nabla \cdot D=\rho \label{eq:sef}\end{equation}によって与えられる. \end{document}%%% Local Variables: %%% mode: latex%%% TeX-master: t%%% End:

2番目の節に sec:physicsという名前を付ける

1番目のサブセクションにsubsec:mechanics という名前を付ける

2番目のサブセクションにsubsec:em という名前を付ける

上で定義されたNewtonの運動方程式にeq:Newtonという名前を付ける

上で定義された静電場の方程式にeq:sefという名前を付ける

最初の節に sec:introという名前を付ける

参照

図 13.6: 相互参照を多用したソースプログラム

図 13.7: 相互参照の処理結果

と入力して, 作業用のディレクトリを作成し, そのディレクトリに移動しておいて下さい.

Muleは, あるファイルが LATEXのソースプログラムであるか否かを拡張子の部分で区別しています. で

すから, LATEXのソースプログラムの名前には必ず.texという拡張子が付いている必要があります. この節

Page 218: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

200 第 13章 LATEX

では sample1.tex というファイルを作成することにします.

では, 先ほどディレクトリ~/lecture/latexに移動するときに使った ktermのウィンドウ内で

mule�� ��←↩ (13.19)

と入力してMuleを起動し, 続いて

C-x C-f (13.20)

と入力して下さい. すると, Muleのエコー行 (一番下の行)に

Find file: ~/lecture/latex (13.21)

という表示が出るので, 続いて

sample1.tex�� ��←↩

とタイプして下さい. 上記の操作が終わると, Muleのエコー行に, 例えば

Master file: (default this file) ~/lecture/latex/ (13.22)

といったようなメッセージが出ます (ここのメッセージの内容は作業しているディレクトリによって異なり

ます). いずれにせよ, 今回はここに表示された内容を変更する必要はありません. ですから, そのまま�� ��←↩ (13.23)

と入力して下さい. すると, Muleの画面は以下のような状態になります.

%%% Local Variables:

%%% mode: latex

%%% TeX-master: t

%%% End:

(13.24)

この状態で,

C-c C-e (13.25)

と入力して下さい. すると, Muleの一番下の行に

Environment type: (default document) (13.26)

というメッセージが出ます. ここでは, デフォルトのままで良いので,�� ��Enter キーを押して下さい. すると,

続いてMuleの一番下の行に

Document style: (default jarticle) (13.27)

というメッセージが出ます. ここでもデフォルトの jarticle のままで良いので,�� ��Enter キーを押して下さい.

(jreport や jbook の様式を使いたいときは, ここでキーボードから jreport や jbookと入力することになり

ます).�� ��Enter キーを押すと, Muleの一番下の行に

Options: (13.28)

というメッセージが出ます. ここでは, 特にオプションを指定する必要はないので, そのまま�� ��Enter キーを押

して下さい. ここまでの手順が終了すると, Muleの画面は以下のようになります.この段階で, docmentstyle

の指定および\begin{document}, \end{document}が自動的に挿入されています.

\documentclass{jarticle}

\begin{document}

\end{document}

%%% Local Variables:

%%% mode: latex

%%% TeX-master: t

%%% End:

(13.29)

Page 219: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.4. AUC TEXによる LATEX文書作成の自動化 201

では, 上の sample1.texを編集して, 以下のような状態になるようにして下さい. ただし, 「適当な題目」

「以下適当な文章」のところは適当な題目や文章で置き換え, 学籍番号と氏名のところにはあなた自身の学

籍番号と氏名を記入し, 日付は今日の日付にしておいて下さい.

\documentclass{jarticle}

\begin{document}

\title{適当な題目}

\author{学籍番号 xxxxxx あなたの名前}

\date{日付}

\maketitle

以下適当な文章.

\end{document}

%%% Local Variables:

%%% mode: latex

%%% TeX-master: t

%%% End:

(13.30)

では続いて, 作成した LATEXのソースプログラムを部分的に処理する方法とソースプログラム全体を処理

する方法について学ぶことにします.

まず部分的な処理の方をやってみましょう.

「以下適当な文章」以下の適当なところで C-␣ と入力してマークを設定し, 続いて適当なところまでカー

ソルを移動させて (ただし\end{document}より以前でなければならない) M-w と入力して下さい. これによ

り, 「以下適当な文章」...という部分の一部がリージョンとして指定されたことになります. LATEXのソー

スプログラムの一部を処理したいときには, このリージョンを処理の対象とすることになります.

続いて,

C-c C-r (13.31)

と入力して下さい. すると, Muleの一番下の行に

Command: (default LaTeX) (13.32)

という表示が出ます. ここではデフォルトのままで良いので�� ��←↩ (13.33)

と入力して下さい. 編集したファイルに誤りがなければMuleの一番下の行に

LaTeX: successfully formatted {1} page. (13.34)

という表示が出ます. これでソースプログラムの処理は終了です.

次に, 処理された結果を画面に表示してみましょう. もう 1回

C-c C-r (13.35)

と入力して下さい. そして, Muleの一番下の行に

Command: (default LaTeX) (13.36)

という表示が出ている状態で,

view�� ��←↩ (13.37)

と入力して下さい. すると, Muleの一番下の行に

View command: xdvi _region_.dvi (13.38)

Page 220: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

202 第 13章 LATEX

という表示が出ます. この部分は変更する必要がないので,�� ��←↩ (13.39)

と入力して下さい. すると, 新しいウィンドウ (xdviのウィンドウ)が開いて, 先ほど処理が終わった文書の

内容が画面に表示されます. この画面の右側にいろいろなメニューがあります. 意味は見ただけで明らかで

しょう. メニューを選択するには, マウスカーソルを希望するメニューのところに合わせてマウス左ボタン

を押します. このウィンドウを消したいときには, 画面右側最上部の Quit という部分にマウスカーソルを

合わせてマウス左ボタンを押して下さい.

今処理が終わった文章だけを印刷するには,

C-c C-r (13.40)

に続いて

print�� ��←↩ (13.41)

と入力します (大文字と小文字の区別はありません). すると, Muleの一番下の行に

Printer: (default lp) (13.42)

という表示が出ます. ここの表示があなたが印刷をおこないたいプリンタの名前と合っているときには�� ��Enter

キーを押し, ここの表示と違うプリンタから印刷したいときにはプリンタ名�� ��←↩ と入力して下さい. いずれ

の場合も, Muleの一番下の行に

Print command: dvips _region_ | lpr -Plp (13.43)

といったような表示が出ます (最後の部分がプリンタ名です). ここで�� ��Enter キーを押せば, しばらく待った

後に, 今処理が終わった文書がプリンタから印刷されます.

次は, 文書全体の処理です.

文書全体を処理するには, C-c C-c と入力します. さっそく

C-c C-c (13.44)

と入力して下さい. すると, 先ほどと同様に, Muleの一番下の行に

Command: (default LaTeX) (13.45)

という表示が出ます. ここでも�� ��←↩ (13.46)

と入力して下さい. すると, 再び

Command: (default LaTeX) (13.47)

という表示が出ます. ここでもデフォルトのままで良いので�� ��←↩ (13.48)

と入力して下さい. 処理が正常に終了すれば, Muleの一番下の行に

LaTeX: successfully formatted {1} page. (13.49)

というメッセージが出ます. 次に, 処理の結果を画面に表示してみましょう. 再度

C-c C-c (13.50)

と入力して下さい. Muleの一番下の行に

Command: (default LaTeX) (13.51)

という表示か, あるいは

Page 221: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.5. 数式の組み方 203

Command: (default View) (13.52)

という表示が出ます. どちらが出るかは先の LATEXプログラムを処理がどのような状態で終了したかによっ

て異なります. ここが (default LaTeX)?となっている人は

view�� ��←↩ (13.53)

と入力し, (default View)?となっている人は�� ��←↩ (13.54)

と入力して下さい. すると, 先ほどと同様に処理結果が画面に表示されます. 印刷の方法は,

C-c C-c (13.55)

に続いて

print�� ��←↩ (13.56)

と入力して下さい. すると, 先ほどと同様に, Muleの一番下の行に

Printer: (default lp) (13.57)

という表示が出ます. ここの表示があなたが印刷をおこないたいプリンタの名前と合っているときには�� ��Enter

キーを押し, ここの表示と違うプリンタから印刷したいときにはプリンタ名�� ��←↩ と入力して下さい. いずれ

の場合も, Muleの一番下の行に

Print command: dvi2ps _region_ | lpr -Plp (13.58)

といったような表示が出ます (最後の部分がプリンタ名です). ここで�� ��Enter キーを押せば, しばらく待った

後に, 今処理が終わった文書がプリンタから印刷されます.

さいごに, AUC TEXの是非覚えておくべき最低限のコマンドを表 13.3, 表 13.4にまとめておきます.

表 13.3: AUC TEXの基本的なコマンド機能 コマンド

指定された領域に対してコマンドを実行 C-c C-r

ファイル (群)全体に対してコマンドを実行 C-c C-c

環境を挿入 C-c C-e

表 13.4: C-c C-rなどの後で指定する文字列機能 文字列

コンパイル latex

プレビュー (画面で印刷結果を確認) view

印刷 print

13.5 数式の組み方

13.5.1 数式環境

LATEXで数式を組む方法は, 大きく分けると,

• 本文中に改行せずに数式を埋め込む

• 数式用の特別な行を作る

Page 222: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

204 第 13章 LATEX

という 2種類に分類できます. そして, この各々に対応するコマンドがあります. これらの方法を用いた場

合, ソースコード中の数式に対応する部分は「数式環境」という数式を組むための特別な環境にあるとみな

されて処理されます. 数式環境ではソースコードに含まれる空白はすべて無視されることに注意して下さ

い. 数式環境で空白を空ける必要があるときには, 空白を入れるためのコマンドを使う必要があります.

さて, 本文中に改行せずに数式を埋め込むときには,

1. 数式が始まる部分に文字$を書く

2. 続けて数式を打ち込む

3. 数式が終わる部分に文字$を書く

という作業をおこないます. たとえば, $1+2+3+4$と書くと,「1+ 2+ 3+ 4」という数式をテキスト中に埋

め込むことができます.

これに対し, 数式用の行を作るときには, たとえば

\begin{equation}

1+2+3+4

\end{equation}

(13.59)

のように, \begin{equation}と\end{equation} で囲まれた範囲に数式を書きます. 上記によって以下の

ような出力が得られます.

1 + 2 + 3 + 4 (13.1)

右端にある数式の番号は自動的に生成されます. なお,数式番号を入れる必要がない場合は, \begin{equation}

と\end{equation}のかわりに\[ と\/ を使います. 上記に対応した例は以下の通りです.

\[

1+2+3+4

\]

(13.60)

13.5.2 いくつかの数式の例

LATEXの数式組みの機能は極めて協力なのですが, 数式組みのためのコマンドも膨大なので, この講義で

はこれらを紹介する余裕はありません. ここでは, 表 13.5にごく簡単な数式の組み方の例を列挙するにとど

めます. なお, 表 13.5の例はいずれも数式環境中 ($ $, \begin{equation} ~ \end{equation}\verbな

ど) で使用されなければならないことを注意しておきます.

13.6 図の取り込み

LATEXで作成した文書に図を取り込みたいときには, プリアンブルの部分で graphicx というパッケージを

取り込みます.

このパッケージの使い方の具体的な説明に入る前に, パッケージとその読み込み方について一般的な説明

をしておきましょう.

パッケージとは, LATEXのさまざまな拡張機能が定義されているファイルのことです. LATEXが提供する

パッケージの数は非常に多いので, 利用者が文書を作成するときにどのパッケージを使うかを明示的に指示

するようになっています. パッケージを読み込むための LATEXのコマンドは\usepackage です. このコマ

ンドの使い方は,

\usepackage{パッケージ名} (13.61)

です. 使うパッケージが複数ある場合には,

\usepackage{パッケージ名 1, パッケージ名 2,...} (13.62)

のように取り込むパッケージ名をすべてコンマで区切って並べるか,

Page 223: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

13.6. 図の取り込み 205

表 13.5: ごく簡単な数式の例種類 コマンド 使用例

ソース 出力

上付き添字 ^ x^{2} x2

下付き添字 _ x_{2} x2

分数その 1 \frac \frac{1}{2}1

2分数その 2 / 1/2 1/2

平方根 \sqrt \sqrt{2}√2

n乗根 \sqrt \sqrt[n]{2}n√2

和 \sum \sum_{i=1}^{n} x_i

n∑i=1

xi

積 \prod \prod_{i=1}^{n} y_i

n∏i=1

yi

積分 \int \int_{0}^{5} f(x) dx

∫ 5

0

f(x)dx

偏微分 \partial \partial f/\partial x ∂f/∂x

\usepackage{パッケージ名 1} (13.63)\usepackage{パッケージ名 2} (13.64)

のようにコマンド\usepackageをいくつか並列して書きます. いくつかのパッケージにはオプションがあ

り, そのオプションは角かっこ []の中に指定されます. オプションを指定するときの記法は

\usepackage[オプション]{パッケージ名} (13.65)

です.

では, パッケージ graphicx の使い方の説明に移りましょう. パッケージ graphicx を使うときには, 以下

のように, プリアンブル (\documentstyleの後, \begin{document}の前)に, \usepackage{graphicx}と

いう LATEXのコマンドを入れます.

\documentclass{jarticle}

\usepackage{graphicx}

\begin{document}

\end{document}

パッケージ graphicx にはいろいろなコマンドが定義されているのですが, PostScriptファイルを取り込

むためのもっとも基本的なコマンドは\includegraphics です. このコマンドの使い方は,

\includegraphics{取り込みたいファイル名} (13.66)

あるいは

\includegraphics[オプション]{取り込みたいファイル名} (13.67)

です. オプションの部分では画像の高さや幅などのいろいろなパラメータが指定できますが, 実用上は画像

の幅の指定法だけを覚えておけばよいでしょう.

では, 実際にファイル中にサンプルの画像ファイルを取り込む例題を通してコマンド includegrahicsの使

い方を見ることにしましょう. なお, 第 13.4節と同様に, ファイル作成はすべて

~/lecture/latex (13.68)

というディレクトリでおこなうことにします.

取り込むための画像のサンプルとして, 電気電子工学科のビルの写真が用意してあります. ファイル名は

Page 224: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

206 第 13章 LATEX

~hanba/sample/ee.eps (13.69)

です. 作業を始める前に,

cp ~hanba/sample/ee.eps ~/lecture/latex�� ��←↩ (13.70)

と入力して, このファイルをみなさんのホームディレクトリにコピーしておいて下さい.

では, Muleを起動し,図13.8のような内容のファイルを作成して下さい. なお,図13.8中の\includegraphics

に続く角括弧 [ ]内にある width=\textwidthという記述は, 「図の横幅を文書全体の横幅と等しくする」

という意味です.

\documentclass{jarticle}

\usepackage{graphicx}

\begin{document}

\begin{center}

\includegraphics[width=\textwidth]{ee.eps}

\end{center}

\end{document}

図 13.8: PostScriptファイルを取り込んだ LATEXのソースコードの例

入力が終わったら,

C-c C-c (13.71)

と入力します. すると, Muleのエコー行に

Command: (default LaTeX) (13.72)

という表示が出るので, そのまま�� ��Enter キーを押します. ソースコードに誤りがなければ,

LaTeX: successfully formatted 1 page. (13.73)

という表示が出ます.

では, 処理結果を画面で確認してみましょう. このためには, もう一回

C-c C-c (13.74)

と入力します. すると, 先ほどコンパイルが正常に終わっていれば,

Command: (default View) (13.75)

という表示が出ます. そのまま�� ��Enter キーを押すと, xdviが起動して, 処理結果を画面で確認することがで

きます.

コマンド\includegraphicsは,パラメータとしてwidth (横幅)が指定されると,取り込んだ画像を指定さ

れた横幅になるように拡大縮小します. 画像の高さは画像を歪ませないように自動的に調整されます. たとえ

ば width=0.5\textwidthとすれば画像の幅は文書全体の横幅の 0.5倍 (半分)になります. (0.5\textwidth

と書くと, これは LATEXによって 0.5×文書の横幅と解釈されます). また, width=10cm, width=15mmなど

のように単位をセンチメートルやミリメートルにして長さを直接指定することもできます.

Page 225: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

207

第14章 補遺

この章では, 今までこの講義で紹介から漏れていたいくつかの事項について簡単に説明してゆきます.

14.1 遠隔端末のX Window System用アプリケーションの利用

あるコンピュータから他のコンピュータ (遠隔端末) にリモートログインするとそのコンピュータの CPU

などを利用できることは第 10章で見ました. しかし, 遠隔端末で X Window System 上で動作するアプリ

ケーションを動かした場合, 何も設定をしていない状態では, X Window System 上にあらわれるはずのウィ

ンドウなどは手元のコンピュータには出現しません. では, このアプリケーションのウィンドウなどが手元

のコンピュータの画面に表示されるようにするにはどうしたらよいでしょうか?

実は, X Window System はネットワーク透過型と呼ばれる特徴を持ったシステムであり, 遠隔端末から

手元のコンピュータの画面を取り込んだり操作したりする (あるいはその逆を実行する) ための機能が始め

から用意されています. しかし, セキュリティ強化のために, みなさんがログインしたときの標準状態では,

他のコンピュータ (あるいは他の利用者)がみなさんの手元の X Window System にアクセスすることに関

し, 制限がかかっています. ですから, 遠隔端末で動いているアプリケーションのウィンドウなどが手元の

コンピュータの画面に表示されるようにするには, この制限を解除する必要があります.

ここで, 例として, みなさんが今 ed23 の前に座ってコンピュータを利用していて, ed01にリモートログ

インして tgif を起動したい, という状況を考えましょう.

単純に,

rsh␣ed01�� ��←↩ (14.1)

tgif�� ��←↩

としただけでは, 図 14.1のように警告メッセージが出て, Tgifのウィンドウは開きません.

図 14.1: 遠隔端末で Tgif を起動しようとして失敗している例

(14.1)がうまくいかない理由は 2個あります. その理由は何かというと,

• ed01の側は利用しなければいけない X Window System の画面が ed23にあることを知らない

• ed23の側の X Window System にはアクセス制限がかかっているので, ed01の方で ed23の画面に

ウィンドウを開くことができない

という 2点です.

第 1の問題を解消するには, 遠隔端末の側で, コマンド setenv を使って DISPLAY という環境変数を設

定します. どのようにして設定すればよいかというと,

Page 226: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

208 第 14章 補遺

setenv␣DISPLAY␣みなさんが座っているコンピュータの名前:0.0�� ��←↩ (14.2)

のようにします. 今の例では, ed01(遠隔端末)にログインしているウィンドウの方で,

setenv␣DISPLAY␣ed23:0.0�� ��←↩ (14.3)

と入力します.

第 2の問題を解消するには, xhost というコマンドを使います. みなさんの目の前にあるコンピュータの

側で ktermなどを開き,

xhost␣+␣遠隔端末�� ��←↩

と入力すると, 指定した遠隔端末からみなさんの前にあるコンピュータの Xサーバ (X Window System を

動かしているプログラム)へのアクセスが許されます. また, ktermなどのウィンドウの中で

xhost␣-␣遠隔端末�� ��←↩

と入力すると, その遠隔端末のアクセス許可を取り消すことができます.

今の例題では, ed23で ktermなどを開いて,

xhost␣+␣ed01

と入力します. すると,

ed01 being added to access control list

というメッセージが出て, ed01から ed23のXサーバへのアクセスができるようになったことが確認できま

す (図 14.2). このような状態になっていれば, ed01にリモートログインしている方の ktermなどのウィン

図 14.2: コマンド xhost により ed01からのアクセスを許可した例

ドウの内部で

tgif�� ��←↩ (14.4)

と入力すると, 遠隔端末 ed01の CPUを利用して Tgif を起動することができます.

なお,

xhost�� ��←↩ (14.5)

と入力すると, 現在アクセスが許可されているコンピュータの一覧を画面に表示することができます.

さらに,

xhost +�� ��←↩ (14.6)

と入力すると, どのような遠隔端末からもみなさんの手元にあるコンピュータのXサーバへのアクセスが可

能になりますが, これはセキュリティやプライバシー保持の上で非常に問題があるので, 絶対に実行しない

で下さい. 一方,

xhost -�� ��←↩ (14.7)

と入力すると, すべての遠隔端末に対し, みなさんの目の前にあるコンピュータの Xサーバへのアクセスを

禁止する設定になります.

Page 227: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.2. ディレクトリの整理 209

14.2 ディレクトリの整理

多くの人が, みなさんのホームディレクトリにいろいろなファイルを直接作成してしまい, ファイルのディ

レクトリへの分類を一切やっていないようです. ですが, これは非常に悪い習慣です.

コンピュータを利用することが多くなり, ホームディレクトリにあるファイルの数が増えてくると, 必要

なファイルがどこにあるかを探すのが難しくなってゆきます. また, 保存しておく必要があったファイルに

気付かずに上書きしてしまう, といったような間違いが生じる危険も増えます. このような不具合や間違い

を減らすためには, ホームディレクトリ以下を階層的に分類して, ファイルをきちんと整理すべきです.

14.3 バックアップ

コンピュータは非常に部品点数の多い電子機器ですから, 故障することもあります. 記憶媒体であるハー

ドディスクも一定の確率で壊れます. この学科では, みなさんのホームディレクトリを管理しているサーバ

に RAIDというシステムを入れてハードディスクの信頼性および耐故障性を上げてありますし, 1箇月の 1

回程度の頻度でバックアップを取ってもいますが, 万全ではありません. ですから, 大事なデータは必ず自

分でバックアップするようにして下さい.

たいていの人のディスク消費量は非常に少ないので, バックアップにはフロッピーディスクを使えば十分

だと思います. バックアップを取るときには, 第 7章で紹介した tar, gzip, mcopyなどといったコマンドを

活用して下さい.

14.4 Muleの操作に関する注意

みなさんがMuleを使うところを見ていると,

• Muleをバックグランドジョブで起動していない

• 新しいファイルを作成するときにいちいちMuleを立ち上げ直す

• 複数のファイルを編集したいときにMuleをたくさん立ち上げる

• ファイル名を指定せずに編集作業を開始し, 作業が全部終わってからようやくファイルに名前を付け

て保存する

といった, 非常に無駄で効率が悪い使い方をしている人が多いです. これらがどうして無駄かについて, 以

下で説明してゆきます.

Muleをフォアグランドジョブで起動してしまうと ktermのウィンドウで動いているシェルはMuleによっ

て占有されてしまい, 結果として kterm のウィンドウが 1個無駄になります. 画面に開けるウィンドウの数

には制限があるので, このように無駄なウィンドウをあまりにたくさん作ってしまうと, 問題が生ずる (アプ

リケーションが起動できなくなる)ことがあります.

新しいファイルを開きたいときには, Muleのウィンドウ内で C-x C-f と入力するか, (X Window System

のインターフェースつきでMule を起動している場合, すなわちコマンド mule␣-nwをタイプすること以外

の方法でMuleを起動した場合には, ウィンドウ上部の Files メニューから Open File... を選択すれば済み

ます. いちいち Mule を終了してから再起動するのは時間の無駄です.

Muleはかなり CPUやメモリに負荷をかけるプログラムなので, この学科のコンピュータ室にあるよう

な非力なコンピュータでMuleをたくさん起動すると, パーフォーマンスが極端に低下することがあります.

Muleには同時に複数のファイルを編集するためのマルチバッファ, マルチウィンドウ, マルチフレームの機

能があります. これらの機能を活用しましょう.

ファイルに名前を付けずに編集作業を始めることが無駄な理由は 2通りあります.

まず第 1に, Muleはファイルの拡張子からそのファイルの種類を判断し, そのファイルの種類に適合した

挙動 (モード)に自動的に移行します. C言語のプログラム用, Perlのプログラム用, TeXのプログラム用な

ど, 各種のモードが用意されています. そして, これらのモードでは, 対応する種類のファイルがより効率良

く編集できるようになっています. ファイルに名前が付いていないときには, この機能が使えません.

Page 228: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

210 第 14章 補遺

第 2に, ファイルに名前を付けずに編集作業を続けているということは, ファイルがまだ保存されていな

いということを意味します. ところで, コンピュータに障害が発生すると, 編集中のファイルの内容が失わ

れる可能性があります. このような場合に, ほぼ確実に失われるのは, コンピュータのメモリ上にはあるけ

れどもハードディスクには保存されていないデータ (編集中で未保存のファイル)です. これに対し, ファイ

ルを保存しておけばデータはコンピュータのハードディスクなどに残りますし, ハードディスクなどが故障

してしまった場合を除けば, ハードディスクなどに保存済みのデータが消えることはありません. ですから,

編集中のファイルはこまめにセーブすべきです. こまめにセーブする習慣を付けておかないと, いつか泣き

見ることになります.

14.4.1 複数のウィンドウの操作

第 4章で説明した通り, Muleの用語では, Muleを起動したときに開くウィンドウ全体をフレームと呼び

ます. また, 1個のフレームを複数の画面に分割することができるのですが, この個々の画面のことをウィン

ドウといいます.

Muleのウィンドウ操作のうちよく使われるものを表 14.1 にまとめておきます.

表 14.1: Muleのウィンドウ操作コマンド機能 コマンド

現在のウィンドウを上下 2個のウィンドウに分割する C-x 2

現在のウィンドウを左右 2個のウィンドウに分割する C-x 3

他のウィンドウに移動する C-x o

現在選択している (カーソルがある)ウィンドウを消す C-x 0

現在選択している (カーソルがある)ウィンドウ以外をすべて消す消す C-x 1

では, さっそく練習してみましょう. Muleを起動し,

C-x 2 (14.8)

と入力して下さい. すると, ウィンドウが図 14.3のように, 画面が上下に 2分割されます.

図 14.3: ウィンドウの上下 2分割

続いて,

C-x o (14.9)

と入力し, カーソルが画面下半分のウィンドウに移動することを確認して下さい.

これに引き続いて,

C-x 3 (14.10)

Page 229: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.4. Muleの操作に関する注意 211

図 14.4: 下半分のウィンドウの左右 2分割

と入力して下さい. すると, 画面下半分のウィンドウが左右に 2分割されます (図 fig:mule-c-x-3).

では, 続いて,

C-x o (14.11)

と数回入力して, 選択されたウィンドウ (カーソルが入っているウィンドウ) が切り換えられることを確認

して下さい. なお, X Window SystemのインターフェースつきでMule を起動している場合¿ には, 特定の

ウィンドウにマウスカーソルを入れてマウス左ボタンを押すことでも, そのウィンドウを選択できます.

あるウィンドウ内で

C-x C-f (14.12)

と入力すると, そのウィンドウでファイルを編集することができます.

では, 適当なウィンドウで

C-x 0 (14.13)

と入力して, 選択されたウィンドウを消してみて下さい.

さらに,

C-x 1 (14.14)

と入力して, 選択されたウィンドウ以外のウィンドウを全部消してみて下さい.

Muleを使っていると画面が自動的に複数のウィンドウに分割されることがよくあります. このような例

は, trrを動かすとき, 電子メールの読み書きをするとき, AUC TEXを使って LATEXのソースプログラムを

編集するときなど, いくらでも挙げることができます.

いらないウィンドウが開いてしまったときには, 以上で述べたウィンドウ操作コマンドを思い出した上で,

いらないウィンドウを消す, などの作業をおこなって下さい.

14.4.2 複数のバッファの操作

この節では, Muleで複数のバッファ(ファイル)を操作する方法について説明してゆくことにします.

まず Mule を起動してから

C-x C-f (14.15)

と入力し, 画面下部のエコー領域 (第 4章の図 4.2参照)で file001.txt と入力して file001.txt というファイ

ルを開いて下さい.

次に, ふたたび

C-x C-f (14.16)

Page 230: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

212 第 14章 補遺

と入力し, 画面下部のエコー領域で file002.txt と入力して file002.txt というファイルを開いて下さい.

さらに,

C-x C-f (14.17)

と入力し, のエコー領域で file003.txt と入力して file003.txt というファイルを開いて下さい.

この段階で, Muleは

• file001.txt

• file002.txt

• file003.txt

の 3個のファイルに対応する 3個のバッファと, *scratch*という名前の一時作業用のバッファ(ファイルに

は対応しません) などを開いています.

ここで, 今開いているバッファの一覧を表示してみましょう. このためには, Muleのウィンドウ内で

C-x C-b (14.18)

と入力します. すると, 画面が上下に 2分割され, 今開いているバッファの一覧が画面に表示されます (図

14.5).

図 14.5: Muleでバッファの一覧を表示しているところ

あるバッファを選択するには,

C-x b (14.19)

と入力します. すると, エコー領域に

Switch to buffer: (default file002.txt) (14.20)

などといった表示が出ます. (default )という部分に書かれているバッファが希望するものである場合に

はそのまま�� ��Enter キーを押し, それ以外の場合はプロンプト以降の部分にバッファ名を指定して

�� ��Enter キー

を押します. ここでは,

file001.txt�� ��←↩ (14.21)

と入力してみることにしましょう.

あるウィンドウで選択されているバッファの名前は, そのバッファのモード行 (白黒反転している部分)の

中央より左寄りに表示されます.

バッファを消したいときには,

C-x k (14.22)

と入力します. すると, エコー領域に

Page 231: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.4. Muleの操作に関する注意 213

Kill buffer: (default file001.txt) (14.23)

などといった表示が出ます. (default )という部分に書かれているバッファが希望するものである場合に

はそのまま�� ��Enter キーを押し, それ以外の場合はプロンプト以降の部分にバッファ名を指定して

�� ��Enter キー

を押します. ここでは

file001.txt�� ��←↩ (14.24)

と入力することにします.

Muleのバッファ操作コマンドの代表的なものを表 14.2にまとめておきます.

表 14.2: Muleのバッファ操作コマンド機能 コマンド

バッファ一覧を表示する C-x C-b

バッファを選択する C-x b

バッファを削除する C-x k

Muleで複数のファイルを編集する作業が終わってMuleを終了するとき, ファイルの対応したバッファの

中に未保存のものがあると, Muleはエコー領域に

Save file /home/b/y99/d99999/file001.txt? (y, n, !, ,. q, C-r or C-h) (14.25)

という表示を出します. ここで

y

と入力するとそのバッファをファイルに保存し,

n

と入力するとそのバッファを保存しません. また,

!

と入力するとすべてのファイルに対応するすべてのバッファを保存できます.

14.4.3 複数のフレームの操作

Muleを起動すると, ふつうは X Window System の画面にウィンドウ (フレーム)が 1枚開きます. とこ

ろで, Muleには, このフレームを複数取り扱う機能があります. Muleのフレーム操作コマンドの代表的な

ものを表 14.3にまとめておきます.

表 14.3: Muleのフレーム操作コマンド機能 コマンド

新しいフレームを開く C-x 5 2

マウスカーソルの入っているフレームを閉じる C-x 5 0

Muleで新しいフレームを開くとにには,

C-x 5 2 (14.26)

と入力します. Filesメニューの Make New Frame を選択する (Filesメニューにマウスカーソルを合わせて

マウス左ボタンを押し下げた状態にし, そのままマウスを移動させてマウスカーソルをMake New Frame

という部分に合わせ, マウス左ボタンを離す) ことでも同じ操作ができます.

画面に複数のMuleのフレームが開いているときには, 個々のフレームをあたかも独立したMuleのウィ

ンドウであるかのように操作できます.

特定のフレームを消したいときには, 消したいフレームの中にマウスカーソルが入っている状態で

Page 232: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

214 第 14章 補遺

C-x 5 0 (14.27)

と入力します.

なお, X Window SystemのインターフェースつきのMule 以外では, フレーム操作はできません.

さいごに, Muleを終了するとすべてのフレームが一斉に消えてしまうことを注意しておきます.

14.4.4 diredモード: ディレクトリの操作

Muleには, ディレクトリを移動したりファイルの複写や削除をしたりするための diredモードというモー

ドがあります. ここでは, diredモードの使い方の初歩について簡単に説明します.

diredモードの起動

diredモードを起動するには, Muleのウィンドウ内で

C-x d (14.28)

と入力します. すると, Muleのエコー行 (一番下の行)に,

Dired (directory): ~/ (14.29)

などというメッセージが出ます. なお, 表示されるディレクトリ名は現在作業中のディレクトリに応じて変

わります. ここでディレクトリ名を指定することもできますが, ここではそのまま�� ��Enter キーを押しましょ

う. すると, 図 14.6のように, diredモードが起動し, このディレクトリにあるファイルの一覧が表示され

ます.

図 14.6: diredモードを起動したところ

diredモードの終了

diredモードを終了するには, バッファそのものを消してしまうのが簡単です. このためには, diredが開

いているウィンドウ等で,

C-x k (14.30)

と入力します.

Page 233: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.4. Muleの操作に関する注意 215

diredモードにおける画面の見方と操作法

まず, 図 14.6の左側の欄に注目して下さい. ここには, そのディレクトリから参照できるディレクトリや

ファイルの保護モードが表示されています. 保護モードについては第 3.2.7節 (25ページ) を参照して下さ

い. ここでは, 最初の 1文字目が dになっているものはディレクトリ, -になっているものはふつうのファイ

ルであるということのみを思い出しておきます. また, このディレクトリ (.)が一番上に, 親ディレクトリ

(..)が上から 2番目に必ず表示されることを覚えておいて下さい.

このモードは読み込み専用なので, この画面では編集作業はできません. そのかわり, ファイルの読み込

み, ディレクトリの移動, 複写, 削除などの操作ができます.

ディレクトリを移動する diredモードでディレクトリを移動するには, 移動したいディレクトリ名を含む

行にカーソルを移動させ (行のどの位置でもよいです),�� ��Enter キーあるいは

�� ��f キーを押します. 親ディレク

トリに移動したいときには, 上から 2番目の「..」と書いてある行に移動して�� ��Enter キーあるいは

�� ��f キーを押します.

ファイルを開く ファイルを開くときには, 開きたいファイル名を含む行にカーソルを移動させ (行のどの

位置でもよいです),�� ��Enter キーあるいは

�� ��f キーを押します.

ファイルを複写する ファイルを複写するときには, 開きたいファイル名を含む行にカーソルを移動させ (行

のどの位置でもよいです),�� ��C キー を押します. すると, Muleのエコー行に

Copy [-p] test.txt to: ~/ (14.31)

といったようなメッセージが出るので (表示の内容は作業しているディレクトリやファイル名に応じて変わ

ります), 適当なファイル名を入力して�� ��Enter キーを押します.

ファイルを消す ファイルを消したいときには, 開きたいファイル名を含む行にカーソルを移動させ,�� ��d

キー を押します. すると, 今選択したファイルに対応する行の先頭に, たとえば

D drwx------ 2 hanba 20 512 Apr 4 09:58 foo1 (14.32)

のように, 文字 “D”が挿入されます. ですが, この段階ではまだファイルは削除されません. この表示は,「こ

のファイルをこれから削除しようとしている」という確認のようなものだと思って下さい. 誤操作によって

消したくないファイルに印を付けてしまった場合は, 削除を取り消したいファイル名を含む行にカーソルを

移動させ,�� ��u キー を押します. すると, 文字 “D”が消えます. あるいは,

C-x k�� ��←↩ (14.33)

と入力してバッファ自体を消してしまっても良いです. いずれの場合も, 後には何の影響も残りません.

さて, 記号 “D”が付いているファイルを本当に削除したい場合には, 続いて�� ��x キー を押します. すると,

Muleのエコー行に

Delete foo1 (yes or no) (14.34)

といったようなメッセージが出ます. このファイルを本当に消したければ,

yes�� ��←↩

と入力します. すると, エコー行に

1 deletion done (14.35)

という表示があらわれ, ファイル削除が終了します.

ヘルプを表示する diredモードで�� ��h キー を押すと, ウィンドウが上下 2分割され, 下半分に dired のヘル

プが表示されます. なお, C-x 1と入力するとウィンドウの 2分割を取りやめることができることと, C-x

k�� ��Enter と入力することでいらないバッファを消すことができることを思い出しておきます.

さいごに, ここまでに出て来た diredモードのコマンドを表 14.4にまとめておきます.

Page 234: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

216 第 14章 補遺

表 14.4: diredモードのコマンド機能 コマンド

ファイルやディレクトリを開く�� ��←↩ ,

�� ��fファイルを複写する

�� ��C

削除マーク (D)を付ける�� ��d

削除マークを消す�� ��u

削除マーク付きのファイルを消す�� ��x

ヘルプを表示する�� ��h

14.4.5 Muleのより高度な機能について

本節では, Muleのこれまで紹介できなかった機能について簡単に言及しておきます.

たいていのテキストエディタには文字列を検索したり置換したりする機能が備わっているのですが, Mule

のそれは強力です. 正規表現と呼ばれる記法を用いることで, いろいろな文字列を置換するためのプログラ

ムの一種のようなものが記述できます.

大きいファイルを編集しているときには, 「この部分に『しおり』をはさんでおきたい」という気持ちに

なることがよくあります. Muleには, 文書の任意の部分に任意個数のしおりを付ける機能があります.

Muleのウィンドウの中でシェルを起動することもできます. このようにした場合, 通常は kterm のウィ

ンドウでおこなっていた作業をすべてMule の内部で実行することができます.

これらの各種機能については, この講義では紹介する余裕はありせん. 各自で適当な参考文献を探して下

さい.

14.5 Octave入門

14.5.1 Octaveとは

Octaveは, 科学技術計算用のソフトウエアとして有名な商用ソフトウエアであるMATLABと互換なフ

リーウェアです. Octaveは機能的にはMATLABや Scilabに劣るのですが, コマンドやプログラムの書き方

がMATLABと完全に互換であるため, 大量に出版されている日本語のMATLABに関する解説書がOctave

でも使えるという利点があります.

Octaveの使い方を解説した日本語の教科書は残念ながらとても少ないのですが, Octaveに付属する英文

マニュアル (コンピュータ室に印刷したものが置いてあります) がとても詳しく読みやすいのと, 上述のよ

うにMATLABに関する日本語の解説書は大量に出版されているので, Octaveの使い方に関する資料を探

すのに苦労することはないと思われます.

この節では, Octaveの簡単な使い方について説明します.

14.5.2 Octaveの起動と終了

Octaveを起動する

Octaveを起動するには, ktermなどで

octave�� ��←↩ (14.36)

と入力します. ここに,�� ��←↩ は

�� ��Enter キーを押すことを意味します.

上記のコマンドを実行すると, Octaveが起動し, 画面は図 14.7のような状態になります. 図 14.7の画面

に出ている

octave:1>

という部分が Octaveのプロンプトです. この部分の右側にいろいろなコマンドを打ち込んでゆくことで,

Octaveにいろいろな作業を実行させることができます.

Page 235: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 217

図 14.7: Octaveの起動画面

Octaveを終了する

Octaveを終了したいときには, Octaveのプロンプトに続いて

quit�� ��←↩ (14.37)

と入力します.

14.5.3 Octaveのコマンド行編集機能

Octaveのコマンド行編集機能を表 14.5にまとめておきます. ただし, C-fという記号は�� ��Ctrl キーと

�� ��fキーを同時に押すことを意味します. なお, C-fなどの変わりにカーソルキーを使うこともできますし, C-h

表 14.5: Octaveのコマンド行編集機能機能 キー入力

1文字右に進む C-f

1文字左に戻る C-b

1個前のコマンドに戻る C-p

1個次のコマンドに進む C-n

カーソルの左の文字を消す C-h

カーソル位置の文字を消す C-d

カーソル位置から行末までを消す C-k

は�� ��BackSpace で代用できます.

14.5.4 Octaveの実行環境

Octaveは, 利用者がキーボードから打ち込んだコマンドを 1行ずつ解釈して実行します. このような実行

環境はインタプリタと呼ばれます. なお, コマンドをキーボードから打ち込むかわりに, 必要なコマンド群

をすべてファイルに書いておいて, 一括して実行することもできます. また, Muleのウィンドウ内でコマン

ドを編集しておいて, そのコマンドを ktermのカット&ペースト機能を使って Octaveのウィンドウに貼り

付けることでもコマンドを実行できます. 不慣れなうちは最後に述べた方法が一番使いやすいでしょう.

14.5.5 Octaveの構文

Octaveは高水準のプログラミング言語です.

Octaveで変数を定義する indexOctave@Octave!へんすうをていぎする@変数を定義するときには,

Page 236: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

218 第 14章 補遺

x=10�� ��←↩ (14.38)

などのように, 等号の左側に変数名, 右側に値を書きます. データ型は明示されないのですが, 取り扱うこと

ができるデータ型は, 整数, 実数, 複素数, ベクトル, 行列などです.

for文や while文などの各種制御構造もサポートされています.

また, 行列の計算や制御系設計, 信号処理などの用途のための多様な関数が用意されています.

関数を使うときには,

sin(x) (14.39)

などのように, 関数名に続き, 括弧内に引数を指定します.

Octaveのコマンドをキーボードから打ち込んでゆくとき, 行の最後にセミコロン を打つと, 行を評価し

た結果は画面には表示されません. これに対し, セミコロンを打たなければ, 行を評価した結果が画面に表

示されます.

変数の値を画面に表示したいときには, その変数名をキーボードから入力します. たとえば,

x�� ��←↩ (14.40)

と入力すると, 変数 xの値が画面に表示されます.

Octaveでは, 文字「#」で始まる行はコメント とみなされます. コメント行は実行されません.

14.5.6 演算子, 定数と代表的な数学関数

Octaveには, 四則演算などの各種の演算子が用意されています. 表 14.6に代表的なものをまとめておき

ます. 表 tab:octave-operatorsの演算子の中で説明を要するのはべきだけでしょう.

表 14.6: Octaveの演算子記号 意味

+ 数, ベクトル, 行列の加算

- 数, ベクトル, 行列の減算

* 数, ベクトル, 行列の乗算

/ 数の除算

’ ベクトル, 行列の転置

** 数, 正方行列のべき

たとえば, 2の 10乗を計算したいときには,

2**10�� ��←↩ (14.41)

と入力します. すると,

ans = 1024

という結果が得られます.

また, Octaveは円周率 pi , 虚数単位 i およびオイラーの数 e (=2.71828...) を定数としてあらかじめ用

意してくれています. ですから, たとえば

pi�� ��←↩ (14.42)

と入力すると,

pi = 3.1416

という出力が得られます. なお, 虚数単位 iについては, これ以外に I, j, Jという 3種類の記法が許されて

います. これらはいずれも同じ意味になります.

Octaveの定数を表 14.7にまとめておきます.

さらに, Octaveには, いろいろな数学関数が用意されています. 代表的なものを表 14.8にまとめておきま

す. より詳細な関数の一覧についてはマニュアルなどを参照して下さい.

Page 237: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 219

表 14.7: Octaveの定数記号 意味

pi 円周率

i I j J 虚数単位

e オイラーの数

表 14.8: Octaveの代表的な数学関数関数名 意味 使い方 (xを変数として)

exp 指数関数 exp(x)

log 対数関数 log(x)

log10 常用対数 log10(x)

log2 2を底とする対数 log2(x)

round 四捨五入 round(x)

sqrt 平方根 sqrt(x)

abs 絶対値 abs(x)

sin 正弦関数 sin(x)

cos 余弦関数 cos(x)

tan 正接関数 tan(x)

asin 逆正弦関数 asin(x)

acos 逆余弦関数 acos(x)

atan 逆正接関数 atan(x)

14.5.7 オンラインヘルプ

Octaveにはオンラインヘルプ機能があります. ヘルプメニューを表示するときには,

help -i�� ��←↩ (14.43)

と入力します. ヘルプ画面で

?�� ��←↩ (14.44)

と入力すると, ヘルプ画面における操作法が画面に表示されます. ただし, 説明はすべて英語です. ヘルプ画

面からは

q�� ��←↩ (14.45)

と入力すると抜けられます.

14.5.8 チュートリアル

では, いくつかの例題を通してOctaveの簡単な使い方を学んでゆきましょう. なお, 以下の例では行列を

すべて 2行 2列に取りますが, Octaveは実際には非常に大きな行列 (1000行くらいのものでも)も何の問題

もなく扱えます.

行列やベクトルの定義

まず, 2行 2列の Aという名前の行列を定義してみます.

A=[1, 2; 3, 4]�� ��←↩ (14.46)

Page 238: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

220 第 14章 補遺

と入力して下さい.

すると, 画面には

A =

(14.47)

1 2

3 4

という表示が出ます.

上記の操作で定義されるのは, [1 2

3 4

]という行列です.

なお, 今定義した行列 Aは, あなたが Aという変数の内容を他のもので上書きしてしまわない限り, Octave

を終了するまではずっと残っています. そして,

A�� ��←↩ (14.48)

と入力することで, いつでも Aの内容を確認することができます.

ここで, Octaveにおける行列の一般的な記法を説明しておきましょう.

Octaveで行列を定義するときには,

• 行列全体を角括弧「[ ]」 で囲う

• 個々の要素をコンマ「,」 あるいは半角スペース「 」 で区切る, これらを併用してもよい

• 1行が終わったところには, セミコロン「;」 を打つか改行を入れる, これらを併用してもよい

という規則にしたがいます.

ですから,

A=[1 2�� ��←↩ (14.49)

3 4]�� ��←↩

というように入力しても, 上と同じ行列 Aを定義することができます.

なお, 半角スペースや改行を 2個以上連続させて置いた場合にも, これらが 1個しかない場合と効果は変

わりません.

横ベクトルを定義したいときには,

x=[1 2 3 4]�� ��←↩ (14.50)

などのようにします. 同様に, 縦ベクトルを定義したいときには,

x=[1;2;3;4]�� ��←↩ (14.51)

などのようにします. Octaveは横ベクトルと縦ベクトルを区別します.

なお, 横ベクトルと 1行 n列の行列は同じものであり, 縦ベクトルと n列 1列のの行列は同じものです.

1行の長さが長すぎるときには, コンマの後に記号「...」あるいは「\」を使うと, 次の行にコマンド行

を継続できます.

たとえば,

v=[sin(1);cos(1);...�� ��←↩ (14.52)

sin(2);cos(2)]�� ��←↩

とすると,

Page 239: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 221

v =

0.84147

0.54030 (14.53)

0.90930

-0.41615

という結果が得られます.

行列やベクトルの加減算と乗算

行列やベクトルの加減算と乗算には, 記号+ - *を使います.

まず, 縦ベクトルの加算の例を見てみましょう.

x =

[1

2

], y =

[10

20

]という 2個のベクトルを定義し, これらのベクトルの加算を実行してみましょう.

x=[1;2];�� ��←↩

y=[10;20];�� ��←↩ (14.54)

x+y�� ��←↩

と入力してみて下さい. ここに, 1行目と 2行目の行末の「;」はベクトル xとベクトル yの内容を画面に表

示させないようにするために入れてあります.

結果は

ans =

11

22

となります. ベクトルの加算が正しくおこなわれていることが確認できるでしょうか?

次に, 行列の減算の例を見てみましょう.

A =

[1 2

3 4

], B =

[10 0

0 10

]という 2個の行列を定義し, これらの行列の減算を実行してみましょう.

このためには,

A=[1,2;3,4];�� ��←↩

B=[10,0;0,10];�� ��←↩ (14.55)

A+B�� ��←↩

とします.

結果は

ans =

11 2

3 14

となります. 行列の減算が正しく実行できていることが確認できるでしょうか?

続いて,

C =

[1 2 3

4 5 6

], D =

1 100

2 200

3 300

Page 240: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

222 第 14章 補遺

という 2個の行列を定義し, これらの行列の積 C ×Dを計算してみましょう.

このためには,

C=[1,2,3;4,5,6];�� ��←↩

D=[1,100;2,200;3,300];�� ��←↩ (14.56)

C*D�� ��←↩

と入力します.

入力に誤りがなければ, 結果は

ans =

14 1400

32 3200

のようになるはずです.

ところで, 加算, 減算, 乗算を実行しようとしたとき, 行列やベクトルの大きさが合わない場合にはどうな

るでしょうか?

例として,

v =[1 1

], w =

[2 2

](14.57)

という 2個の横ベクトルに対し, v×wを計算してみましょう. もちろん, 本来この計算はできないはずです.

Octaveのウィンドウで

v=[1,2];�� ��←↩

w=[3,4];�� ��←↩

v*w�� ��←↩

(14.58)

と入力すると,

error: operator *: nonconformant arguments (op1 is 1x2, op2 is 1x2)

error: evaluating binary operator ‘*’ near line 19, column 4

というエラーメッセージが出ます. このエラーメッセージの意味は, 「形が合わないから掛算ができない」

というようなものです.

ところで, (14.5.8)で定義されたベクトル v,wの内積を計算するにはどうしたらよいでしょうか? このた

めには, w を転置して縦ベクトルにすればよいです. ベクトルや行列を転置するために, Octaveは演算子

「’」を用意しています. これを使ってみましょう.

(14.5.8)の入力が終わっている状態で, Octaveのウィンドウ内で

v*w’�� ��←↩ (14.59)

と入力してみて下さい. すると, 今度は正しく計算ができ,

ans = 11

という表示が画面にあらわれます.

さいごに, 行列とベクトルの乗算をやってみます.

A =

[1 2

3 4

], x =

[1

1

]

とし, 行列 Aとベクトル xの積を計算してみます.

A=[1,2;3,4];�� ��←↩

x=[1;1];�� ��←↩ (14.60)

A*x�� ��←↩

Page 241: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 223

と入力して下さい. 入力に誤りがなければ,

ans =

3

7

という結果が得られます.

14.5.9 行列の要素の参照と部分抽出

行列の要素を参照するには,

A(1,2)�� ��←↩ (14.61)

のように, 行列の名前に続いて ( )の中の行列の行の番号と列の番号を順番に指定します. 同様に,ベクトル

の要素を参照するには,

x(2)�� ��←↩ (14.62)

のように, ベクトルの名前に続いて ( )の中にベクトルの要素の番号 (添字)を指定します. 縦ベクトルの場

合にも横ベクトルの場合にも同様の記法が使えます.

記号コロン (「:」) を使うと, いくつかの添字をまとめて指定できます. 記号「:」の使い方は,

初期値:終了値 (14.63)

あるいは

初期値:刻み:終了値 (14.64)

または

: (14.65)

です. なお, 「初期値」, 「終了値」, 「刻み」と書かれた部分には適当な数が入ります. また, 記号「:」を

単体で使うと, 「考えうる添字すべて」という意味になります.

いくつか例を見てみましょう.

まず,

A =

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

という行列を定義しておきます. このためには, 以下のように入力して下さい.

A=[11,12,13,14,15;�� ��←↩

21,22,23,24,25;�� ��←↩ (14.66)

31,32,33,34,35];�� ��←↩

A(2,3)�� ��←↩ (14.67)

と入力すると, 行列 Aの第 2行 3列の要素が抽出され,

ans = 23

のような出力が得られます.

次に, 行列 Aの第 3行, 第 2列から 4列までを抽出してみましょう.

A(3,2:4)�� ��←↩ (14.68)

と入力してみて下さい. すると,

Page 242: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

224 第 14章 補遺

ans =

32 33 34

のような出力が得られます.

続いて, 行列 Aの第 2行から 3行まで全体を抽出してみましょう. このために, 列の方については,「考え

うる添字すべて」という意味で, 記号「:」を単体で使います.

A(2:3,:)�� ��←↩ (14.69)

と入力してみて下さい. すると,

ans =

21 22 23 24 25

31 32 33 34 35

という結果が得られます.

ベクトルについても同様のことができます.

実は, 演算子「:」によって得られるものは数値が規則正しく並んだベクトルです. ですから, たとえば

1:4�� ��←↩ (14.70)

と入力すると,

ans =

1 2 3 4

という結果が得られます. 今までベクトルや行列について記号「:」を使って範囲指定していたときには, 実

は添字としてベクトルを使っていただけだったのです. 実際, ベクトルや行列の一部を抜き出したいときに

は, 添字として任意のベクトルを使うことができます.

14.5.10 行列やベクトルの演算のためのいくつかの関数

行列やベクトルの演算のための代表的な関数について以下で簡単に説明します.

inv

関数 inv は逆行列を計算するための関数です. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (14.71)

inv(A)�� ��←↩

結果は以下のようになります.

ans =

-2.00000 1.00000

1.50000 -0.50000

Page 243: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 225

eig

関数 eig は行列の固有値を計算します. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (14.72)

eig(A)�� ��←↩

結果は以下のようになります.

ans =

-0.37228

5.37228

なお,

A=[1,2;3,4];�� ��←↩ (14.73)

[V,D]=eig(A)�� ��←↩

とすると, Vには行列 Aの固有ベクトルをならべて作った行列が, Dには

V −1AV

によって行列 Aを対角化した行列 (対角線上に固有値がならんだ行列)が返されます.

det

関数 det は行列式を計算します. 使用例を以下に示します.

A=[1,2;3,4];�� ��←↩ (14.74)

det(A)�� ��←↩

結果は以下のようになります.

ans = -2

diag

関数 diag はベクトルからそのベクトルの要素を対角要素に持つ正方行列を生成します.

たとえば,

x=[1 2 3 4];�� ��←↩ (14.75)

X=diag(x)�� ��←↩

とすると,

ans =

1 0 0 0

0 2 0 0 (14.76)

0 0 3 0

0 0 0 4

といった結果が得られます.

Page 244: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

226 第 14章 補遺

rows

関数 rows は行列の行の数を返します. たとえば,

A=[1 2;3 4;5 6];�� ��←↩ (14.77)

rows(A)�� ��←↩

とすると,

ans = 3

という結果が得られます.

columns

関数 columns は行列の列の数を返します.

たとえば,

A=[1 2;3 4;5 6];�� ��←↩ (14.78)

columns(A)�� ��←↩

とすると,

ans = 2

という結果が得られます.

14.5.11 線形方程式を解く

方程式 Ax = bを解くときには,

x=A\b;�� ��←↩ (14.79)

とします.

たとえば,

A=[2 0;0 4];�� ��←↩

b=[1;1];�� ��←↩ (14.80)

A\b�� ��←↩

と入力すると

ans =

0.50000

0.25000

という結果が得られます. この解が等式 [2 0

0 4

][0.5

0.25

]=

[1

1

]

を満たすことを確認して下さい.

Page 245: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 227

14.5.12 スクリプトファイルの実行

Octaveはコマンド群を記載したファイル (スクリプトファイル) を直接実行することができます.

スクリプトファイルの拡張子は mである必要があります (例: sample.m). スクリプトファイルには, Octave

のどのようなコマンドを書くこともできます. スクリプトファイルを実行するときには, Octaveのウィンド

ウにおいて拡張子を除いたファイル名をタイプします.

図 14.8に, sample.mというファイルの例を示します.

このファイルを実行するときには, Octaveのウィンドウ内で

sample (14.81)

と入力します.

また, ktermなどで

octave sample.m

と入力することでも, このファイルを実行できます.

A=[1,2;3,4];

[V,D]=eig(A);

図 14.8: ファイル sample.m の内容

Page 246: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科
Page 247: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

229

進んで勉強するために

本章では, この講義で取り上げてきた内容に関して進んで勉強するための文献などを紹介します.

UNIX全般

講義で参考書として指定した文献 [1]は, 特定のオペレーティングシステムに偏らずにいろいろな事項が

バランスよく網羅されているので, 「調べる」ための本として使いやすいと思われます. ただし, 紹介され

ている事項の種類が多い分, 個々の解説に割かれたページ数は少な目なので, 情報不足のところがあるかも

しれません.

文献 [2]はよりシステム管理者向けの本で, いろいろな種類のUNIXの挙動が網羅的に比較されています.

上級者向けです.

それから, 古い本 (原書の出版が 1994年)なのですが, 文献 [3]は, いろいろな事項が丁寧に解説された読

みやすい入門書です. 内容的にもすぐに古くなってしまうような書き方がされているわけではないので, 読

んでみるのも良いかもしれません.

文献 [4]は, いろいろなアプリケーションプログラムの使い方が詳細に解説された優れた本で, この講義で

も昨年度は参考書として指定していたのですが, 残念ながらトッパンの倒産に伴い入手不可になってしまい

ました. 図書館や古本屋等で見かけたら手に取ってみるとよいでしょう.

文献 [5]も UNIXの入門書ですが, コンピュータの内部構造にやや立ち入った説明をしている点が類書と

異なります.

また, やや上級者向けの BSD系の UNIXの解説書として, 文献 [6]を挙げておきます.

プログラム開発環境に焦点を当てていろいろなツールの使い方を紹介している書籍もあります. このよう

な書籍の例として, 文献 [7]と文献 [8]を挙げておきます.

自宅にWindows95/98/Meなどの環境を持っていて, Windowsの環境を変えないで少しだけ UNIXの勉

強もしてみたいという人は, Windows上で動作する UNIX環境をインストールするとよいでしょう. その

ような人のために, Windows上にUNIXをインストールするための CDROMが付属した書籍が出版されて

います. 文献 [9]や文献 [10]はこのような書籍の例です. なお, 文献 [9]にはMuleのWindows版が付属し

ていますが, 文献 [10]には日本語環境は一切ありません.

自宅のパソコンに UNIXをインストールしたい人は, 書店でインストール CDROM付きの書籍を購入す

るとよいでしょう. このような書籍は極めて種類が多い上に, わざわざ取り上げて紹介する価値があるほど

突出して良い本はないのと, そのような書籍は内容がすぐ古くなってしまう傾向があるので, ここではいち

いち紹介することはしません.

[1] 伊藤: 最新 UNIXハンドブック, 秀和システム (2000)

[2] Æ. Frisch (谷川 監訳): UNIXシステム管理, オライリー・ジャパン (1998)

[3] K. Christian, S. Richer (久野 監訳): UNIXワールド, 丸善 (1996)

[4] 小川, 斎藤, 佐々木, 中込: UNIX入門 フリーウェアによる最新 UNIX環境, トッパン (1996)

[5] 久野: UNIXによる計算機科学入門, 丸善 (1997)

[6] 砂原: プロフェショナル BSD(改訂版), アスキー (2001)

[7] M. Loukides, A. Oram (引池, 引池訳): GNUソフトウエアプログラミング, オライリー・ジャパン

(1999)

Page 248: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

230 第 14章 補遺

[8] E. Foster-Johnson (たかのゆきまさ~ 訳): UNIXプログラミングツール, 翔泳社 (1999)

[9] 竹内: UNIX for Win32 Windowsではじめる UNIX, テクノプレス (1997)

[10] D. Hagerty, M. Weisshaus, E. Zretskii (引池, 引池訳): WindowsでGNUソフトウエアを使おう!, ア

スキー (2001)

シェルおよびシェルプログラミング

シェルについて勉強するときには, 「どのシェルについて勉強するのか」ということが問題になります.

シェルプログラミングにもっとも良く使われる Bシェルについて勉強したい人は, 文献 [11]を参照する

と良いでしょう.

cshに特化した解説がなされている教科書はかなり少ないですし, 筆者は良い本を知りません.

Bシェルの対話機能を強化した bash に関する解説書には, たとえば文献 [12]があります.

シェルでプログラムを書くときには, sedおよび awk という言語に関する知識が必要になります. sedお

よび awkに関する解説書としては, 文献 [13]を挙げておきましょう.

また, 文献 [14]では, いろいろなシェルと sed, awk に関する解説が網羅されています. ただし, 解説があ

まりわかりやすくない上に邦訳の質が低いので要注意です.

[11] B. Blinn (山下 訳): 入門 UNIXシェルプログラミング, ソフトバンク (1999)

[12] C. Newbam, B. Rosenblatt(遠藤 訳): 入門 bash, 第 2版, オライリー・ジャパン (1998)

[13] D Dougherty, A. Robbins (福崎 訳): sed& awkプログラミング 改訂版, オライリー・ジャパン (1997)

[14] E. Quigley (荒 訳): 実習 UNIXシェル, 第 2版, ピアソン・エデュケーション (2000)

Mule, GNU Emacs

Muleは, GNU Emacsというエディタの一種です. ですから, Muleの解説書を探すときには, 題目にMule

あるいは GNU Emacs というキーワードが含まれる書籍を探すことになります.

GNU Emacsには解説書が多数存在しますが, しかし, 「これは良い」という本はあまりないようです.

初心者にとってわかりやすいのは, 文献 [15]です. タイトルからわかるように図が多用されているので,

コンピュータに不慣れな読者にも親しみやすいと思います.

文献 [16]がGNU Emacs の作者によるマニュアルです. これはリファレンスマニュアルであり, それほど

読みやすいわけではないですが, ふつうにMuleを使っていて必要となる知識はここにすべて書いてありま

す. Muleのチュートリアルを使って操作法を覚えたら, あとは文献 [16]を必要に応じて参照する, というス

タイルが良いかもしれません.

Muleの高度な使い方を知りたい人は文献 [17]を見るとよいでしょう. ただし, 題目に反し, コンピュータ

をかなり使いこなせる人向きの内容です.

[15] 神山 文雄: 図解でおぼえるMuleの使い方, 翔泳社 (2000)

[16] R. M. Stallman (赤池 他 訳): GNU Emacs マニュアル, アスキー (1999)

[17] D. C. Cameron他 (福崎 訳): 入門 Gnu Emacs, 第 2版, オライリー・ジャパン (1999)

Tgif

Tgifについては, UNIXに関する全般的な入門書にそれほど長くない解説が散見される程度で, 筆者の知

る限りではまとまった書籍は存在しません. でも, Tgifの操作法に直観に反したところはあまりないので,

この講義で学んだ程度の予備知識があれば, ふつうに Tgifで絵を書くときに困ることはないでしょう.

Page 249: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

14.5. Octave入門 231

Gnuplot

Gnuplotの解説書は何種類か出版されていますがここでは文献 [18]を挙げておきます.

[18] 川原: gnuplotパーフェクトマニュアル, ソフトバンク (1999)

MuPAD

MuPADに関する日本語に文献 [19]があります. また, 英語が苦にならないのであれば, 文献 [20]は読み

やすいです.

[19] 赤間 世紀: はじめてのMuPAD, シュリンガー・フェアラーク東京 (2001)

[20] J. Gerhard, W. Oevel, F. Postel, S. Wehmeier: MuPAD Tutorial, Springer (2000)

Octave

Octaveに関しても, 日本語の解説書はほとんどありません.

Octaveに付属する英文マニュアルは

/usr/local/share/octave/doc/octave.ps

にあります. コンピュータ室には印刷したものも置いてあります. このマニュアルはかなり詳しくて読みや

すいので, 英語が苦にならない人はこれを参照するとよいでしょう.

なお, Octaveは 工学の分野で広く使われている Matlab というソフトウエアと互換性があります. です

から, Matlabの解説書を読めば, Octave の使い方もわかります.

Matlabの初心者向けの解説書としては, 文献 [19]を挙げておきます.

[19] 高井: 「信号処理」「画像処理」のためのMATLAB入門, 工学社 (2000)

Perl

Perlに関する解説書も多数出版されていますが, 網羅的な参考書としては Perlの作者自身によって書か

れた文献 [19]が優れています. ただし, これは「読む」ための本ではありません.

初心者向けの入門書の中では, 文献 [20]が読みやすいです. 面白い練習問題があることと練習問題の解答

に読者があっと驚くようなものがあることから楽しく読める本なのですが, 記述の仕方に癖があるので, 人

によって好き嫌いがわかれるようです.

より「無難な」書き方がなされた入門書には, [21]があります. こちらは奇を衒ったところがない平板な

入門書ですが, 安心して読めると思います.

[19] L. Wall, T. Christiansen, R. L. Schwartz (近藤 訳): プログラミング Perl, 改訂版, オライリー・ジャ

パン (1997)

[20] R. L. Schwartz, T. Christiansen (近藤 訳): 初めての Perl, 第 2版, オライリー・ジャパン (1998)

[21] E. Quigley (武舎, 斎藤 訳): Perl入門 スクリプト作成の基礎からプロセス間通信まで, プレンティス

ホール (1997)

Page 250: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

232 第 14章 補遺

LATEX

LATEXに関する書籍は多数出版されていますし, 良書も多いです. ただし, 初心者向けのわかりやすい解

説書というのはほとんどないようです. ここで紹介する文献は, いずれも「読む」本ではなくて「必要な事

項を探す」ための本です.

まず最初に, 「何でも書いてある」本として文献 [19]を挙げておきます.

比較的薄いにもかかわらず網羅的にいろいろな事項が記載されているのが, 文献 [20]です.

また, アスキー版日本誤 TeXの開発者によって書かれた解説書に, 文献 [21]があります. 文献 [21]には,

アスキーによる独自拡張の部分が詳しく解説されているという特徴があります.

LATEXは, D. E. Knuth によって開発された組版プログラム TEXに基づいています. TEXに関する解説

書の中では, 開発者自身の手による参考書 [22]が有名です.

[19] M. Goossens, F. Mittenbach, A. Samarin (アスキー書籍編集部 監訳): The LATEXコンパニオン, ア

スキー (1998)

[20] 生田: LATEX2e文典, 朝倉書店 (2000)

[21] 中野: 日本語 LATEX2eブック, アスキー (1996)

[22] D. E. Knuth (斎藤 監修, 鷲谷 訳): TEXブック, 改訂新版, アスキー (1992)

自宅のパソコンにUNIXを入れたいときに, 何を選択するか

最近はコンピュータに関する知識が乏しい人も簡単にパソコンにUNIXをインストールできるようになっ

てきました. ところで, パソコンで動く UNIXには, かなりいろいろな種類があります. 無料あるいは僅か

な金額で入手できるパソコン用の UNIXの代表的なものは Linux系と BSD系に分類されるのですが, それ

らの中で日本語環境が比較的容易に構築できるものとして,

• RedHat Linux

• Vine Linux

• Debian GNU/Linux

• FreeBSD

が挙げられます.

これらのうち, インストールが容易なのは RedHat Linux と Vine Linux の 2種類です. Vine Linux は

RedHat Linux をベースにして日本語環境を徹底的に作り込んだものであり, 日本語環境の使いやすさには

定評がありますが, 標準でインストールできるアプリケーションの数がやや少ない, セキュリティホールが

塞がれるのが遅い, という問題があります. RedHat Linux の方は, 新しい機能が取り入れらるのが早い, セ

キュリティホールが迅速に塞がれる, パッケージが多いという利点がある一方で, 不安定なことがあるのと

日本語環境に不具合が多いという問題があります.

Debian GNU/Linuxと FreeBSD は, どちらもインストールがやや難しいです. ただし, 付属するパッケー

ジが非常に多いことと, インストールがうまくいけば安定した環境を構築しやすいという利点があります.

自宅のパソコンに Linuxや FreeBSDをインストールするときには, 高速なネットワーク環境が自宅にあ

る場合には雑誌付録の CDROMでオペレーティングシステムをインストールしてパッケージはネットワー

クで探す, ということができるのですが, 通信環境がないかあっても遅い場合 (56Kのモデムしかない場合

には, ネットワークからパッケージをダウンロードするのは苦行です)には, なるべくたくさんのパッケージ

が入った CDROMを購入する方が楽です.

パソコンで動くUNIXの CDROMはいくつかのお店で入手できるのですが, 秋葉原にある ぷらっとホー

ムというお店 (http://www.plathome.co.jp)が UNIXに力を入れていることで有名です. このお店の通

信販売を利用すれば, パソコンで動くいろいろな UNIX の CD-ROMを入手できます.

大学生協でも, 代表的なパソコンで動く UNIXの CDROMが販売されています. これを利用するのも良

いでしょう.

Page 251: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

233

付 録A 学生用の環境設定ファイル

A.1 .login

#csh login file

echo source .login

# パスの設定set path = (/bin /usr/bin /usr/local/bin /usr/X11R6/bin /usr/local/Rlab /usr/local/MaTX/bin)

set manpath =(/usr/X11R6/man /usr/share/man /usr/local/man)

# 言語の設定setenv LANG ja_JP.EUC

setenv dspmbyte euc

setenv KCODE EUC

setenv EDITOR mule

setenv PAGER jless

# ニュースサーバの設定setenv NNTPSERVER 133.13.7.7

setenv SMTPSERVER 192.168.1.2

setenv DOMAINNAME edu.eee.u-ryukyu.ac.jp

setenv ORGANIZATION "Dept. of Electrical and Electronic Engineering"

# trrの設定setenv TRRDIR /home/a/trr

# 各種環境変数setenv MANPATH /usr/share/man:/usr/local/man:/usr/X11R6/man

setenv XMODIFIERS @im=kinput2

setenv SKKSERVER localhost

#MATX

setenv MATXDIR /usr/local/MaTX

# MuPAD

setenv MuPAD_ROOT_PATH /usr/local/MuPAD

setenv FONT_PATH ${MuPAD_ROOT_PATH}/share/doc/hytex/fonts

setenv MANPATH ${MuPAD_ROOT_PATH}/share/doc/man:${MANPATH}

set path = ( ${MuPAD_ROOT_PATH}/share/bin $path )

# SNNS

setenv XGUILOADPATH /usr/local/snns

#デフォルトで他人はファイルの読み書きおよび実行禁止umask 077

stty erase ^H

stty intr ^C

stty susp ^Z

stty start undef

stty stop undef

if (‘tty‘ == ’/dev/ttyv0’ ) then

startx

echo "Auto-logout in 3 seconds."

echo "Type ctrl-c if you want to abort."

Page 252: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

234 付 録 A 学生用の環境設定ファイル

sleep 3

logout

endif

Page 253: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

A.2. .cshrc 235

A.2 .cshrc

# csh, tcsh が起動されると常に実行される.

# .login で必要な設定が終わっている場合は,

# ここで改めて設定する必要はない.

echo source .cshrc

setenv LANG ja_JP.EUC

set history=100

set savehist=100

# プロンプトの設定set prompt="%m $ "

alias ll ’ls -l ’

alias la ’ls -a ’

alias n ’mule -nw’

Page 254: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

236 付 録 A 学生用の環境設定ファイル

A.3 .xinitrc

#!/bin/sh

# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

# Modified by S. Hanba, June 1, 1999.

userresources=$HOME/.Xresources

usermodmap=$HOME/.Xmodmap

sysresources=/usr/X11R6/lib/X11/xinit/.Xresources

sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# 漢字入力システム kinput2 の起動if [ -x /usr/X11R6/bin/kinput2 ] ; then

/usr/X11R6/bin/kinput2 -canna &

XMODIFIERS="@im=kinput2"

export XMODIFIERS

fi

# merge in defaults and keymaps

if [ -f $sysresources ]; then

xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then

xmodmap $sysmodmap

fi

if [ -f $userresources ]; then

xrdb -merge $userresources

fi

if [ -f $usermodmap ]; then

xmodmap $usermodmap

fi

# start some nice programs

fvwm2

Page 255: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

A.4. .Xdefaults 237

A.4 .Xdefaults

!! Written by S. Hanba, June 1, 1999.

*preeditType: Separate,OverTheSpot,OffTheSpot,Root

*IMProtocol: xim

Kinput2*conversionStartKeys:\

Shift<Key>space \n\

<Key>Henkan

Kinput2*sendbackKeyPress: True

*inputMethod: kinput2

Netscape*inputMethos: Kinput2

Netscape*international: True

! Kterm

KTerm*kanjiMode: euc

KTerm*scrollbar: true

Kterm*foreground: black

Kterm*background: white

kterm*VT100*translations: #override \

Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION) \n\

<Key>Henkan: begin-conversion(_JAPANESE_CONVERSION)

! Mule

Emacs*geometry: 80x24

Emacs*Background: white

Emacs*Foreground: black

!Tgif

Tgif*geometry: 240x240

Tgif.IntrCheckInterval: 10

Page 256: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

238 付 録 A 学生用の環境設定ファイル

A.5 .emacs

;; Kanji Code

(set-display-coding-system *euc-japan*unix)

(set-keyboard-coding-system *euc-japan*unix)

(set-default-file-coding-system *euc-japan*unix)

(set-default-process-coding-system *euc-japan*unix *euc-japan*unix)

(define-program-coding-system "*mail*" nil *junet*)

(define-service-coding-system "nntp" nil *junet*)

;;rmail

;; ">> "の部分が電子メールの引用部分に付く引用記号である.

;; 自由に変更してよい.

(setq mail-yank-prefix ">> ")

;;Canna

(load-library "canna")

(canna)

(define-key canna-mode-map [backspace] [?\C-h])

(define-key canna-mode-map [delete] [?\C-h])

;; SKK-9.6m

(setq load-path (cons "/usr/local/share/mule/site-lisp/skk" load-path))

(setq skk-large-jisyo "/usr/local/share/skk/SKK-JISYO.L")

(global-set-key "\C-x\C-j" ’skk-mode)

(global-set-key "\C-xj" ’skk-auto-fill-mode)

(global-set-key "\C-xt" ’skk-tutorial)

(autoload ’skk-mode "skk" nil t)

(autoload ’skk-auto-fill-mode "skk" nil t)

(autoload ’skk-tutorial "skk-tut" nil t)

(autoload ’skk-isearch-mode-setup "skk-isearch" nil t)

(autoload ’skk-isearch-mode-cleanup "skk-isearch" nil t)

(add-hook ’isearch-mode-hook

(function (lambda ()

(and (boundp ’skk-mode) skk-mode

(skk-isearch-mode-setup) ))))

(add-hook ’isearch-mode-end-hook

(function (lambda ()

(and (boundp ’skk-mode) skk-mode

(skk-isearch-mode-cleanup)

(skk-set-cursor-color-properly) ))))

;; C-h: BackSpace

;; C-x h: help

(global-set-key [?\C-h] ’delete-backward-char)

(global-set-key [?\C-x ?h] ’help-command)

; AUC TeX

(setq load-path (cons "/usr/local/share/mule/site-lisp/auctex-9.9j" load-path))

(require ’tex-site)

(require ’tex-jp)

(setq TeX-default-mode ’japanese-latex-mode)

(setq-default japanese-LaTeX-default-style "jarticle")

(setq-default TeX-master nil)

(setq TeX-parse-self t)

(setq TeX-auto-save t)

(setq LaTeX-figure-label "fig:")

(setq LaTeX-table-label "tab:")

(setq LaTeX-section-label "sec:")

(setq LaTeX-default-style-options "a4,12pt,dk")

(setq LaTeX-float "hbtp")

;;trr

(autoload ’trr (concat (getenv "TRRDIR") "/trr") nil t)

;; For C programming environment

Page 257: UNIX入門dsl4.eee.u-ryukyu.ac.jp › DOCS › unix.pdf · 2018-02-01 · unix入門 第0.08版 半塲滋1 2002年11月28日(木) 1琉球大学工学部電気電子工学科

A.5. .emacs 239

;; デフォルトのスタイル. 以下のいずれかの行頭の ; を;; 削除すること.

;(setq c-site-default-style "GNU")

;(setq c-site-default-style "K&R")

(setq c-site-default-style "BSD")

;(setq c-site-default-style "C++")

;(setq c-site-default-style "Whitesmith")

;; 強制的にインデントするための設定.

;; 気に入らないときには行頭に ; を付けること.

(global-set-key "\C-m" ’newline-and-indent)

(global-set-key "\C-j" ’newline)