Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cat (1)

echo (1)

stty (1)

uname (1)

uucp (1C)

CU(1C)                               SysV                               CU(1C)



NAME
     cu - call another UNIX system

SYNOPSIS
     cu [-sspeed] [-lline] [-h] [-t] [-d] [-o | -e] [-n] telno
     cu [ -s speed ] [ -h ] [ -d ] [ -o | -e ] -l line
     cu [-h] [-d] [-o | -e] systemname

DESCRIPTION
     cu calls up another UNIX system, a terminal, or possibly a non-UNIX
     system.  It manages an interactive conversation with possible ASCII file
     transfers.

     After making the connection, cu runs as two processes:  the transmit
     process reads data from the standard input and, except for lines
     beginning with a tilde (~), passes it to the remote system; the receive
     process accepts data from the remote system and, except for lines
     beginning with a tilde (~), passes it to the standard output.  Normally,
     an automatic DC3/DC1 protocol is used to control input from the remote so
     the buffer is not overrun.  Lines beginning with a tilde (~) have special
     meanings.  Both the transmit and the receive processes are described in
     the sections below.

     When cu is used on system X to connect to system Y and subsequently used
     on system Y to connect to system Z, commands on system Y can be executed
     by using a double tilde (~~). Executing a tilde command reminds the user
     of the local system uname.  For example, uname(1) can be executed on Z,
     X, and Y as follows:

          uname
          Z
          ~[X]!uname
          X
          ~~[Y]!uname
          Y

     In general, a tilde (~) causes the command to be executed on the original
     machine; a double tilde (~~) causes the command to be executed on the
     next machine in the chain.

     The SysV version of cu supports the Vadic 212 Autodialer.

OPTIONS
     -sspeed   Specifies the transmission speed (300, 1200, 2400, 4800, 9600);
               The default value is "Any" speed which will depend on the order
               of the lines in the /usr/lib/uucp/Devices file.  Most modems
               are either 300 or 1200 baud. Directly connected lines may be
               set to a speed higher than 1200 baud.

     -lline    Specifies a device name to use as the communication line. Can
               be used to override searching for the first available line
               having the right speed. When this option is used without the -s
               option, the speed of a line is taken from the
               /usr/lib/uucp/Devices file. With the -s option, the Devices
               file is searched for the requested speed for the requested
               line. If possible, the connection is made at the requested
               speed; otherwise, an error message is printed and the call is
               not made. The specified device is generally a directly
               connected asynchronous line (e.g., /dev/ttyab) in which case a
               telephone number (telno) is not required.  The specified device
               need not be in the /dev directory.  If the specified device is
               associated with an auto dialer, a telephone number must be
               provided. Use of this option with systemname rather than telno
               will not give the desired result (see systemname below).

     -h        Emulates local echo, supporting calls to other computer systems
               that expect terminals to be set to half-duplex mode.

     -t        Sets appropriate mapping of carriage-return to carriage-
               return-line-feed pairs.  Used when dialing an ASCII terminal
               set to auto answer.

     -d        Prints diagnostic traces.

     -e        Generates even parity for data sent to the remote system.

     -o        Generates odd parity for data sent to the remote system.

     -n        Prompts you to provide the telephone number to be dialed rather
               than taking it from the command line (for added security).

SPECIAL ARGUMENTS
     telno          When using an automatic dialer, telno is the telephone
                    number with equal signs for secondary dial tone or minus
                    signs placed appropriately, for delays of 4 seconds.

     systemname     Systemname is a uucp system name that may be used rather
                    than a phone number. Cu obtains an appropriate direct line
                    or phone number from /usr/lib/uucp/Systems. Cu tries each
                    phone number or direct line for systemname in the Systems
                    file until a connection is made or all the entries are
                    tried.  Note:  the systemname option should not be used in
                    conjunction with the -l and -s options, as cu will connect
                    to the first available line for the system name specified,
                    ignoring the requested line and speed.

TRANSMIT PROCESS
     The transmit process interprets the following:


     ~.                  Terminate the conversation.

     ~!                  Escape to an interactive shell on the local system.

     ~!cmd...            Run cmd on the local system, via the -c option to the
                         sh(1) command.

     ~$cmd...            Run cmd locally and send its output to the remote
                         system.

     ~%cd                Change the directory on the local system.  NOTE: A
                         ~!cd causes the command to be run by a sub-Shell,
                         which was probably not what was intended.

     ~%take from [ to ]  Copy file from (on the remote system) to file to on
                         the local system.  If to is omitted, the from
                         argument is used in both places.

     ~%put from [ to ]   Copy file from (on the local system) to file to on
                         the remote system.  If to is omitted, the from
                         argument is used in both places.

                         For both ~%take and put commands, as each block of
                         the file is transferred, consecutive single digits
                         are printed to the terminal.

     ~~ line             Send the line ~ line to the remote system.
     ~%break             Transmit a BREAK to the remote system (this option
                         can also be specified as ~%b).

     ~%debug             Toggle the -d debugging option on or off (this option
                         can also be specified as ~%d).

     ~t                  Print the values of the termio structure variables
                         for the user's terminal (useful for debugging).

     ~l                  Print the values of the termio structure variables
                         for the remote communication line (useful for
                         debugging).

     ~%nostop            Toggle between DC3/DC1 input control protocol and no
                         input control.  This is useful when the remote system
                         is one which does not respond properly to the DC3 and
                         DC1 characters.

RECEIVE PROCESS
     The receive process normally copies data from the remote system to its
     standard output.  Internally the program accomplishes this by initiating
     an output diversion to a file when a line from the remote begins with ~.

     Data from the remote is diverted (or appended, if >> is used) to file on
     the local system.  The trailing ~> marks the end of the diversion.

     Using ~%put requires stty(1) and cat(1) on the remote side.  It also
     requires that the current erase and kill characters on the remote system
     be identical to the current ones on the local system.  Backslashes are
     inserted at appropriate places.  There is an artificial slowing of
     transmission during the ~%put operation, so that loss of data is
     unlikely.

     Using ~%take requires echo(1) and cat(1) on the remote system.  The stty
     tabs mode should also be set on the remote system, if tabs are to be
     copied without expansion.

EXAMPLES
     To dial a system whose number is 9 201 555 1212 using 1200 baud (where
     you expect a dialtone after the 9), use the following command:

          # cu -s1200 9=12015551212

     If the speed is not specified, "Any" is the default value.

     To log in to a system connected by a direct line, type this (where XX is
     a valid TTY number):

          # cu -l /dev/ttyXX
     or
          # cu -l ttyXX

     To dial a system with the specific line and a specific speed, type this
     (where XX is a valid TTY number):

          # cu -s1200 -l /dev/ttyXX

     To dial a system using a specific line associated with an auto dialer,
     execute the following command (where XX is a line number):

          # cu -l culXX 9=12015551212

     To use a system name, use this command (where YYYZZZ is the name of the
     system):

          # cu YYYZZZ

BUGS
     If you cu to a DOMAIN node whose default start-up shell is /com/sh (as
     opposed to /bin/sh or /bin/csh), you should either:  1) change your
     command search rules (i.e., do a

          csr -a /bin /usr/bin ...

     inside the AEGIS Shell) so that the cu transmit process can properly
     locate SysV commands, or 2) have the remote start-up AEGIS Shell invoke a
     SysV Shell (i.e., /bin/sh) so that the cu receive process can properly
     parse the request (since the tilde character has a special meaning in the
     AEGIS Shell).

     Cu buffers input internally.

     The cu command does not do any integrity checking on data it transfers.
     Data fields with special cu characters may not be transmitted properly.
     Depending on the interconnection hardware, it may be necessary to use a
     ~. to terminate the conversion even if stty 0 has been used.  Non-
     printing characters are not dependably transmitted using either the ~%put
     or ~%take commands.  cu between an IMBR1 and a penril modem will not
     return a login prompt immediately upon connection.  A carriage return
     will return the prompt.

FILES
     /usr/lib/uucp/Systems
     /usr/lib/uucp/Devices
     /usr/spool/locks/LCK..  (tty-device)

DIAGNOSTICS
     Exit code is zero for normal exit, one otherwise.

SEE ALSO
     cat (1), echo (1), stty (1), uname (1), uucp (1C).

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026