コンピュータネットワーク基礎
2003.4.25

Back to index page

  1. 本日の作業内容



    出席確認

  2. シェル復習

    UNIX系のOSでは,ターミナル上でのコマンド操作が特徴です.最近ではGUIによ り,マウスを積極的に使用して操作する環境が用意されていますが,慣れてくる とコマンドによる操作の快適さが理解できるようになります.というのも,各種 の設定ファイルはすべてテキストデータですので,設定の変更はアプリケーショ ンを起動しなくても,テキストエディタで編集するだけで可能です.それ以外で も,たくさんのファイルの名前を一斉に変更したり,ファイルを移動したり,と いう処理でコマンド操作はGUI操作よりも遥かに早く実行できます.(事例紹介)

    そのように便利なコマンド操作ですが,実行するためにはターミナルを起動しな ければなりません.第一回目の授業でパ スワード変更を行うために起動したこと を思い出してみましょう.そして,そこでコマンドを受け付ける用意をしている のが,「シェル」です.

    シェルとは貝殻のような殻のことですが,機械語しか理解できない処理装置を包 んで,人間がより理解しやすい言語により操作することの仲立ちをしているもの です.また,コマンド行における操作の補助も担ってくれています.ここでは, コマンド操作を行う上で便利なシェルの機能の学習をします.

    • 基本コマンド

      コマンドの種類は実にたくさんあり,全てを覚えることは通常では非現実的です. 良く使う重要なコマンドについてその名前を覚えておくと,あとは「オンライン マニュアル」によって使用法がわかるので,まずは基本コマンドの名前を覚えま しょう.ここで紹介するのは,ごく基本的なものとネットワークに関して重要な ものです.

      • ファイル一覧

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

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

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

        $ ls

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

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

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

        $ ls -a

        ここで,コマンドの ls の後に空白文字(スペース)が入っていること に注意してください.今度はいろいろとファイルが表示されたはずです.

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

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

        $ man ls

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

        $ jman ls

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

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

        上のコマンドの使用例では,man jman がコマンドで,空 白に続いて調べたいコマンドの名前を指示します.このように,コマンドの操作 対象となる目的のものを「引数」(ひきすう)と呼びます.マニュアルコマンドは 引数の必要なコマンドです.

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

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

        $ pwd

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

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

        /virtual/home/b01**

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

        UNIXでは複数のユーザが同時に同じマシンを利用できます.そのため,他のユー ザのファイルを操作できてしまうと問題が起きるので,各ユーザに作業領域を割 り当てて,それ以外は管理者でないと操作できないような仕組になっています. そして,ユーザがログインしたとき,シェルを最初に起動したときに作業する場 所として提供されているのが「ホームディレクトリ」と呼ばれるディレクトリで, 教室のシステムでは上のように表示されているものがそうなります.別に, home という名前のディレクトリもありますが,「ホームディレ クトリ」というのは,自分のログイン名が名前についているディレクトリ のことを言います.違いに注意してください.

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

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

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

        $ cd ..

        そこで,再び,

        $ pwd

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

        $ ls -a

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

        $ cd

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

        $ cd ..

        としたあとで,今度は,

        $ cd ~

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

      • ファイルまでのパスの指定

        先ほどの作業はファイルのある位置までカレントディレクトリを移動する方法で した.自分が動かなくても途中の経路を指定することによりファイルを見たり操 作することが可能です.例えば,一つ上の階層のディレクトリにあるファイル一 覧を取得するには,先ほどの方法では

        $ cd ..
        $ ls

        でしたが,パスを指定すると,

        $ ls ..

        のように一つのコマンドですみます.複雑な経路でも同じで,例えば,自分のホー ムディレクトリにおいて,

        $ ls ../../home/b01**

        というコマンド操作は

        $ ls .

        と同じになります.すなわち,二つ上の階層まで上がってその後,来た道をくだっ ていることになるからです.1年生向けに用意したクイズでこの操作を試してみ るのも面白いでしょう.

      • ネットワーク接続確認

        自分が作業している端末がネットワークに接続されているとき,ネットワーク上 の他の端末までの接続を確認するコマンドに ping があります.潜水 艦が索敵する際に,音波を発して相手の位置を把握することを ping と言っているように,何かものを発して応答を見る作業です.実際に試してみま しょう.

        $ ping matsu.ipc.shimane-u.ac.jp

        のように使います.結果は延々と表示されて行きますが,中身を良く見ると大体 のところはわかるでしょうか.このコマンドを終了するには「Ctrl」キーとCの キーを同時に押します.すると,最終的な統計情報が表示されます.相手先がネッ トワーク上に無いときには応答が帰ってこないのでエラーが表示されます. jman コマンドで自分が必要な回数だけパケットを送って反応を 見る為のオプションを探してみて下さい.

        このコマンドはWindowsにもありますので,コマンドプロンプトから同じように ネットワークの応答を見ることができます.

        最近のネットワーク機器はこの ping に対する応答を返さないものも増えてきてい ます.また,ping が使用するICMPというプロトコル自体を通さない機器も増えて きています.経路や機器情報を公開しないでセキュリティを高めるための措置で すが,本学も外部に向けての ping は使用できないようになっています.LANの中 での疎通確認程度の用件で使用するのが望ましいでしょう.

      • ネットワークインターフェイス確認

        自分が作業している端末にどのようなネットワークインターフェイスが設定され てるかについては次のコマンドで確認できます.

        $ /sbin/ifconfig

        教室の環境では「イーサネット」(教科書p.54)のポートが一つ用意されていることが表示され ています.

      • ネットワークの状態確認

        現在のネットワークの動作状況をチェックするコマンドがあります.オプション により表示がかなり変わりますが,基本的には

        $ netstat -rn

        のように使います.「ゲートウェイ」の情報が表示されています.ゲートウェイ とは出入口ですが,これは教科書のp.26にある「ルータ」のことです.学科のネッ トワーク構成に関しては,必要な事項を学習した後で説明する予定です.(5/16 を予定しています.)

    • 補完

      コマンドを使用するときにはかなり長い物もありキー操作が煩わしく感じること もあります.シェルにはユーザを補助する便利な機能が多数備わっていますが, そのうちのもっとも重要なものの一つがここで紹介する「補完」です.例えば,

      $ /sb

      まで入力してから「TAB」キーを押して下さい.すると,コマンドパスであるディ レクトリ名が補われて

      $ /sbin/

      と表示されました.続いてさらに

      $ /sbin/ifco

      まで入力してやはりTABを押すと先ほど使用した

      $ /sbin/ifconfig

      が完成しました.このように補完とはシェルの方で考えられるコマンドやファイ ル名を補ってくれるものです.入力文字数が少なくて一意に決まらないときは TABを一回押しただけでは何も表示されません.もう一回TABを押すと考えられる 候補の一覧が表示されるのでその中から必要なものを見出したら,あとまた数文 字入力すれば完全に補完されるでしょう.ファイルの操作ではなるべくこの補完 機能を使うようにして下さい.間違ったファイルの操作を防ぐことができます.

    • 履歴

      長いコマンドを入力して実行すると,打ち間違いなどでエラーが出ることがあり ます.もう一回同じことを入力するのは面倒です.そこで便利なのが「履歴」機 能です.シェルがこれまでに入力されたコマンドを覚えていて,必要に応じて呼 び出すことができます.例えば,コマンド入力画面で「↑」を押すと,一つ前に 実行したコマンドが再び表示されます.↑を押すごとに遡って行き,↓で新しい 方へ移動して行きます.必要なコマンドが表示されたら実行したり,修正を加え て実行したり,という作業ができます.

      自分がこれまで使用してきたコマンドの履歴は

      $ history

      で見ることができます.デフォルトでは1000個の履歴まで保存できるようになっ ています.

    • パイプ

      コマンドの結果を別のコマンドに引き継ぐことが可能です.パイプを通して素通 しさせるイメージからパイプラインと呼ばれています.例えば,

      $ ps ax

      とすると,現在端末で動作しているプロセスが全て表示されますが,数が多過ぎ て画面に収まり切りません.そのときに,1ページずつ画面に表示する「ページャ」 の less を使って

      $ ps ax | less

      とすると,良いでしょう.先ほど学習した履歴機能を利用してコマンドをもう一 度表示し,結果を「|」(縦棒,バーティカルライン)を経由して less に渡しています.他にもプリンタに出力する lpr コマ ンドなどでも良く利用します.

      なお,less の使用法は jman と同じキー操作です.

    • リダイレクト

      実行結果は画面に表示するだけではありません.例えば,日付と時間を表示する date コマンドはただ画面に表示するだけですが,

      $ date > aaa

      のように不等号を間に入れて見ると画面に結果を表示しません.そして,ls コマンドで確認してみると aaa というファイルが新た に作られているのがわかります.その中見をやはり less で 見てみると,date コマンドの出力結果であることがわかるで しょう.すなわち,この不等号は結果をファイルの方へ送る,すなわち 迂回(リダイレクト)させる意味がありました.

    • 特殊な記号

      他に,シェルが理解する特殊な記号を利用すると作業が楽になるものもあります. それらには * ~ . .. & ! などいろいろあります.必要に応じて 紹介して行きますが,今のところ知っておくこととして,これらの記号はファイ ル名に使用しないで下さい.

  3. 実習作業

    • 基本実習

      以上のシェルに関する作業を,時間内で行ってください.特に,シェ ルの機能になれておくと,今後の作業が楽になりますのでおすすめです.また, 詳しいことは

      $ jman bash

      により調べることができますが,中身の分量が膨大ですので注意して下さい. (でも,一度きちんと読んでみることも重要です.)

    • 電子メールのアドレス登録実習

      小テストや宿題など電子メールによる提出がこの授業では良くあります.そこで, 提出先のアドレスを登録しておくと作業が楽になります.以下の操作により登録 ができます.)

      1. 「ツール」メニューから「アドレス帳」選択

      2. 左側のウィンドウにある「個人用アドレス」クリック

      3. ウィンドウ下部の「追加」クリック

      4. 「人物の詳細を編集」ダイアローグウィンドウが出て来るので,「表示名」 に適当な名前を入力(例えば aegis )

      5. ウィンドウ上部の「電子メールアドレス」タグをクリック

      6. 下半分の最初にある「電子メールアドレス」に aegis@mag.shimane-u.ac.jp を入力(ペーストが望ましい)

      7. 「別名」に適当な名前を入力(例えば aegis )

      8. 右の方にある「追加」をクリック

      9. 「OK」をクリック

      10. 「アドレス帳」ウィンドウの「ファイル」メニューから「保存」を選択

      11. 「アドレス帳」ウィンドウの「ファイル」メニューから「閉じる」を選択

      12. 以後は「作成」ウィンドウで新規メールを作成するときに,アドレスに例え ば ae まで入力した後で「TABキー」を押して「補完」すると, 候補が表示されるので,必要なアドレスを「灰色」で囲まれた状態にして 「Enterキー」を押すと「宛先」欄にアドレスが入力される.

  4. 小テスト

    授業の終了20分前くらいにAクラスBクラス別の小テストを実施します.アナウ ンスに注意してください.また,提出は電子メールにより行いますので,メール の送信準備は忘れないでいて下さい.

  5. 宿題

    授業の終りに宿題(AクラスBクラス)の説明をしますので,アナウンスに注意してください.


目次ページへ戻る