1999 年度「計算機基礎論3B」 1999-10-22

前回は全部やり切れなかった人が多かったので今回は少し内容を減らそうかな、 あるいは進んでいる人だけに取り組んでもらうオプション的な課題を用意しようかな、 などとも思ったのですが、 先に進んでいる人はプログラミングまで進んでしまったほうがいいと考え直したので、 今週も先週と同じぐらいの分量があります。 時間と興味によっては mule とファイルマネージャの部分は飛ばしても構いません。

前回出た質問とそれらへの答え

先週、みなさんの間を回ったときに受けた質問のうちいくつかを紹介して、 ここでお答えします。 結構長いので、 あとで読むことにして「前回までのまとめ」に飛んでもかまいません。

こういうことを勉強すると役に立ちますか?

「将来コンピュータを使うときに役に立ちますか?」 なら答えられそうので、それだけお答えします。

ほかの unix マシン(WS)を使う場合はほとんど同じコマンドが使えます。 MS-DOS や MS-Windows ではコマンド名は違ってきますが、 コマンドはほぼ unix と対応しているので、 unix に慣れていればほんの少しの勉強で使えるようになると思います。

「コンピュータは人類を幸せにするのに役立つか?」 はとってもむずかしい質問ですね。 使う人次第で役に立つことも立たないことも、 あるいは人類に害を与えることもあるでしょう。

画面出力の感じが見本と違います

ファイル・ディレクトリが多いと、ls の出力は

    ws47{cf7175}4% ls
    a*            gengo/        nsmail/       tx.usr
    b             himitsu/      public_html/  type-ren*
    d             min.dvi       tx.scr
    ws47{cf7175}5%
のようになります。縦にアルファベット順に並ぶのです。 (これは実在のある人のディレクトリで ls させてもらいました。)

cat の出力が

    === Score File for <<< tx version 3.0x >>> ===
    iwase   
    第2課        98-10-13 17:02:06   8  56  56   9 0.160   0  0.0 0.160 o
    54466B26
    第3課        98-10-13 17:02:19   9  58  58   8 0.137   0  0.0 0.137 o
    67379C39
    第4課        98-10-13 17:02:31  10  58  58   9 0.155   0  0.0 0.155 o
    2EC49AD9
のようになった場合はそのウィンドウの横幅が狭すぎます。 横幅がどれだけあったらいいというはっきりした規則はないのですが、 80 文字は確保しておくほうがよいでしょう。 コマンドツールのウィンドウは、 横幅を変えるとすでに出力されたものの表示も変わります。 便利。

コマンドツールとシェルツールはどう違うのですか?

う〜ん、わかりません。 ひとつわかるのは、 コマンドツールは上の端から消えていったものをスクロールさせて見ることができる、 シェルツールはできない、ということですね。 それとたぶん関係していると思うけど、 タイピング練習はシェルツールではできるけどコマンドツールではできません。

ただし、コマンドツールをスクロールしないようにすることはできます。 コマンドツールの中で右クリックし、 「スクローリング」をクリックすれば、あとはわかるでしょう。

「cat tx.usr > a」 と「cp tx.usr a」とは同じことですか?

あ、よく気がつきましたね。 ほんの少しだけ違います。 前者では a は新しく作られたファイルなのでパーミッション 644 になります。 それに対し後者では a は元の tx.usr のパーミッションを受け継いで 444 となるようです。

引数をつけずに cat とだけ打ったらおかしくなってしまいました

あ、確かに。対応法を説明しておくべきでした。 cp, mv, rm などは引数が足りないとメッセージを出して終了しますが、 cat はそうできていません。 引数なしの cat はキーボードからの入力を画面出力するのですが、 それにもそれなりの使い道があるからです。 それはそのうち説明するとして、 Ctrl+C を押せば(i.e. ctrl キーを押しながら C を押せば) プロンプトに戻ります。 Ctrl+C でいろいろなコマンドを中断できる場合があります。

    ws47{cf7175}17% cat
    abc                       <- 打ったもの
    abc                       <- 出力されたもの
    def
    def
    12345
    12345
    ^Cws47{cf7175}18%         <- Ctrl+C でプロンプトに戻る
    ws47{cf7175}18%           <- Return をから打ちした

「プロンプトに戻る」とは、 コマンドを終了してプロンプトの出ている状態に戻ることを言います。 上の例では、その後でプロンプトが行頭に出ていないので Return キーを一度打ってプロンプトを出し直しています。 このへんは趣味の問題。 Ctrl+C が画面では ^C で表わされていることもちょっと頭にいれておいてください。

突然、大文字しか打てなくなりました

A の左隣にある、Caps Lock キーがロックされているのでしょう。 もう一度押せば直ります。

キー入力を全く受けつけなくなってしまったら

どのウィンドウも受けつけませんか? もし受けつけるコマンドツールなどがあるなら、その中で 「ps -u $user」とします。 そして、あとは下の説明にならってください。

全部だめなら、 別の WS にログインしましょう。 そしてコマンドツールかシェルツールの中から telnet ws?? とします。 ここで ws?? はおかしくなった WS の名前です。 プロンプトのところに出ているはずです。 もしプロンプトが見えない場合は、 WS は番号順に並んでいますから左右のマシンの名前を調べればわかるでしょう。 いつもはディスプレイ全体に出ていたログイン画面がウィンドウの中にでます。 いつもどおりにログインしてください。 そうすると、そのウィンドウの中は ws?? を見ていることになります。 別の言い方をすれば、そのウィンドウの中で ws?? を遠隔操作しているわけです。 そして「ps -u $user」とします。

    ws43{iwase}12% telnet ws42
    Trying 133.28.21.52...
    Connected to ws42.
    Escape character is '^]'.


    UNIX(r) System V Release 4.0 (ws42)

    login: cf7175
    Password: 
    Last login: Thu Oct 21 19:09:30 on console
    Sun Microsystems Inc.   SunOS 5.5.1     Generic May 1996
    ws42{cf7175}1% ps -u $user
       PID TTY      TIME CMD
     17867 console  0:01 csh
     17914 console  0:03 Xsun
     17968 ??       0:00 cmdtool
     17915 console  0:00 sh
     17920 console  0:00 fbconsol
     17935 console  0:00 olwm
     17929 console  0:00 vkbd
     17913 console  0:00 xinit
     17932 console  0:00 ttsessio
     17951 pts/1    0:00 csh
     17936 console  0:00 olwmslav
     17909 console  0:00 openwin
     17992 console  0:01 mailtool
     17945 console  0:01 htt
     18001 pts/3    0:01 csh
     17983 console  0:01 filemgr
     17948 ??       0:00 cmdtool
     17944 console  0:00 htt
     17971 pts/2    0:00 csh
     17946 console  0:00 htt
    ws42{cf7175}2%
これが、いま自分が動かしているプロセス (「プログラム」とは少し違うらしいがよく説明できない) のリストです。 PID は「プロセス番号」と呼ばれます。

※ ここまではいつやっても何の害もありません。 よく自習する人は一度試して慣れておくといいかも。

このプログラムが悪さをしているな」 と思われるものをカンでさがし、 そのプロセス番号 nnnn を引数にとって kill -9 nnnn とします。

    ws42{cf7175}2% kill -9 *****  <- わざと伏せ字にしました
    ws42{cf7175}3%
こうやってゆくうちにうまくゆけば OK です。

隣の WS からログインしたときは exit でログアウトします。 プロンプトに出ている WS 名が変わっているのに注意してください。 (この例では ws43 側と ws42 側とでログイン名も別ですね。)

    ws42{cf7175}3% exit
    ws42{cf7175}4% ログアウト
    Connection closed by foreign host.
    ws43{iwase}13% 
実は、上の例はどこもおかしくない状態の WS に脇からログインしてウィンドウシステム自身(?)を kill したためログイン画面まで戻ってしまったのですが、 そのあと再ログインしようとしたら調子がおかしくて、 結局センターの人にお願いして直してもらうことになってしまいました。 だから、もし kill の練習をするなら cat とかのコマンド名がわかっているものでやったほうがいいでしょう。

カレントディレクトリのパーミッションを変えられて読めなくされたら強制退出ですか?

するどい質問です。

これを一人で実験する方法を思いつきました。 ホームディレクトリの下にサブディレクトリを作り、そこをカレントにしておいて 「chmod 000 .」とするのです。 この意味は前回説明したことからわかると思いますが、 「カレントのパーミッションを 000 にする」です。 000 だから自分も込めて誰もそのディレクトリにははいれなくなります。 ls をしてもダメだし、 そこにあるはずのファイルはたとえパーミッション 644 であっても読めなくなります。 部屋にはいっているうちに電気を消された感じかな。 「cd」でホームに戻ってからパーミッションを変えれば元に戻ります。

パス名に現われるのは最後を除いてすべてディレクトリ名ですか?

前回、 /home/kakuma/iwase/cf7175/tx.scr という例が出てきましたが、 ここに出てくる home, kakuma, iwase, cf7175 はすべてディレクトリ名ですか? という質問を受けました。 その通りです。 もしこれが実在するファイル・ディレクトリを指すパス名ならば、 / をカレントディレクトリにして ls をすればサブディレクトリ home が表示されるし、 /home をカレントにして ls をすればサブディレクトリ kakuma が表示されるし、 /home/kakuma をカレントにして ls をすればサブディレクトリ iwase が、 /home/kakuma/iwase をカレントにして ls をすればサブディレクトリ cf7175 が表示されます。 ただし、 /home/kakuma/iwase/cf7175 をカレントにしたときに ls をして表示される tx.scr がサブディレクトリなのかファイルなのかはやってみるまでわかりません。

※ 前回は先にディレクトリのツリー構造を説明してからパス名を説明しましたが、 こんな風に説明する方法もあります。 どっちがわかりやすいかな?

前回までのまとめ

前回までで、ファイルの基本操作は済みましたが、 ファイルを作る方法は最後にちょっと触れただけでした。 きょうはそこからもう一度やります。

テキストファイル

コンピュータで使われる文字には 「半角文字」と「全角文字」があります。 全角文字は画面では正方形の範囲を占めています。 半角文字はその半分です。

    半角文字    ABCabc123!"#$%&'()
    全角文字    ABCabc123あいうえお金沢大学理学部数学教室

※ 半角文字は、フォント(活字)によっては i と w で幅がかなり違うこともあるが、 それでも「半角」という。 iiiii と wwwww のように。

※ 「“同じ”字に半角全角の二種類がある文字コード体系は適当でない」 「半角文字・全角文字という名称は適当でない」 という意見もあるが、 現実にいまのコンピュータでは両者が使えてしまうし、 区別できないと困るので頭にいれておくこと。 スペースにも半角と全角の区別がある!

テキストファイルは、 これらの文字やスペースや「改行コード」と呼ばれるものを一列に並べたものです。 以下では「改行コード」は略して「改行」と書きます。 例として、 「a,b,c,改行,あ,い,う,え,お,改行,改行,X,Y,Z,改行」 と並んだファイルがあったとしましょう。 これを cat で画面に表示すると次のようになります。

    abc
    あいうえお
    
    XYZ

このファイルは 「a,b,c,改行」「あ,い,う,え,お,改行」「改行」「X,Y,Z,改行」 の4行からなっています。 「改行」がくると表示は次の行の行頭に移ります。 「あいうえお」の次の行は「改行」だけからなるので空行になります。

画面ではスペースは見えません。 よって、上の例で「a,b,c」と「改行」の間にスペースをいれ、 「a,b,c,スペース,改行,あ,い,う,え,お,改行,改行,X,Y,Z,改行」としても cat した結果の画面は全く同一です。

もし画面の横幅が 80 文字ならば、 「a,b,c,スペース,スペース,……,スペース,あ,い,う,え,お,改行,改行,X,Y,Z,改行」 (スペースは全部で 77 個)としても cat した結果の画面は全く同一です。 なぜなら、 「abc」とスペース 77 個でちょうど右の端に達し、 「あいうえお」は「abc」の真下にくるからです。 しかし、これらはファイルの中味としては別物です。 「cat filename」の代わりに「cat -ve filename」とすると行末に 「$」を表示するので、これらを区別することができます。

ls -la で表示されるファイルのサイズは、 1文字につき半角文字は1バイト、全角文字は2バイト、 改行は1バイトとして合計したものです。

ファイルの最後は改行で終わっていることが望ましいとされています。 「a,b,c,改行,あ,い,う,え,お,改行,改行,X,Y,Z」 という内容のファイルを作ることは可能ですし、 それで問題なく動作することも多いのですが、 それでもやはりやめたほうがいい、という意味です。 ただし、全く内容を持たない、からのファイルは例外です。

※ 言い方を変えて、 「最終行(もしあれば)の終わりには改行がなければならない」 とすれば、からのファイルを例外扱いしなくて済むか?

テキストエディタ

テキストファイルを作成・更新することを「エディット(edit)」といいます。 日本語に直訳すれば「編集」ですがあまり言いません。 「テキストエディタ(text editor)」とは、 テキストファイルを作成・更新するときに使うプログラムです。 略して「エディタ(editor)」と言うこともあります。 ファイルの中味を見るときに cat や more の代わりに使っても便利です。

エディタはワープロと似ていますが、機能は限られています。 文字を大きくしたり小さくしたりはできません。 字体を変えてイタリックなどにすることはできません。 罫線を使うことはできません。 「x の n 乗」を x の肩に小さな n を乗せて表わすような数学上の記法は使えません。 イラストは入れられません。

※ 「:-)」のように文字を使って笑った顔などを描くことはできる。:-)

どのテキストエディタを使っても、 できるテキストファイルは同じです。

※ もちろん、これは厳密な表現ではない。 別のものを作ろうとすれば同じものはできてこないはずだ。:-)

この実習では、自分の好みに合ったテキストエディタを使ってください。

unix のエディタとしては vi (日本語の中では「ブイアイ」と呼ぶことが多い) と emacs(「イーマックス」)が有名です。 mule(「ミュール」)は emacs を多言語化したもので、 ほかの点ではほとんど emacs と同じです。 unix を使い慣れた人は vi か emacs/mule を使っていることが多いようです。

たいていのエディタは、 ファイルを直接エディットするのではなく、 ファイルをいったんメモリに読み込んで編集し、 最後にディスクにセーブ(save)します。

※ 「メモリ」という言葉はまだ説明していないので、 「どこかに読み込んで」と理解してもらえばよいだろう。 「ディスク」はファイルがまとめて収められているもののこと。 「セーブ」とは「記録」ぐらいの意味です。

編集結果に満足できない場合は、セーブせずにエディタを終了します。 単にファイルの内容を見るためだけにエディタを使ったときも同様です。 一切変更を行なっていなければセーブしてもファイルの内容は変わらないはずですが、 ファイルの日時が変わってしまいますし、 とかく人間は間違いをおかすものですから。

textedit

もう一度、最初から textedit の使い方を説明します。 起動は textedit filename または textedit filename & です。 後者だと、すぐまたプロンプトが出ます。

小さな「▲」が画面にひとつだけ出ているはずです。 それを「カーソル(cursor)」といいます。 基本的なキー操作は次の通りです。

「ファイル」のなかの「保存」でセーブします。 セーブしないで終わるときは「▼」のなかの「終了」です。 確認メッセージが出ますからしかるべく答えてください。

テキストの一部を別の部分にコピーするときはコピーしたい部分の先頭にマウスカーソルを当てて左ボタンを押し、 押したままマウスカーソルを動かすとテキストの一部が白黒反転表示になります。 ちょうどコピーしたい部分だけが反転した状態になったら左ボタンを離します。 そしてキーボード左の Copy キーを押し、 つぎにコピーしたい先にマウスカーソルを当てクリックすることでカーソルをそこに移動してから Paste キーです。 コピーでなく移動の場合は Copy の代わりに Cut を押せばよろしい。 コピーや移動はほかのウィンドウとの間でも可能な場合があります。 また、Copy, Paste, Cut キーの代わりに「編集」 の中の「コピー」「ペースト」「カット」を使っても同じです。

日本語入力のオンオフはメールのときにも説明しましたが、 「日本語 On-Off」と書かれたキーです。 オンになっているときはウィンドウ左下に「ひら」と、 オフになっているときは「無変換」と表示されます。 日本語を入力がオンの状態でローマ字で読みを打ち込むとかなで表示されますから、 「変換」「確定」などのキーを使って漢字などへの変換を行なってください。

※ 「改行」を挿入・削除すると画面が大きく変わり、初心者は驚くことがある。 しかし、上のテキストファイルの説明を理解した上で練習すればすぐに慣れると思う。 一つの行を二つに分割する方法、 二つの行を連結して一つの行にする方法がわかっただろうか? ある行と次の行の間をあける方法、およびあきすぎた行と行の間をつめる方法も、 各自で考えてみてほしい。

※ 行末に余分なスペースを入れないよう注意すること。 特定の行の後ろにスペースがついているかどうかは、 その行の右のほうをクリックしてみてもわかる。 また、 特別な理由がない限り1行は半角 60 文字ぐらいで改行する習慣をつけておくとよい。

mule 入門編

ここは、mule を使わない人は読まなくてもいいです。

エディットしたいファイル名を引数にとり、 「mule filename」のように起動します。 ウィンドウシステムの中で使っているときは新しいウィンドウが開いて mule が起動します。 「mule filename &」とすればすぐにまたプロンプトが出ます。 また、「mule -nw filename」とすると 新しいウィンドウを開かずそのウィンドウの中で mule を実行します。 この「-nw」は「No Window」のことだと覚えるとよいでしょう。

mule の画面にひとつだけ、四角、下線などが出ているはずです。 それを「カーソル(cursor)」といいます。 基本的なキー操作は次の通りです。

※ mule -nw filename としたときは Back Space キーはヘルプを出すという意味になり、 削除はできない。 mule filename だとそうならないけれど、 前者が普通だと覚えておくこと。

Ctrl+\ で、アルファベット入力モードと日本語入力モードが交互に切り換わります。 いまどちらにいるのかは、画面左下を見ればわかります。

日本語入力モードでは、ローマ字で読みを入力するとひらがなで表示されます。 たとえば「tegami」と打つと「|てがみ|」のようになります。 両端の「|」はその間の文字が未確定であることを示します。 求める文字が出るまでスペースキーを打って変換し、 次の文字を入力すれば確定します。

「|ぎょうでん|」を変換しようとして「|業 でん|」になってしまったように、 間違って切り分けられた場合は CTRL+O を押して(みて)ください。 (この例は、そうやってみても残念ながら「行伝」に変換されませんでした。)

mule の終了は、 未確定文字のない状態で Ctrl+X Ctrl+C (Ctrl+X に続いて Ctrl+C) です。 「Save file ...?」と聞いてきますから、 セーブ(save, 「保存」の意)するなら「y」、しないなら「n」を押します。 保存すればエディットした内容はファイルに書き込まれ、 タイムスタンプはその時の日時になります。 保存しなければ元のままです。 「n」を押すと「Modified buffers exist; exit anyway? (yes or no) 」 と聞いてきますので (本当に保存しないで終了するなら) 「yes」と答えてください。 「y」ではダメです。:-)

新規に作ったファイルのパーミッションは rw-r--r-- (644) になります。 更新した場合は元と同じです。 更新した場合、 元のファイルは元のファイル名の最後に 「~」をつけた名前に改名されて残りますが、 このパーミッションも元と同じになります。

※ では、秘密のファイルを作成するにはどうすればよいか?

mule はエディット中に自動的にバックアップファイルを作ります。 ファイル file の自動バックアップファイルの名前は #file# となるのですが、 そのパーミッションは file のそれによらず 644 になるようです。 自動バックアップファイルは編集しているファイルそのものと同じディレクトリに作られるので、 人に見られたくないファイルを mule でエディットするときはパーミッション 700 のサブディレクトリで行なうほうがよいのかも知れません。

※ ほかに、umask 077 として、 以後ログアウトするまで自分の作るファイル・ ディレクトリが一切他人から見えないようにしてしまう方法もある。

mule には極めて多くのコマンドがあるので、 うっかり間違えてコマンドを打ち込んでしまい動きがおかしくなることがあります。 そういう場合は Ctrl+G を押してみてください。 処理を中断できる場合があります。 それでもダメなら、 emacs を終了しようとすればたいていなんとかなります。:-)

※ 一行が画面上の複数行に渡る場合は画面上の行末に 半角の「¥」または「\」が表示される。

※ mule は、 ファイルの終端を越えて「↓」 を押しているとそれだけで改行が入力されてしまうので注意すること。 余分な改行をいれてしまったかどうかのチェックは、 ファイルの終わりにカーソルを移動するコマンド Esc > (Esc に続いて >)を利用するとよいだろう。

mule ちょっと応用編

mule は、複数のファイルを複数のウィンドウで同時に編集できます。 mule ではファイル名をつけた文書以外も編集対象となるので、 編集中の文書を「バッファ(buffer)」と呼んでいます。 ファイルの編集をするときはファイルをバッファに読み込んで編集し最後にファイルに書き戻す。 ウィンドウにはどれかのバッファが表示される、という関係です。

次に、mule のコマンドのうち私がよく使うものをあげておきます。 emacs や mule のコマンドを説明するときの習慣に従って、 C-x で Ctrl+X を,M-x で Esc に続いて x を押すことを表わすことにします。 後者にはごくまれに M-X と M-x のような大文字小文字の区別がありますから注意してください。 また、SPC はスペースを表わします。

※ M-x という書き方は、 メタキーというキーがあるキーボードを想定しているかららしい。

※ 複数のキーからなるコマンドを中断するには C-g を用いる。

移動系 カーソルを移動 ←→↑↓キー
または C-b, C-f, C-p, C-n
(backward, forward, previous, next)
カーソルを行頭・行末へ移動 C-a, C-e
画面を大きく上下にスクロール C-v, M-v
ファイルの先頭・末尾へジャンプ M-<, M->
行番号を表示させる M-x what-line (←本当にこう打つ)
行番号を指定してジャンプ M-x goto-line (←本当にこう打つ)
挿入系 文字を挿入 その文字のキー
改行を挿入 Enter キーまたは Return キー
コントロール文字を挿入 C-q に続いてその文字を入力
削除系 カーソル手前の一文字を削除 Delete キー
カーソルのあたっている一文字を削除 C-d
カーソルのある行を削除 C-a C-k C-k
カーソルから行末まで削除 C-k
行頭からカーソルまで削除 不明
行操作系 二つの行を連結 前の行の行末の改行を削除せよ
複写移動系
複写(copy) 複写したいブロックの始点で C-SPC,
終点で M-w, 複写先で C-y
移動(move) 移動したいブロックの始点で C-SPC,
終点で C-w, 移動先で C-y
検索置換系 文字列の検索(search) C-s(前方),C-r(後方)
文字列を置換(replace) M-%
ファイル・
バッファ・
ウィンドウ操作系
カーソル位置に他のファイルを挿入 C-x i
テキストの一部をファイルへ書き出す 不明
ファイルを新バッファに読み込む C-x C-f
バッファをファイルに書き込む C-x C-s
編集中のバッファ一覧を出す C-x C-b
バッファをなくす C-x k
ウィンドウ内で編集するバッファを変更C-x b
ウィンドウを二つに分割 C-x 2
ウィンドウを一つにする C-x 1
もう一つのウィンドウへカーソルを移動C-x o
アンドゥー系 操作の取り消し C-_(「_」は Shift を押しながら。
第三実習室からはなぜか使えない)
ヘルプ系 ヘルプ開始コマンド C-h
英文チュートリアル C-h t
日本語チュートリアル C-h T

※ 複写移動系は異なるバッファ間でも可能。

※ C-x b と C-x C-b を混同しないように。 前者では Ctrl を押しながら x を打ち、Ctrl を離してから b を打つ。 後者では Ctrl を押しながら x, b を順に打つ。

※上のコマンドのまとめかたは、emacs や mule の達人からはお叱りを受けるかもしれない。 emacs や mule の設計思想を理解しないまま、 自分のやりたい操作に沿ってまとめているからである。

テキストエディタ(続き)

いろいろなファイルをエディタで見てみましょう。 また、適当な名前のファイルをエディタで作り、編集してみてください。 本当にファイルが作れたか、内容が変わったかは、 先週習ったコマンドで確かめましょう。

ファイルマネージャ

「ファイルマネージャ」は、 その名のとおりファイルの管理をするものです。 先週学んだ ls などのコマンドと同じことをマウスを使って視覚的に行なえるので、 うまく使い分けると便利ですが、 この方法でなければできないことは説明しませんので、 時間のない人・興味のない人はとばしてもいいです。

上半分のウィンドウには、 / からカレントディレクトリまでのつながりが表示されています。 フォルダの絵がディレクトリを表わしています。 「上へ」あがるには、 あがりたいディレクトリに対応するフォルダの絵をダブルクリックします。 下半分のウィンドウには、 カレントディレクトリのすぐ下のディレクトリおよびカレントディレクトリにあるファイルが表示されています。 カレントディレクトリのすぐ下にあるディレクトリに移動するには、 移動したいディレクトリに対応するフォルダの絵をダブルクリックします。 すみを折った紙の絵は普通のファイル、 封筒の絵はメールを収めたファイル、 「C」と書かれた紙の絵はC言語のソースファイル、 などなど、いろいろな絵があります。 これらのファイルに対応する絵(これらもアイコンというらしい)を ダブルクリックすると textedit が起動し、 そこにそのファイルが読み込まれた状態になります。

※ 起動するまでにちょっと時間がかかる場合がある。 あせって再度ダブルクリックするとエディタが二つ開いてしまうので注意。

ファイルについてのくわしい情報を見たければ、 「表示」の中をいじってみてください。

新しいファイルやディレクトリを作るには、 「ファイル」のなかの「ドキュメント作成」「フォルダ作成」です。 できたファイル・ディレクトリは「新規ドキュメント」 「新規フォルダ」という名前になりますので、 (必要なら)Del キーでその名前を消してから好きな名前をつけて使います。

ファイルをコピーするには、 コピーしたいファイル(に対応するアイコン)を左クリックします。 するとアイコンの回りにアミがかかります。 その状態でキーボード左の Copy キーを押します。 それからコピーしたい先のディレクトリに移って Paste キーです。 この方法だと、元と同じ名前でしかコピーできませんが、 必要ならコピーしてから後述の方法で名前を変更してください。 コピー元と同一ディレクトリに別の名前でコピーしたい場合も、 同じように操作すれば途中で何か言ってきますから適当に判断して答えてください。

ファイルを移動する場合はコピーのときとほぼ同じですが、 Copy キーの代わりに Cut キーを使います。 あるいは、 移動したいファイル(に対応するアイコン) にマウスカーソルがあたっている状態で左ボタンを押し、 押したままでマウスカーソルを動かして移動先のディレクトリに対応するアイコンにマウスカーソルが当たるようになったところで左ボタンを離す (このマウス操作を「ドラッグ」と呼ぶ)でも移動ができる場合があります。 ただし、移動先のディレクトリを表わすアイコンがファイルマネージャのどこかに表示されていないとこの方法は使えません。 Copy, Paste, Cut キーの代わりに「編集」 の中の「コピー」「ペースト」「カット」を使っても同じです。

ディレクトリの移動も同じようにできます。

ファイル・ディレクトリの削除は、 コピーのときのようにアミをかけてから「編集」のなかの「削除」です。 ディレクトリを削除する場合、 警告はされるものの、 その中のファイル・その下のディレクトリ等も一斉に削除されますので注意してください。

ファイル名・ディレクトリ名を変えるには、 そのファイル・ディレクトリに対応するアイコンの下にある名前のあたりを左クリックします。 すると名前が反転表示になりますので、 「←」、「→」、 Del や普通のキーで名前をつけかえて Return で決定です。

(いわゆる)ホームページの作成

※ 10 月 22 日の授業中、 ここの説明にわかりにくいところがあるのに気づいたので、 10 月 29 日分の中で書き直すことにしました。 そっちを読むだけでわかるように書きましたので、 こっちはとばしてそっちを読むことをお勧めします。

「ホームページ」というのは俗称だそうですが、これだけ広まっているので使います。

自分のホームディレクトリのパーミッションを 755 にし、そのすぐ下に public_html という名前のディレクトリをパーミッション 755 で作ってください。 その中にパーミッション 644 で作ったファイルはホームページとして全世界に公開されます。 しかし、 実習で使っている WS 上のページは金沢大学外のコンピュータからの閲覧を禁じるよう設定されているので、 結果的に学内からしか見えません。

しかし大学じゅうの人が見ますし、 なにかのはずみで全世界に公開されてしまうかもしれませんので、 書いてはいけないもの、書かないほうがいいものがあります:

まず、~/public_html/index.html を作りましょう。 最初のページは、特に理由がない限り、この名前にします。 このファイルは HTML の文法に合わせて書かなければなりません。 次にひな型を示します。

    <html>
    <head>
    <title>ここに書くと上の帯の部分に出る</title>
    </head>
    <body>
    ここに本文を書く
    </body>
    </html>    

※ こういうひな型を見て自作するときは、 まずごく小さなものを作って試すとよい。 たくさん打ち込んでから「違った〜」となるとがっかりだ。 また、上の見本どおりのものを作ると、 たとえうまくいって「やった〜」と思っても、 もしかしたら隣の人が作ったのを間違って見ていた、ということもありえる。 自由に変えられる部分(上には2箇所ある) を自分の名前に置きかえてみるとその心配はなくなる(だろう)。

URL は http://wwwedu.ipc.kanazawa-u.ac.jp/~eb00g??/ になります 。 ?? には自分のユーザ名に合わせて数字をいれてください。 今年の実習の最初のページからもリンクを張っておきました。

本文を書く際、 段落は <P> と </P> で囲みます。 エディタ上で改行していてもブラウザ上では改行しません。

<H1> と </H1> で囲んで見出しをつけることができます。 <H2> と </H2>, <H3> と </H3>, <H4> と </H4>, ……の順で見出しは細かくなり、それにつれて文字も小さくなりますが、 これらを文字の大きさを変えるために使うのは邪道とされています。

※  くわしいことは、適当なページを Netscape に読み込み、 「表示(V)」「ページのソース(U)」 でソースを読んで勉強するとよいだろう。 ただし、そうやって覚えたことを人に教えるのはやめたほうがいい。 自分のブラウザ(Netscape, Internet Explorer などの、 インターネットを見るソフトの総称) できちんと見えたからといってそれが HTML の文法に合致しているとは限らない。 まねして書いた自分のホームページの文法がおかしいのは自分だけの問題だが、 教えられた人は迷惑だ。 という私ももうすでにいくつかウソを教えているはずだ。

※  index.html を書きかえても、 Netscape で「再読み込み」しないと表示は変わらない。

これを、単位をとるための課題のひとつにします。 締め切りはみなさんの進みぐあいをみてあとで決めます。 ただし、締め切りはどんなに早くても「次回の授業の翌日」であることを約束しておきます。

(いわゆる)日本語コードとその変換プログラム nkf について

ここもおまけです。興味のある人だけ読んでください。

(いわゆる)日本語をコンピュータ内で扱うための 「コード」は大きく分けて3通りのものが使われています。 いずれも俗称だと思いますが「JISコード」「シフトJISコード」「EUCコード」 の三つです。

※ 「JIS」は「ジス」だが「EUC」は「イーユーシー」と読む。

WS で使われるのは普通「EUCコード」なので、 「JISコード」や「シフトJISコード」 で書かれたテキストファイルを画面出力するといわゆる「文字化け」が起こります。 コード変換は、nkf というプログラムで行なうことができます。 「nkf -e file1 > file2」で file1 の内容を「EUCコード」に変換しつつ file2 にコピーします。file2 が存在していれば上書きされます。 -e の代わりに -j とすれば「JISコード」に、 -s とすれば「シフトJISコード」に変換です。 一度、文字化けした状態を見ておくのもいい経験でしょう。

※ 「シフトJISコード」はパソコンでよく使われるコードである。 このページもそのコードで書いている。 それでも文字化けせずに読めるのは netscape が変換してくれているからだ。

finger

これもおまけですが、 finger -l eb00g?? (「eb00g??」はユーザ名なので実際には「??」には数字二文字がはいる) でそのユーザに関する情報が得られます。 いつメールを読んだか? などもわかります。

finger -l @ws?? (「ws??」は WS 名なので実際には「??」には数字二文字がはいる) でその WS を使っている人の情報が得られます。 ホームディレクトリも表示されるので、 どの先生のクラスに属するかもわかってしまいます。 自習のときに騒いだりしていると私が叱られることもありますのでやめてください。 _o_

※ 「_o_」は平身低頭マーク。他に「_o/|_」なんてのもあり。


岩瀬順一 <iwase@kappa.s.kanazawa-u.ac.jp>