OpenWindows ユーザーズガイド (上級編)

第 9 章 ネットワークの使い方

ネットワークとは、相互に通信できるように設定されたコンピュータのグループです。使っているマシンがネットワークの一部である場合は、自分のマシン (ローカルマシン) にログインしたままでネットワーク上の他のマシン (リモートマシン) の資源を利用できます。ユーザは、他のマシンに影響を及ぼすリモートコマンドを自分のマシンから実行したり、他のマシンにログインしたりすることができます。

この章では、次の事項について説明します。

使っているマシンがネットワークに接続されていない場合は、この章で説明する内容は現在の環境には適用できません。ただし、この章を一通り読めば、ネットワークの利点を大まかに理解することができます。

ネットワークの一般概念

マシン間をネットワークで接続することによって、相互に情報を伝送できます。一般にネットワークは、通常おおよそ 300 メートル以内の狭い地域をカバーするローカルエリアネットワーク (LAN)、数千キロメートル以上の地域をカバーできる広域ネットワーク (WAN)、それらの中間のキャンパスエリアネットワーク (CAN) に分類できます。

いくつかのネットワークが結びついて構成されているネットワークは、インターネットワークと呼ばれます。たとえば、ビル内部のローカルなネットワークの一部であるマシンが、同時にそのローカルなネットワークと国中にまたがる同種類のネットワークとを接続するインターネットワークの一部になることもあります。通常、ネットワークとインターネットワークとの違いはユーザの目には触れないため、このマニュアルでは「ネットワーク」という用語をネットワークとインターネットワークの両方の意味で使います。

ネットワークに接続されたマシンは、ネットワークプロトコル (共通のネットワーク言語) を使って通信を行い、適切な場所に情報を伝送します。リレーとも呼ばれるインターネットワークプロトコルは、ネットワークを相互にリンクするために使われます。

リモートログイン (rlogin)

rlogin コマンドを使って、ネットワーク上の他の UNIX マシンにログインできます。

リモートマシンにログインするには、次のように入力します。

$ rlogin machinename

machinename はリモートマシン名です。

パスワードの入力を促すプロンプトが表示されたら、リモートマシン上でのパスワードを入力して Return キーを押します。ローカルマシン名がリモートマシン上の /etc/hosts.equiv ファイル内に記述されていれば、リモートマシンはそのローカルマシン名を「信用」していることになり、パスワードの入力を要求しません。

$ rlogin lonesome
Password: (パスワードを入力する)
Last login: Mon Jan 6 09:37:55 from blue
Sun Microsystems, Inc.   SunOS 5.1      October 1992
(以下のコマンドは lonesome 上で実行される)
$ pwd
/home/keithp
$ logout
Connection closed.
$

ホームディレクトリなしの rlogin

上記の例では、pwd コマンドで示されるように、keithp というユーザがマシン lonesome にログインし、そのマシン上の /home/keithp ディレクトリに移動しています。自分のホームディレクトリが存在しないリモートマシンにログインした場合は、リモートマシン上にホームディレクトリがないというメッセージが rlogin によって表示され、そのマシンのルートディレクトリ (/) に移動します。

$ rlogin fretful
Password:
No directory! Logging in with home=/
Last login: Fri Jan 3 10:21:59 from blue
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは fretful 上で実行される)
$ pwd
/
$ logout
Connection closed.
$

現在のログイン名以外での rlogin

現在のログイン名以外でリモートマシンにログインする場合もあります。たとえば、他のユーザのマシン上で (他のユーザのログイン名を使って) 作業をしているときに、自分のマシンに自分のログイン名でログインする場合などです。このような場合は、rlogin-l オプションを使います。コマンド構文は次のとおりです。

rlogin machinename -l username

次の例は、マシン blue のユーザ keithp が他のマシン lonesome にユーザ earl としてログインする方法を示しています。

$ rlogin lonesome -l earl
Password:
Last login: Wed Jan 8 07:12:25 from blue
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは lonesome 上で実行される)
$ pwd
/home/earl
$ logout
Connection closed.
$

現在のログイン名以外でリモートマシンにログインすると、指定したユーザのホームディレクトリに移動します。

未登録のマシンに対する rlogin

名前が認識できないリモートマシンにログインしようとすると、rlogin はホスト名データベースの検索に失敗し、次のようなメッセージを表示します。

$ rlogin stranger
stranger: unknown host
$

rlogin セッションの中止

通常は作業セッションの最後に logout と入力して rlogin セッションを終了します。通常の方法でセッションを終了できない場合は、行の先頭にチルド文字とピリオド (‾.) を入力することによって rlogin セッションを中止できます。これによりリモートマシンとのログインセッションは中止され、ユーザは自分のマシンに戻ります。

あるリモートマシンからそれ以外のリモートマシンにアクセスすることによって、複数のマシンにログインしている状態で、‾. を使ってそれらのマシンのどれかとのセッションを中止した場合も、最初にログインした自分のマシンに戻ります。

$ rlogin dakota
Password:
Last login: Fri Jan 10 09:14:43 from blue
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは dakota 上で実行される)
$ ‾.  (‾. は画面上に表示されないことがある)
Connection closed.
$

1 つ前の中間セッションに戻りたい場合は、次のように 2 つのチルド文字の後にピリオドを付けたコマンド (‾‾.) を使います。

$ rlogin lonesome
Password:
Last login: Tue Jan 7 08:12:49 from blue
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは lonesome 上で実行される)
$ rlogin dakota
Password:
Last login: Tue Jan 7 10:17:40 from lonesome
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは dakota 上で実行される)
$ ‾‾.  (‾‾. は画面上に表示されないことがある)
Connection closed.
$

rlogin セッションの中断

rlogin セッションを一時的に中断して後でまた戻りたい場合は、チルド文字 () の後に Ctrl-Z を入力します。rlogin セッションは中断されたプロセスになり、ユーザはログイン元のマシンに戻ります。

rlogin セッションを再開するには、fg と入力します。fg の代わりに、パーセント記号 (%) の後に中断されたプロセスのプロセス番号を入力することも可能です。(プロセス番号が指定されない場合に % で使われるデフォルトは、最後に中断されたプロセスのプロセス番号です。)

$ rlogin lonesome
Password:
Last login: Tue Jan 7 08:12:49 from blue
Sun Microsystems, Inc.    SunOS 5.1      October 1992
(以下のコマンドは lonesome 上で実行される)
 ‾^Z  (‾^Z は画面上に表示されないことがある)
Stopped
(以下のコマンドは  blue 上で実行される)
$ pwd
/home/keithp
$ %
rlogin lonesome

(以下のコマンドは lonesome 上で実行される)
$ logout
Connection closed.
$

‾‾. による rlogin セッションの中止と同様に、2 つのチルド文字の後に Ctrl-Z (‾‾^Z) を入力すると、現在の rlogin セッションが中断されて 1 つ前の中間セッションに戻ります。

ログイン状態の確認 (who am i)

各種リモートマシンに対して別々のログイン名でログインしている場合、ログイン状態を正確に把握することが必要になる場合があります。その場合、who am i と入力することによって、現在ログインしているマシン名と現在のユーザ名を表示できます。

rlogin についての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。

ファイルのリモートコピー (rcp)

rcp コマンドを使って、異なるマシン間でファイルをコピーできます。rcp は、リモートマシン上の /etc/hosts.equiv ファイルと /etc/passwd ファイルを参照して、ユーザがアクセス権を持っているかどうか確認します。rcp の構文は、cp コマンドの構文と似ています。


注 -

異なるマシン間でサブディレクトリとその内容をコピーするには、 rcp -r を使います。


リモートマシンからローカルマシンへのコピー

リモートマシンからローカルマシンにファイルをコピーするには、次の構文を使います。

rcp machinename:source destination

machinename はリモートマシン名、source はコピーするファイル名、destination はコピーしたファイルが格納されるローカルマシン上のパス名です。

次の例は、リモートマシン dakota のファイル /home/dakota/doc/letter を、ローカルマシン blue/tmp ディレクトリにコピーする方法を示しています。

$ rcp dakota:/home/dakota/doc/letter /tmp
$

rcp では、さまざまな省略名と構文を組み合わせて使うことができます。たとえば、リモートマシン fretful 上のユーザ hank のホームディレクトリにある .doc で終わる全ファイルを、ローカルマシン blue のカレントディレクトリにコピーするには、次のように入力します。

$ rcp fretful:‾hank/*.doc .
$

ローカルマシンからリモートマシンへのコピー

ローカルマシンからリモートマシンにファイルをコピーするには、前記の構文を逆にした次の構文を使います。

rcp source machinename:destination

source はコピーするファイル名、machinename はリモートマシン名、destination はコピーしたファイルが格納されるリモートマシン上のパス名です。

次の例は、ローカルマシン上の ‾/usa/texas ディレクトリの austin というファイルを、リモートマシン fretful‾hank/cities ディレクトリにコピーする方法を示しています ( はローカルマシン上のホームディレクトリ、‾hank はユーザ hank のホームディレクトリであることに注意してください)。

$ rcp ‾/usa/texas/austin fretful:‾hank/cities
$

rcp コマンドとそのオプションについての詳細は、 『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。

コマンドのリモート実行 (rsh)

rsh コマンド (リモートシェルコマンド) を使うと、形式的にログインしなくてもリモートマシン上で 1 つのコマンドを実行できます。リモートマシンで 1 つのコマンドを実行するだけでよい場合は、rsh によって時間を節約できます。

リモートマシン上で 1 つのコマンドを実行するには、次のように入力します。

rsh machinename command

次の例は、リモートマシン lonesome 上の /home/lonesome/guitar ディレクトリの内容を表示する方法を示しています。

$ rsh lonesome ls /home/lonesome/guitar
collings         gibson          santacruz
fender           martin          taylor
$ 

rloginrcp と同様に、rsh は、リモートマシンの /etc/hosts.equiv ファイルと /etc/passwd ファイルを参照して、ユーザがアクセス権を持っているかどうか確認します。

rsh コマンドとそのオプションについての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。

ユーザ情報の参照 (rusers)

rusers コマンド (リモートユーザ) を使って、ネットワーク上の他のマシンにログインしているユーザの情報を表示できます。rusers コマンドを引数なしで入力すると、ネットワーク上の各マシン名とそのマシンにログインしているユーザの情報が表示されます。

$ rusers
aspen          susan
blue           keithp
dakota         sally
farmhouse      elmer
freeway        lindab     johnj     karenm
fretful        hank
lonesome       george
twister        tex
$

マシン freeway には現在 3 人の異なるユーザがログインしています。

特定のリモートマシンに関する情報を表示するには、次のように rusers コマンドの後にマシン名を指定します。

$ rusers freeway
freeway        lindab     johnj     karenm
$

rusers コマンドで -l オプションを指定すると、詳細な情報が表示されます。表示される情報は、ユーザ名、マシン名と端末名、各ユーザがログインした時刻、各ユーザのアイドル時間 (1 分以上の場合のみ)、各ユーザのログイン元のマシン名 (存在する場合) です。

$ rusers -l freeway
lindab        freeway:ttyd8     Feb 10 08:12     5:29
johnj         freeway:console   Feb 10 09:16
karenm        freeway:ttyp0     Feb 10 11:56       36
$

-l オプションは、マシン名を指定しなくても使えます。

rusers コマンドとそのオプションについての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。