情報科学概論
2002.4.16



  1. 本日の作業内容

  2. プログラミング概略説明

    この授業では,コンピュータに関する操作の入門をプログラミングを通して学習 します.同時に開講されている「コ ンピュータセミナー」では,ウィンドウシステムを活用したアプリケーショ ンについて学習しますが,ここでは,主としてコマンドラインによる操作とテキ ストエディタを利用します.キーボードからの操作が中心ですので,まずは,キー 入力に慣れてください.

    なぜプログラミングを学習するのかについては,以下のような理由があります.

    • 誰かが用意したメニューを選択するだけの操作ではなく,自分から コンピュータに命令するには,プログラムを作成する必要がある.
    • コンピュータのディスク内にあるファイルやデータを取り扱う際に,コ マンドラインから利用するためにはディレクトリやパスの概念を覚える必要 がある.
    • ファイルの中身がどのような構造になっているのか,わかっていないと処 理プログラムを作成できない.
    • データを扱うための文字コードや正規表現などの学習をかねることができ る.
    • 処理の流れを自分で考えることにより論理的に作業を実行する感覚を養う.

    プログラミングを経験したことのない人には,何が書いてあるのか良くわからな いかも知れませんが,要するに,ただメニューを開いてマウスで選択していくと いう受動的な利用法ではなく,自分で処理をつくっていく能動的な作業を通じて コンピュータの操作を学習する,と言うことです.

    プログラミングはそのための言語を覚えないとできません.これは,ある意味, 外国語を学習することと似ています.単語を覚えるとともに文法も理解していか なければなりません.例題のプログラムを読むことで読解力をつけ,自分でプロ グラムすることで応用力を身につけます.ただし,この授業で扱う範囲はごく初 歩的なものだけに限定されています.実際に身の回りにある役に立つプログラム に比べると非常に短くて単純なものばかりを扱います.しかし,その中で変数や 代入,制御構造などの仕組みを学習していきますので,今後の高度な言語の学習 の基礎として役立つはずです.

  3. オブジェクト指向スクリプト言語Ruby

    コンピュータ言語の数は数千はあると言われています.その中で,日常的に多く の人が利用している言語は約100程度だそうです.最も有名な言語にはC言語が あります.UNIXやLinux,WindowsやMacOSなど主要なオペレーティングシステム はすべてC言語で書かれています.最も多くの人が知っている言語と言って も間違いないでしょう.そのため,通常は言語の入門としてもC言語が用いられ ることが多くなっています.実際に,学科の今後の講義予定もC言語が中心となっ ています.

    しかし,この授業ではC言語ではなくRubyを使用します.Rubyとは主要な100の言 語の内,唯一日本人の手によって開発されているスクリプト言語で,しかも,開 発は松江で行われています.スクリプト言語とは,プログラムを記述したらその まま実行できる形式の言語のことで,インタープリタ言語と呼ばれることもあり ます.CではなくRubyを使う理由は,初心者に分かりやすい構造であることと, このスクリプト言語であるという点です.余分なことに神経を使わなくてもプロ グラミングの作業ができるので,最初に学習する言語としても適しています.

    スクリプト言語の代表的なものにwebのCGIに良く使われるPerlがあります.また, かつては非常に良く使われたBASICという言語もあります.しかし,ここでは, より洗練された言語であるRubyを通して,プログラミングに親しんでいくことに しましょう.

  4. コマンドライン操作について

    プログラミングを始めるに当たってはいくつか準備が必要です.何と言っても, キーボードから文字入力が自由にできることが一番重要です.日本語を入力する ためには,「かな漢字変換」という操作が必要ですので,しばらくの間は日本語を使 うことはしないで,アルファベットと数字だけで操作を行ってみましょう.また,操作と 言っても,命令を知らないと何も入力できません.メニューから選択する方式と 違ってコマンド操作では自分で命令を打ち込まないと先に進まないからです.

    そこで,まずは,コマンドを入力するための場になるターミナルの起動から始め ましょう.ログインを完了させ,GNOMEデスクトップが表示された状態から始め ます.(このテキストが読めると言うことはすでにその状態になっていると言う ことです.)ターミナルは画面下側にあるタスクバーのディスプレイにGのアイコ ンをクリックして立ち上げます.起動すると,図1のような画面が表示されます.


    図1 ターミナルウィンドウ

    このターミナルはウィンドウの上部にメニューが用意されており,見た目の変更 など簡単な設定が行えるようになっています.「設定」メニューを選択して色の 選択を行うと「白地に黒文字」などへ変更できます.ターミナルはLinux利用の 根幹をなすものですので,自分が操作しやすい環境を整えておきましょう.

    • ファイル一覧

      準備ができたらコマンド入力の練習を行います.コマンドは入力を促す「プロンプト」の記号$が表示されて いるときに入力できます.皆さんの環境では,

      bash$

      のように表示されていると思いますが,大事なのは $ なので,今後は ただの $ で表します.もし,キー入力を間違えたら「←BkSp」と刻印されているキー (Back Space) を押して一文字ずつ修正できます.便利な修正方法もありますが,それは,操作 に慣れてからまた説明します.用意ができたら次にあげるコマンドを試しに入 力してみましょう.

      $ ls

      まずは,「エル」と「エス」の2文字のコマンドです.このコマンドはlistの略で,ファ イル一覧を表示するものです.まだ,作業をしていないので,ファイルがあまりありま せん.たぶん,Xrootenv.0 というファイルだけでしょう.では,次のように入力したらどうなるでしょうか.

      $ ls -a

      今度はいろいろとファイルが表示されたはずです.

      さて,先ほど, ls というコマンドを入力しても少ししか表示されなかっ たのに,次の ls -a ではファイルがたくさん表示されました.ここで,あとか らつけた -a のように,ハイフン - に続けて記号を入力す ることをオプションをつけると言います.コマンド自体は単純でもオプションを つけることにより動作が変わります.ここの -a allの意味で,すべ て表示せよ,と言うオプションが加わったことになります.それでは,オプショ ンが無いときになぜすべてのファイルが表示されなかったかというと,ファイル名がピリ オド( . )で始まるファイルは各種の設定ファイルであり,標準の動作 では表示しない決まりになっているからです.このようなファイルを「ドットファ イル」と呼びますが,今後,新たにアプリケーションを使い始めると次々とドッ トファイルがつくられていくのがわかると思います.

      コマンド名すら良くわからないのにオプションまで加わると余計に分かりにくく なって困ると思うかも知れませんが,コマンド名がとりあえずわかるとどのよう にオプションを使えば良いかは「オンラインマニュアル」で知ることができます.

      $ man ls

      と入力してみましょう.man とはmanualの略で,コマンドの使用方法 を教えてくれる便利なコマンドです.ここでは,英語で表示されています. Linuxには「ディストリビューション」と呼ばれるいくつかの種類がありますが, 最近ではほとんどの場合,man コマンドの結果を日本語で表示できる ようになっています.この教室で使用しているVine Linuxは少し違っていて,日 本語マニュアルを見るためには別のコマンドを使用します.

      $ jman ls

      とすると,どうでしょうか.日本語で表示されたことと思います.しかし,すべ てのコマンドに日本語訳が用意されているわけではないので,jman コ マンドを使っても結果が英語で表示される場合もあるので,その場合はあきらめ てください.

    • カレントディレクトリ表示

      ターミナルで作業をしているときに重要なこととして,自分が今作業をしている 場所があります.この場所のことを「カレントディレクトリ」と言います.また, 「ディレクトリ」とは住所録などの意味でコンピュータのハードディスクを階層 的に利用するために用意する区分領域です.WindowsやMacintoshでは「フォルダ」 という言葉が使われていますが,それと同じことになります.その場所を表示さ せるコマンドがあり,

      $ pwd

      のように使います.pwd とはprint working directoryの略で,作業し ているディレクトリを出力しなさい,という意味です.今後,printという言葉 は頻繁に出てきますが,印刷という意味ではなく出力という意味で用いられます.

      さて,先ほどのコマンドに対する出力結果は次のようになっているはずです.

      /virtual/home/b02**

      ここで,** のところは自分の学生番号の下二桁です.NFS (Network File System) を使用しているので,ちょっとややこしい結果が表示されていま すが,これが今作業をしているディレクトリ (フォルダ)の名前になります.図 示すると,次のようになります.

      図2 ディレクトリの階層構造をフォルダーを用いて表した図

      すなわち,ディスク内の virtual という名前のディレクトリにある home という名前のディレクトリの中の b02** とい う場所で自分がコマンド入力作業を行っていることをコマンドの出力結 果は示しています.

      上のようにディレクトリを表示するときに名前の先頭にスラッシュ(/)がついて いる時には,「絶対パス」と言います.「パス」とは道筋のことですので,ディ スクのトップの階層から順次名前を指し示していることを意味します.

    • 作業ディレクトリの移動

      では,自分が作業を行う場所を変更するにはどうするかというと,cd というコマンドを使用します.これは,change directoryの略です.以下のコマ ンドを試してみましょう.

      $ cd ..

      そこで,再び,

      $ pwd

      としてみると,出力結果が変わっていることがわかると思います.作業している ディレクトリを移動したからです.では,.. は何だったのかというと, 上の階層を表す記号でした.

      $ ls -a

      としたときに,./ と言う記号と../ 記号があるのが見えま す.スラッシュ ( / ) はディレクトリを表す記号で,ピリオド一つは 現在いるディレクトリという意味になり,ピリオド二つは上の階 層のディレクトリです.さて,

      $ cd

      とだけ入力するとどうなるでしょう.どこに移動したのかを pwd コマ ンドで確かめてください. そして,再び,

      $ cd ..

      としたあとで,今度は,

      $ cd ~

      として,どこに移動したのかを確かめてください.cd というコマンド の後に .. ~ をつけたりしましたが,これらは先に説明 したオプションではなく,コマンドに実行させる対象物を指し示すもので,引数 (ひきすう) と言います.引数を取るコマンドや取らないコマンドなどいろいろ ありますので,注意してください.

      また,コマンドと引数の位置関係については,英語のようなヨーロッパ言語に対 応していることに気づくでしょうか.コマンドという言葉自体が「命令」という 意味ですので,コマンド操作というのは英語の命令文の構造になるようになって います.オプションというのは動詞と目的語の間に入る副詞の役目をしていま す.また,引数とオプションを区別するためにオプションは原則としてハイフン を伴うように決められています.

    一度にたくさんの操作をしてもなかなか覚えられないと思います.今日は,コマ ンドの種類はこれくらいにして,実際に作業をして感覚をつかんでください.ま た,繰り返し作業していくことが覚えるための一番の方法です.他にどのような コマンドがあるのかを知りたければ,試しに,

    $ ls -F /bin

    としてみてください.名前の後ろにアステリスク ( * ) が付いている のがコマンドです.ここのディレクトリには一般的なコマンドがたくさん用意されています.date などは非常に単純なコマンドなのですぐに理解できると思いますし, そこにはないですが,cal というコマンドも簡単です.ただし, 詳しい動作を知りたければ,

    $ jman cal

    としてください.

  5. 出席確認

    出席は,今後は基本的に電子メールにより取っていくことになります.ただし, その操作方法は,コンピュータセミナーの方で順次説明していくことになります ので,ここでは,それを学習するまでの代替の方法を説明しておきます.コマン ド操作になりますので,注意して操作してください.また,操作の意味は今はわ からなくてもかまいません.

    最初に,この教室内のメールサーバにネットワーク越しにログイン (リモートログインという) します.次のように入力してください.

    $ telnet sv003

    そうすると,以下のような表示が現れます.

    Trying 172.16.1.3...
    Connected to sv003.
    Escape character is '^]'.
    Debian GNU/Linux 2.1 sv003.ecs-riko.shimane-u.ac.jp
    
    sv003 login: 
    

    login: と入力を促されている部分にこの教室用の自分のユーザ名を入力してEnter キーを押します.入力を間違えたときに BkSp を押すと,^H が現れて訂正できないので,この時には Del キー (Delete) で訂正してく ださい.キーの位置は右端の真ん中辺りです.すると,

    Password:

    となりますので,教室用のパスワードを入れます.パスワード入力中は画面には 何も表示されないので気をつけてください.パスワードを間違えるとログインで きないので,再び

    sv003 login:

    が表示されます.ユーザ名の入力からやり直してください.無事にログインでき ると以下のような表示が現れます.

    Linux sv003 2.0.34 #2 Thu Jul 9 10:57:48 EST 1998 i686 unknown
    
    Copyright (C) 1993-1998 Software in the Public Interest, and others
    
    Most of the programs included with the Debian GNU/Linux system are
    freely redistributable; the exact distribution terms for each program
    are described in the individual files in /usr/doc/*/copyright
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Wed Apr 10 19:32:00 on ttyp0 from pc179.ecs-riko.shimane-u.ac.jp.
    No mail.
    $
    

    つぎに,

    $ mail nawate

    と入力してください.すると,画面には,

    Subject:

    と表示されます.これは,メールのサブジェクト(主題,題名,件名などと言われるこ ともあります)ですので,ここには

    Subject: attend

    となるようにしてください.綴りを間違えないように注意してください.そして, Enterキーを押すと,画面には何も表示されず一行新たに出てきます.そこに, 自分の学生番号を入力してください.最初の s は小文字を使用してください. また,最後のチェックサム用のアルファベットは不要です.学生番号を入力した ら,また,Enterキーを押して次の行に進みます.そこでは,ピリオドを一つだ け入力してください.このピリオドだけの行は,本文の終りを意味する記号に割 り当てられています.ピリオドを入力して,また,Enterを押すと,今度は,

    Cc:

    と言う行が現れます.ここは,何もせずにEnterキーを押してください.これで, メールの送信は完了です.この方法は,UNIXワークステーションはすべてメール サーバの機能を有していた伝統の名残で,ここでは,教室内だけで利用できるメー ル送信方法になっています.

    これで,本日の作業は終了しますが,時間のある限り,タイプの練習やコマンド 操作の練習を行ってください.


目次ページに戻る