cu コマンド

目的

他のシステムに直接または間接的に接続します。

構文

モデムによる接続を確立する

cu-d ] [  -h ] [  -m ] [  -TSeconds ] [  -n ] [  -sSpeed ] [  -t ] [  -e | -o TelephoneNumber

接続用デバイスの名前を指定する

cu-d ] [  -h ] [  -m ] [  -TSeconds ] [  -sSpeed ] [  -e | -o -lLine

接続するシステムの名前を指定する

cu-d ] [  -h ] [  -m ] [  -TSeconds ] [  -e | -o ] SystemName

説明

cu コマンドは、基本ネットワーク・ユーティリティー (BNU) コマンドの 1 つで、1 つのシステムを、UNIX システムまたは他のシステムに接続している端末に接続します。モデム接続の電話回線または配線回線を介して接続されます。

接続が確立すると、ユーザーは両方のシステムに同時にログインでき、BNU 通信リンクを切断することなくどちらかのシステムでもコマンドを実行できます。リモート・コンピューターも UNIX 環境で稼働している場合、 ユーザーは 2 つのシステム間で ASCII ファイルを転送できます。

ローカル・システムから cu コマンドを実行したあとに必ず Enter (実行) キーを押し、それからリモート・システムにログインしてください。cu コマンドは、接続の確立後、送信プロセスと受信プロセスの 2 つのプロセスを同時に実行します。送信プロセスでは、~ (ティルド) で始まる行を除き、標準入力からデータを読み取り、リモート端末へ渡します。

受信プロセスでは、リモート・システムから送信されたデータを受け付け、~ (ティルド) で始まる行以外のデータを標準出力へ渡します。このプログラムは内部的に、リモート・システムからの行が ~> (ティルドとより大記号) で始まる場合、ローカル・システム上のファイルへの出力先変更を開始することによって、これを実行します。 後書きの ~> により、出力先変更の終了がマークされます。 バッファーがオーバーランしないようにリモート・システムからの入力を制御するため、cu コマンドは自動 DC3/DC1 (Ctrl-Q/Ctrl-S) プロトコルを使用します。

cu コマンドを使用して複数のシステムを接続すると、接続されたどのシステムでもコマンドを実行できるようになります。例えば、システム X で cu コマンドを実行してシステム Y に接続し、さらにこのシステム Y で再度 cu コマンドを実行してシステム Z に接続することができます。この場合、システム X がローカル・コンピューター、システム Y およびシステム Z がリモート・コンピューターとなります。

システム Z でコマンドを実行できるようにするには、ログインして cu コマンドを実行します。システム X でコマンドを実行するには、コマンドの前にティルドを 1 つ付けて実行します (~Command)。同様に、システム Y でコマンドを実行するには、cu コマンドの前にティルドを 2 つ付けて実行します (~~Command)。通常、ティルドを 1 つ付けると、指定されたコマンドが元のローカル・コンピューターで実行され、ティルドを 2 つ付けると、2 番目に cu コマンドが実行されたシステムでコマンドが実行されます。

例えば、複数のシステムを接続している場合、システム Z、X、Y で uname -n コマンド (ノード名表示) を実行するには、以下のように入力します。

$ uname -n
Z
$ ~!uname -n
X
$ ~~!uname -n
Y
注:
  1. cu コマンドでは、このコマンドにより転送されるデータの整合性は検査されません。
  2. データ・フィールドに特殊 cu 文字が入っていると、データが正しく転送されないことがあります。
  3. 終了コード 0 は正常終了を示し、1 は正常終了しなかったことを示します。

リモート・システムで正規コマンドを実行できるだけでなく、 cu コマンドの特殊なサブコマンドも実行できます。 このサブコマンドの先頭には ~ (ティルド) が付いています。 これらのサブコマンドを使用すると、ローカル・システムでコマンドを実行したり、 2 つの UNIX システム間でファイル転送などのタスクを実行したりすることができます。ユーザーが ~!~$~%~l、または ~t のいずれかのサブコマンドを入力すると、直ちにローカル・コンピューターの名前が以下のようなフォーマットで表示されます。


~[SystemName]/%

次に、ローカル・コンピューターで実行するサブコマンドを入力できます。

フラグ

項目 説明
-d 診断トレースを出力します。
-e リモート・システムへ送信されるデータに対して偶数パリティーを生成することを指定します。
-h ローカル・エコーをエミュレートし、端末が半二重モードに設定されていることを想定している他のシステムへの呼び出しをサポートします。
-l Line ローカル・システムとリモート・システムを接続する通信回線として使用するデバイスの名前を指定します。このフラグを使用して、最初に使用可能になった適切な速度の回線の検索をオーバーライドすることもできます。-l フラグを指定して -s フラグを指定しないと、Line の速度として Devices ファイルに指定されている速度が使用されます (デフォルトは /etc/uucp/Devices ファイルです)。

-l フラグと -s フラグの両方を指定すると、cu コマンドは要求されている速度を指定されている回線で使用できるかどうかを確認するため、Devices ファイルを検索します。要求されている速度を使用できる場合は、この速度で接続が確立されます。この速度が使用できない場合は、エラー・メッセージが出力され、呼び出しは行われません。

指定するデバイスは、通常、非同期ハードワイヤード回線 (/dev/tty2 など) です。 非同期ハードワイヤード回線の場合、TelephoneNumber パラメーターを指定する必要はありません。 モデム関連デバイスを指定した場合、電話番号を指定する必要があります。このフラグを TelephoneNumber パラメーターではなく、SystemName パラメーターと共に指定すると、予期しない結果が生じます。

ユーザーが送信速度や回線やデバイスを指定する必要はありません。BNU のインストール時に設定されたデフォルト値を使用できます。

-m cu コマンドが、モデム制御信号のデータ・キャリア検出 (DCD) を無視するようにします。
-n セキュリティーを強化するため、ダイヤルする電話番号をコマンド・ラインから取り込むのではなく、ユーザーに番号を入力するようプロンプト指示します。
-o リモート・システムへ送信されるデータに対して奇数パリティーを生成することを指定します。
-sSpeed リモート・システムへのデータ送信速度 (300、1200、2400、4800、9600、 または 19200 ボー) を指定します。デフォルト値は Any です。このデフォルト値は、 デフォルトの (または指定されている) 送信回線に適切な速度を使用するようシステムに指示します。 送信回線の順序は、BNU Devices ファイル (デフォルトでは /etc/uucp/Devices ファイル) に指定されています。ほとんどのモデムは 300、1200、または 2400 ボーで動作しますが、ハードワイヤード回線の速度はほとんどの場合 1200 ボー以上に設定されています。ローカル・システムとリモート・システムとの間でファイルなどのデータを転送する際には、転送速度を 300 ボーに設定する必要がある場合があります。300 ボーよりも低い速度を設定すると、回線妨害が少なくなります。
-t 自動応答が設定されている ASCII 端末にダイヤルします。改行から復帰改行へのマッピングが適切に設定されます。
-TSeconds タイムアウトまでの最大待機秒数を指定します。デフォルト値は 45 秒です。

注: Dialers ファイル内の送信文字列の前に、WAIT=n を入力できます。n には、タイムアウトまでの秒数を指定します。

パラメーター

項目 説明
SystemName BNU により認識されるリモート・システムの名前です。 接続を確立するときにこの名前が使用されます。電話番号の代わりにシステム名を使用できます。 システム名を指定すると、cu コマンドは BNU Systems ファイル (デフォルトでは、 /etc/uucp/Systems ファイル) から適切なハードワイヤード回線または電話番号を取得します。システム名には ASCII 文字以外指定できません。

注: SystemName パラメーターを指定する場合は、-l フラグと -s フラグは指定しないでください。これらのフラグを指定すると、 cu コマンドは、指定されている回線と回線速度を無視して、指定されているシステム用に最初に使用可能になった回線に接続します。

TelephoneNumber モデム経由のリモート接続を確立するために使用する電話番号です。このエントリーには、市内電話番号または市外電話番号のいずれかを指定できます。

サブコマンド

cu コマンドの送信プロセスでは、~ (ティルド) で始まる行は以下のように解釈されます。

項目 説明
~! ローカル・システムの対話式シェルに戻ります。ローカル・システムとリモート・システムを切り替えるには、~! (リモートからローカルへの切り替え) または Ctrl-D (ローカルからリモートへの切り替え) を使用します。
~%break ブレーク・シーケンスをリモート・システムに送信します。ブレークは ~%b として指定することもできます。
~%cd DirectoryName ローカル・システムのディレクトリーを、現行ディレクトリーから DirectoryName 変数で指定されているディレクトリーに変更します。
~%debug -debug フラグのオン/オフを切り替えます。これは ~%d と指定することもできます。
~%nostop DC3/DC1 入力制御プロトコルと入力制御プロトコルなしとを切り替えます。 このサブコマンドは、リモート・システムが DC3 文字と DC1 文字に対して正しく応答しない場合に便利です。
~%put From [ To ] From に指定したローカル・システムのファイルを、To に指定したリモート・システムのファイルにコピーします。 To 変数を省略すると、ローカル・ファイルは同じ名前でリモート・システムにコピーされます。ファイルのブロックが転送されるたびに、端末画面に 1 桁の連続番号が表示されます。このサブコマンドで転送できるのは、ASCII ファイルだけです。

~%put サブコマンドを使用する場合、リモート・システムで stty コマンドと cat コマンドが必要となります。 また、リモート・システムで現在使用されている消去文字と抹消文字は、ローカル・システムの消去文字および抹消文字と同一でなければなりません。送信データの適切な位置に円記号が挿入されます。~%put サブコマンド実行中は、データの損失を防ぐため、cu コマンドによる送信速度が意図的に低下されます。

~%take From [ To ] From に指定したリモート・システムのファイルを、To に指定したローカル・システムのファイルにコピーします。 To 変数を省略すると、リモート・ファイルは同じ名前でローカル・システムにコピーされます。ファイルのブロックが転送されるたびに、端末画面に 1 桁の連続番号が表示されます。このサブコマンドで転送できるのは、ASCII ファイルだけです。 ~%take サブコマンドを使用する場合、リモート・システムで echo コマンドと cat コマンドが必要となります。 また、スペースを拡張せずにタブをコピーする場合、リモート・システムでは stty tabs モードが設定されている必要があります。
~. ユーザーをリモート・コンピューターからログオフし、次にリモート接続を切断します。通常、ユーザーがリモート・コンピューターからログオフした時点で接続が切断されます。ただし、相互接続用ハードウェアによっては、通常のログオフ順序の実行後に対話を終了するために、~. を使用しなければならないことがあります。
~!Command Command 変数に指定されているコマンドをローカル・システムで実行します。
~$Command Command 変数に指定されているコマンドをローカル・システムで実行し、次にこのコマンドの出力をリモート・システムへ実行用に送信します。
~l リモート通信回線の TERMIO 構造変数の値を出力します。このサブコマンドは、デバッグに役立ちます。
~t ユーザーの端末の TERMIO 構造変数の値を出力します。このサブコマンドは、デバッグに役立ちます。
~~String String 変数に指定されている文字列をリモート・システムに送信します。

リモート・システムへの接続の例を以下に示します。

  1. リモート・システムへ接続するには、以下のように入力します。
    cu venus
    この例では、リモート・システム venus に接続します。システム venus は、ローカル Systems ファイル (デフォルトは /etc/uucp/Systems ファイルまたは /etc/uucp/Sysfiles ファイルに記述されている cu コマンドの Systems ファイル) のいずれかに登録されていなければなりません。
  2. リモート・システムにダイヤルしてボー・レートを設定するには、以下のように入力します。
    cu  -s1200 9=12015558391
    上記の例では、1-201-555-8391 という電話番号のリモート・システムにダイヤルします。この場合、外線に接続するために 9 をダイヤルする必要があります。ボー・レートは 1200 に設定されます。
  3. 非同期ハードワイヤード回線により接続しているシステムにログインするには、以下のように入力します。

    cu  -l /dev/tty2
    cu コマンドは、tty2 デバイスに接続しているシステムに接続します。
  4. 指定した回線と速度でリモート・システムにダイヤルするには、以下のように入力します。
    cu  -s 1200  -l tty3
    上記のコマンドでは、tty3 デバイスに接続しているシステムに、回線速度 1200 ボーで接続します。
  5. 特定のモデム接続回線を使用してリモート・システムにダイヤルするには、以下のように入力します。

    cu  -l cul4 9=12015558391
    上記の例では、1-201-555-8391 という電話番号のリモート・システムにダイヤルします。この場合、外線に接続するために 9 をダイヤルする必要があります。cu コマンドは、デバイス cul4 に接続しているモデムを使用します。
  1. リモート・システムにログインした後でファイルの内容を表示するには、以下のように入力します。

    ~!pg /usr/msg/memos/file10
    ~! サブコマンドは、ローカル・システムで pg コマンドを実行し、ローカル・システムの /usr/msg/memos ディレクトリーにある file10 ファイルの内容を表示します。
  2. ファイル名を変更せずにローカル・システムからリモート・システムへファイルをコピーするには、以下のように入力します。
    ~%put /home/amy/file
    ローカル・システムの /home/amy/file ファイルがこの名前でリモート・システムへコピーされます。
  3. ローカル・システムからリモート・システムへファイルをコピーし、コピーしたファイルの名前を変更するには、以下のように入力します。
    ~%put /home/amy/file /home/amy/tmpfile
    ローカル・システムの /home/amy/file ファイルがリモート・システムにコピーされ、ファイル名が /home/amy/tmpfile に変更されます。
  4. ファイル名を変更せずにリモート・システムからローカル・システムへファイルをコピーするには、以下のように入力します。
    ~%take /home/jeanne/test1
    リモート・システムの /home/jeanne/test1 ファイルが同じ名前でローカル・システムにコピーされます。
  5. リモート・システムからローカル・システムへファイルをコピーし、コピーしたファイルの名前を変更するには、以下のように入力します。
    ~%take /home/jeanne/test1 /usr/dev/jeanne/tmptest
    上記の例では、リモート・システムの /home/jeanne/test1 ファイルがローカル・システムにコピーされ、ファイル名が /usr/dev/jeanne/tmptest に変更されます。

ファイル

項目 説明
/etc/locks デバイスの複数使用を防止します。
/usr/bin/cu cu コマンドのパス名を指定します。
/bin/cu /usr/bin/cu コマンドへのシンボリック・リンクを指定します。
/etc/uucp/Devices 使用可能なリンクに関する情報が記述されています。
/etc/uucp/Dialcodes ダイヤル・コードの省略形が記述されています。
/etc/uucp/Dialers リンクの初期接続手順を制御します。
/etc/uucp/Permissions アクセス権コードが記述されています。
/etc/uucp/Systems アクセス可能なリモート・システムが登録されています。
/etc/uucp/Sysfiles SystemsDevicesDialers ファイルとして使用できる代替ファイルを指定します。