情報科学概論
2003.4.15

Back to index page

今後はこの授業にも「コンピュータセミナー」の教科書である「入門UNIX」を持って きて下さい.(過年度生はこれまで自分が使ってきたLinux関連書籍で構いません)



  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利用の 根幹をなすものですので,自分が操作しやすい環境を整えておきましょう.

    • ファイル一覧

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

      [b03**@pc3-70 b03**] $

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

      $ ls

      まずは,「エル」と「エス」の2文字のコマンドです.このコマンドはlistの略で,ファ イル一覧を表示するものです.まだ,作業をしていないので,デフォルトでシス テムが用意するものしかありません.例えば,

      Xrootenv.0  reg154.txt *  reg62.txt *  rpm/

      などでしょうか.色分けはファイルの属性にしたがって自動で行われています. また,名前の後にスラッシュ(/)がついているのは「ディレクトリ」で,Windows ですと,「フォルダ」と呼ぶものに相当します.アスタリスク(*)も属性を示す 記号ですが,これらについてはのちほど紹介することにします.

      $ ls -a

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

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

      コマンドを使用していくとコンピュータの発祥地であるアメリカの言語,英語の 文法が踏襲されているのがわかると思います.コマンドとは「命令」ですから, 英語の命令文と同様に動詞から始まります.基本的には V + O の 構文が使われており,動詞,目的語の順に並んでいます.すなわち,「hogehoge をheroheroしなさい」のようになります.上で紹介したオプショ ンは「hogehogeをfugafugaのようにheroheroしなさい」と言う文章における 「fugafugaのように」の副詞的な感じになります.
      コマンド名すら良くわからないのにオプションまで加わると余計に分かりにくく なって困ると思うかも知れませんが,コマンド名がとりあえずわかるとどのよう にオプションを使えば良いかは「オンラインマニュアル」で知ることができます.

      $ man ls

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

      $ jman ls

      とすると,どうでしょうか.日本語で表示されたことと思います.このマニュア ルの操作方法は,キー入力により行います.次を読むときにはスペースキーを押 します.「p」キーで先頭に戻ります.矢印キー(↑↓)で1行ずつずれ て行きます.(これを「スクロール」と呼びます)終了するには「q」を 押します.この操作については,「ページャ」と呼ばれる閲覧ユーティリティ (lessなど)と 共通ですので覚えておきましょう.

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

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

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

      $ pwd

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

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

      /virtual/home/b03**

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

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

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

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

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

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

      $ cd ..

      そこで,再び,

      $ pwd

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

      $ ls -a

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

      $ cd

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

      $ cd ..

      としたあとで,今度は,

      $ cd ~

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

    必ず覚えておかなければならないコマンドは別 ページに示してあります.少なくともこれらを自由に使用できないと操作の 効率が悪くなりますので,自分でこの時間に試してみましょう.

  5. 本日の実習作業

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

    $ ls /bin

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

    $ jman cal

    などとしてください.

    • 実習1 ls コマンド

      ls コマンドの引数に特定の場所を指定するやりかたを試そう.例えば,

      $ ls /

      とすると,最上位の階層にあるファイル一覧が見えるので,それを「ファイルマ ネージャ」と対比しながら動作させてみよう.ファイルマネージャは「GNOMEメ ニュー」から「プログラム」を選択すると起動することができる.(図3)表示されるの は最初は自分のホームディレクトリなので,左側のフォルダリストで最上位を指 定して比べてみよう.

      図3 ファイルマネージャー(gmc)の起動画面

    • 実習2 date コマンド

      • 自分の生まれた日の曜日

        自分の誕生した日が何曜日かを date コマンドにより表示させてみよ う.オプションの形式などは jman コマンドを参照のこと.

      • 積算日数の計算

        立春(2月4日)から88日目や210日目が大体何月何日かを探してみよう.

      • 出力表現

        出力結果を英語で表示してみよう.

    • 実習3 cal コマンド

      任意の年の任意の月を cal コマンドにより表示させてみよう.そして, 西暦の方式切替えによる特殊な状態がいつあったかを表示させてみよう.

  6. 出席確認

    この授業の出席は基本的には電子メールにより行いますが,本日はまだ準備が整っ ていないのでWWWブラウザにより出席申告を行います.以下のページにアクセス して下さい.

    出席確認のページ

    記入に関しては指示を出しますので,それを良く聞いてから作業を行って下さい.


目次ページに戻る