cu 命令
用途
直接或间接连接至另一个系统。
语法
描述
cu 命令是基本联网实用程序 (BNU) 命令,用于将一个系统连接到连接到 UNIX 系统或其他系统的终端。 连接可以通过硬接线或使用调制解调器通过电话线硬连线建立。
一旦连接建立,用户可以同时登录在两个系统上,可以在任意一个系统上执行命令而不断开 BNU 通信链接。 如果远程计算机也在 UNIX下运行,那么用户可以在两个系统之间传输 ASCII 文件。
从本地系统发出 cu 命令后,用户必须按下 Enter 键并随之登录到远程系统。 建立连接后,cu 命令将以两个并行进程运行:传输进程从标准输入读取数据,以 ~ (代字符) 开头的行除外,将该数据发送至远程终端。
接收进程从远程系统接受数据且,除了 ~ 开头的行之外,将该数据发送至标准输出。 在内部,当来自远程系统的行以 ~> (波浪号,大于号) 开头时,程序通过启动对本地系统上的文件的输出转移来完成此操作。 尾随 ~> 标志着导流结束。 要控制来自远程系统的输入,使缓冲区不至于超限, cu 命令使用自动的 DC3/DC1(Ctrl-Q/Ctrl-S)协议。
cu 命令可以用来连接多个系统,命令可以随后在连接系统中的任何一个上执行。 例如,用户可以在系统 X 上发出 cu 命令以连接到系统 Y ,然后在系统 Y 上发出 cu 命令以连接到系统 Z。 系统 X 是本地计算机,系统 Y 和 Z 是远程计算机。
用户可以通过登录并发出命令来在系统 Z 上执行命令。 可以在系统 X 上执行命令,只要为该命令加上单独的代字符(~ 命令)作为前缀,在系统 Y 上执行命令,只要命令加上两个代字符作为前缀(~~ 命令)。 一般,一个代字符使指定的命令在原始本地计算机上执行,而两个代字符使命令在 cu 命令在其上发出的下一个系统上执行。
例如,一旦连接了多个系统,用户就可以如下在系统 Z、X 和 Y 上执行 uname -n 命令(来显示节点名):
$ uname -n
Z
$ ~!uname -n
X
$ ~~!uname -n
Y- cu 命令不会对它传输的数据执行完整性检查。
- 可能无法正确传输具有特殊 cu 字符的 数据字段。
- 正常退出时退出代码为0,否则为 -1。
除了在远程系统上发出常规命令外,用户还可以发出特殊的 cu 命令子命令,这些命令以 ~ (波浪号) 开头。 使用这些子命令可在本地系统上发出命令,并执行诸如在两个 UNIX 系统之间传输文件之类的任务。 一旦用户输入了 ~!、~$、~%、~l 或 ~t 子命令,系统就将以类似于以下的格式显示本地计算机的名称:
~[SystemName]/%用户随后在本地计算机上输入要执行的子命令。
标志
| 项 | 描述 |
|---|---|
| -d | 打印诊断跟踪。 |
| -e | 表示将为发送至远程系统的数据生成偶校验。 |
| -h | 模拟本地回送信号,支持对期望终端设置为半双工方式的其他系统的调用。 |
| -l行 | 指定要用作本地和远程系统之间的通信线路的设备的名称。 这可用于覆盖搜索,否则将以正确的速度对第一条可用线路进行搜索。 当使用不带 -s 标志的 -l 标志时, Line 的速度取自 Devices 文件 (缺省情况下, /etc/uucp/Devices 文件)。 当 -l 和 -s 标志一起使用时, cu 命令将搜索 Devices 文件来检查对于指定的线路请求的速度是否可用。 如果可用,那么以请求的速度建立连接;否则,打印一则错误消息,调用无法完成。 指定的设备通常是硬连线异步线路 (例如, /dev/tty2) ,在这种情况下,不需要 TelephoneNumber 参数。 如果指定设备与调制解调器相连,那么必须提供电话号码。 将此标志与 SystemName 参数配合使用而不是与 TelephoneNumber 参数配合使用不会产生期望的结果。 在通常情况下,用户应不必要指定线路或设备的传输速度。 安装 BNU 时的缺省设置应该足够满足要求。 |
| -M | 指示 cu 命令忽略调制解调器控制信号数据载波检测(DCD)。 |
| -n | 用于添加的安全性,提示用户提供要拨号的电话号码,而非从命令行获得号码。 |
| -O | 表示将为发送至远程系统的数据生成奇校验。 |
| -s速度 | 指定数据传输至远程系统的速率(300、1200、2400、4800、9600 或 19200 波特)。缺省值为 Any 速度,指示系统使用与缺省(或指定)传输线路相应的速率。 传输线路的顺序在 BNU Devices 文件中指定(缺省情况下,是 /etc/uucp/ Devices 文件)。 大多数调制解调器以 300、1200 或 2400 波特的速度运行,而大多数硬连线被设置在 1200 波特或更高的速度上。 当在本地和远程系统之间传送数据,比如文件时,可能偶尔需要 300 波特的速度。 波特率越低,线路上的干扰就越小。 |
| -t | 用来对设置为自动应答的 ASCII 终端进行拨号。 会设置相应的回车符至回车符换行对的映射。 |
| -T秒 | 指定超时前等待的秒数最大值。 缺省值为 45 秒。 注: 您还可以输入WAIT=n在 Dialers 文件中的任何发送字符串之前。 位置n是超时前等待的秒数。
|
参数
子命令
cu 命令传送进程以下述方式解释以 ~ (代字符) 开头的线路:
| 项 | 描述 |
|---|---|
| ~! | 将用户返回至本地系统上的交互式 shell。 使用 ~! (从远程到本地) 和 Ctrl-D (从本地到远程) 在本地和远程系统之间切换。 |
| ~ %b reak | 传输中断顺序至远程系统。 中断也可以指定为 ~%b。 |
| ~ %c d DirectoryName | 将本地系统上的目录从当前目录更改至由 DirectoryName 变量指定的目录。 |
| ~ %d ebug | 打开或关闭 -debug 标志; 这也可以指定为 ~%d。 |
| ~ %nostop | 在 DC3/DC1 输入控制协议和无控制协议之间切换。 这在远程系统未能正确地响应 DC3 和 DC1 字符时会有用处。 |
| ~ %put 从 [ 到 ] | 复制本地系统上的 From 文件至远程系统上的 To 文件。 如果省略
To 变量,本地文件将以同样的文件名复制到远程系统上。 在传送文件的每个块时,连续的单个数字将显示在终端屏幕上。 只有 ASCII 文件能够使用该子命令进行传送。 使用 ~%put 子命令要求远程系统上使用 stty 命令和 cat 命令。 它还要求远程系统上当前的擦除和杀死字符与本地系统上的当前控制字符相同。 反斜杠将被插入在传输数据的适当位置。 在 ~%put 的操作过程中会由 cu 命令产生一个人为的传输减速,从而使数据丢失不易发生。 |
| ~ %get 从 [ 到 ] | 复制远程系统上的 From 文件至本地系统上的 To 文件。 如果省略 To 变量,远程文件将以同样的文件名复制到本地系统上。 在传送文件的每个块时,连续的单个数字将显示在终端屏幕上。 只有 ASCII 文件能够使用该子命令进行传送。 使用 ~%take 子命令要求远程系统上的 echo 命令和 cat 命令。 并且,如果要复制 tabs 而不扩展空格的话,应该在远程系统上设置 stty tabs 方式。 |
| ~. | 将用户从远程计算机上注销,然后终止远程连接。 通常连接在您从远程计算机上注销时会被终止。 但是,对于某些类型的互连硬件,可能需要使用 ~. 在使用正常注销序列后终止对话。 |
| ~!命令 | (在本地系统上)执行由 Command 变量指定的命令。 |
| ~ $命令 | (在本地系统上)运行由 Command 变量指定的命令,然后将命令的输出发送至远程系统用以执行。 |
| ~ l | 为远程通信线路打印 TERMIO 结构变量的值。 这将对调试有用。 |
| ~ t | 为用户终端打印 TERMIO 结构变量的值。 这将对调试有用。 |
| ~ ~字符串 | 将由 String 变量指定的字符串发送至远程系统。 |
示例
以下是连接到远程系统的示例。
- 要连接到远程系统,请输入:
在此示例中,您已连接到远程系统venus. 系统venus必须列示在其中一个本地 系统 文件中 (缺省情况下, /etc/uucp/系统 文件或针对 /etc/uucp/Sysfiles 文件中的 库 命令列示的其中一个 系统 文件)。cu venus - 要拨打远程系统并设置波特率,请输入:cu -s1200 9=12015558391在此示例中,您可以拨打电话号码为以下的远程系统:1-201-555-8391,其中拨号9需要获取外部拨号音。 波特率设置为1200.
- 要登录到通过硬连线线路异步线路连接的系统,请输入:cu -l /dev/tty2cu 命令与连接到tty2设备。
- 要拨打具有指定线路和特定速度的远程系统,请输入:该命令与连接到tty3设备,使用速度1200波德
- 要使用与调制解调器相关联的特定线路来拨号远程系统,请输入:cu -l cul4 9=12015558391在此示例中,您可以拨打电话号码为以下的远程系统:1-201-555-8391,其中拨号9需要获取外部拨号音。 cu 命令使用连接到cul4设备。
- 要在登录到远程系统后显示文件的内容,请输入:~!pg /usr/msg/memos/file10~! 子命令在本地系统上执行 pg 命令,显示file10文件中的文件/usr/msg/memos本地系统上的目录。
- 要将文件从本地系统复制到远程系统而不更改文件名,请输入:~%put /home/amy/file该 /home/amy/file将文件从本地系统复制到远程系统,而不更改文件名。
- 要将文件从本地系统复制到远程系统并更改文件名,请输入:~%put /home/amy/file /home/amy/tmpfile该 /home/amy/file将文件从本地系统复制到远程系统,并将文件名更改为 /home/amy/tmpfile.
- 要将文件从远程系统复制到本地系统而不更改文件名,请输入:~%take /home/jeanne/test1该 /home/jeanne/test1将文件从远程系统复制到本地系统,而不更改文件名。
- 要将文件从远程系统复制到本地系统并更改文件名,请输入:~%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 | 指定要用作 Systems、Devices 和 Dialers 文件的备用文件。 |