29.5.拨出服务 ============= 以下是一些让主机通过调制解调器连接到另一台计算机的技巧。这适用于与远程主机建立终端会话。 如果使用 PPP 有问题,这种连接对在互联网上获取文件有帮助。如果 PPP 不工作,使用终端会话来通过 FTP 获得所需文件。然后使用 zmodem 将其传输到机器上。 29.5.1.使用内置的 Hayes 调制解调器 ---------------------------------- ``tip`` 中内置了一个通用的 Hayes 拨号器。在 **/etc/remote** 中使用 ``at=hayes``\ 。 驱动 Hayes 不够聪明,不能识别新调制解调器的一些高级功能,如 ``BUSY``\ 、\ ``NO DIALTONE`` 或 ``CONNECT 115200`` 等信息。当用 ``ATX0&W`` 使用 ``tip`` 时,要关闭这些信息。 ``tip`` 的拨号超时是 60 秒。调制解调器应使用更少的时间,否则 ``tip`` 会认为有通信问题。试试 ``ATS7=45&W``\ 。 29.5.2.使用 ``AT`` 命令 ----------------------- 在 **/etc/remote** 中创建一个“direct”条目。例如,如果调制解调器被连接到第一个串口,\ **/dev/cuau0**\ ,使用下面一行: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session cuau0:dv=/dev/cuau0:br#19200:pa=none 在 br 适配器中使用调制解调器支持的最高 bps 速率。然后,输入 ``tip cuau0`` 来连接到调制解调器。 或者,以 ``root`` 身份用以下命令使用 \`cu : .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # cu -lline -sspeed *line* 是串口,如 **/dev/cuau0**\ ,\ *speed* 是速度,如 ``57600``\ 。当输入完 AT 命令后,输入 ``~.`` 退出。 29.5.3.\ ``@`` 符号不起作用 --------------------------- 电话号码功能中的 ``@`` 符号告诉 ``tip`` 在 **/etc/phones** 中寻找电话号码。但是,\ ``@`` 符号在 **/etc/remote** 等配置文件中也是一个特殊字符,所以它需要用反斜杠转义: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session pn=\@ 29.5.4.从命令行拨号 ------------------- 在 **/etc/remote** 中添加一个“generic”条目,例如: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du: 这样就应该能工作了: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # tip -115200 5551234 喜欢 ``cu`` 而不是 ``tip`` 的用户,可以使用一个通用的 ``cu`` 条目: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du: 然后输入: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # cu 5551234 -s 115200 29.5.5.设置 bps 速率 -------------------- 添加一项 ``tip1200`` 或 ``cu1200``\ ,并将 bps 速率换成更合适的值。\ ``tip`` 的默认值是 1200 bps,也就是为什么会有 ``tip1200`` 这条记录的原因。虽然你并不需要使用 1200 bps。 29.5.6.通过终端服务器访问若干主机 --------------------------------- 与其等到连接后每次都输入 ``CONNECT`` *主机*\ ,不如使用 ``tip`` 的 ``cm`` 功能。例如,\ **/etc/remote** 中的这些条目将让你输入 ``tip pain`` 或 ``tip muffin`` 来连接到主机 ``pain`` 或 ``muffin``\ ,输入\ ``tip deep13`` 来连接到终端服务器: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234: 29.5.7.使用不止一条线路的 ``tip`` --------------------------------- 当一所大学只有几条调制解调器线路,以及数千名学生试图使用它们时,这通常是一个问题。 在 **/etc/remote** 中为你的大学添加一个记录,然后为 ``pn`` 功能使用 ``@`` 标记: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuau3:br#9600:at=courier:du:pa=none: 接着,在 **/etc/phones** 中列出大学的电话号码: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 ``tip`` 将按顺序试用每一个,然后就停止。如果想继续测试,隔一段时间再运行 ``tip``\ 。 29.5.8.使用强制字符 ------------------- ``Ctrl``\ +\ ``P`` 是默认的“强制”字符,用来告诉 ``tip`` 下一个字符是字面数据。强制字符可以用 ``~s`` 转义设置为任何其他字符,意思是“设置一个变量”。 输入 ``~sforce=single-char``\ ,后面加一个换行。如果不输入单字符,那么强制字符就是空字符,可以通过输入 ``Ctrl`` + ``2`` 或 ``Ctrl`` + ``空格键`` 进入。一个相当好的单字符值是 ``Shift`` + ``Ctrl`` + ``6``\ ,它只在一些终端服务器上使用。 要改变强制字符,在 ``~/.tiprc`` 中指定以下内容: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session force=single-char 29.5.9.大写字符 --------------- 这发生在按下 ``Ctrl``\ +\ ``A`` 的时候,这是 ``tip`` 的“大写字符”,专门为有大写锁定键的人设计。使用 ``~s`` 来设置 ``raisechar`` 到合理的位置。如果这两个功能都不使用,它可以被设置为与强制字符相同。 这里是为需要输入 ``Ctrl`` + ``2`` 和 ``Ctrl`` + ``A`` 的 ``Emacs`` 用户提供的 ``~/.tiprc`` 样本: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session force=^^ raisechar=^^ ``^^`` 是 ``Shift`` + ``Ctrl`` + ``6`` 29.5.10.用 ``tip`` 来传输文件 ----------------------------- 当与另一个类 UNIX® 操作系统通信时,可以使用 ``~p``\ (put)和 ``~t``\ (take)发送和接收文件。这些命令在远程系统上运行 ``cat`` 和 ``echo`` 来接受和发送文件。语法是: ``~p`` 本地文件 [远程文件] ``~t`` 远程文件 [本地文件] 它没有错误检查,所以可能应该使用其他协议,如 zmodem。 29.5.11.用 ``tip`` 来使用 Zmodem? ---------------------------------- 要接收文件,在远程端启动发送程序。然后,键入\ ``~C rz``\ ,开始在本地接收它们。 要发送文件,在远程端启动接收程序。然后,键入 ``~C sz`` *文件*\ ,将它们发送到远程系统。