CU(1-SysV) RISC/os Reference Manual CU(1-SysV)
NAME
cu - call another RISC/os system or UNIX system
SYNOPSIS
cu [-sspeed] [-lline] [-h] [-t] [-d] [-o | -e] [-n] telno
cu [ -sspeed ] [ -h ] [ -d ] [ -o | -e ] -lline
cu [-h] [-d] [-o | -e] systemname
DESCRIPTION
cu calls up another RISC/os or a UNIX system, a terminal,
or possibly a non-UNIX system. It manages an interactive
conversation with possible transfers of ASCII files.
cu accepts the following options and arguments:
-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 communica-
tion line. This can be used to override the search
that would otherwise take place for the first
available line having the right speed. When the -l
option is used without the -s option, the speed of
a line is taken from the Devices file. When the -l
and -s options are both used together, cu will
search the Devices file to check if the requested
speed for the requested line is available. If so,
the connection will be made at the requested
speed; otherwise an error message will be printed
and the call will not be made. The specified dev-
ice 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 which expect terminals to be set
to half-duplex mode.
-t Used to dial an ASCII terminal which has been set
to auto answer. Appropriate mapping of carriage-
return to carriage-return-line-feed pairs is set.
Printed 1/15/91 Page 1
CU(1-SysV) RISC/os Reference Manual CU(1-SysV)
-d Causes diagnostic traces to be printed.
-o Designates that odd parity is to be generated for
data sent to the remote system.
-n For added security, will prompt the user to pro-
vide the telephone number to be dialed rather than
taking it from the command line.
-e Designates that even parity is to be generated for
data sent to the remote system.
telno When using an automatic dialer, the argument is
the telephone number with equal signs for secon-
dary dial tone or minus signs placed appropriately
for delays of 4 seconds.
systemname
A uucp system name may be used rather than a tele-
phone number; in this case, cu will obtain an
appropriate direct line or telephone number from -
/usr/lib/uucp/Systems. Note: the systemname option
should not be used in conjunction with the -l and
-s options as cu will connect to the first avail-
able line for the system name specified, ignoring
the requested line and speed.
After making the connection, cu runs as two processes: the
transmit process reads data from the standard input and,
except for lines beginning with ~, passes it to the remote
system; the receive process accepts data from the remote
system and, except for lines beginning with ~, passes it to
the standard output. Normally, an automatic DC3/DC1 proto-
col is used to control input from the remote so the buffer
is not overrun. Lines beginning with ~ have special mean-
ings.
The transmit process interprets the following user initiated
commands:
~. terminate the conversation.
~! escape to an interactive shell on the local sys-
tem.
~!cmd... run cmd on the local system (via sh -c).
~$cmd... run cmd locally and send its output to the remote
system.
~%cd change the directory on the local system. Note:
~!cd will cause the command to be run by a sub-
Page 2 Printed 1/15/91
CU(1-SysV) RISC/os Reference Manual CU(1-SysV)
shell, 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 local system) to file to on
remote system. If to is omitted, the from argu-
ment 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 (which can
also be specified as ~%b).
~%debug toggles the -d debugging option on or off (which
can also be specified as ~%d).
~t prints the values of the termio structure vari-
ables for the user's terminal (useful for debug-
ging).
~l prints the values of the termio structure vari-
ables for the remote communication line (useful
for debugging).
~%nostop toggles between DC3/DC1 input control protocol and
no input control. This is useful in case the
remote system is one which does not respond prop-
erly to the DC3 and DC1 characters.
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.
The use of ~%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 these
current control characters on the local system. Backslashes
are inserted at appropriate places.
Printed 1/15/91 Page 3
CU(1-SysV) RISC/os Reference Manual CU(1-SysV)
The use of ~%take requires the existence of echo(1) and
cat(1) on the remote system. Also, tabs mode (See stty(1))
should be set on the remote system if tabs are to be copied
without expansion to spaces.
When cu is used on system X to connect to system Y and sub-
sequently used on system Y to connect to system Z, commands
on system Y can be executed by using ~~. Executing a tilde
command reminds the user of the local system uname. For
example, uname can be executed on Z, X, and Y as follows:
uname
Z
~[X]!uname
X
~~[Y]!uname
Y
In general, ~ causes the command to be executed on the ori-
ginal machine, ~~ causes the command to be executed on the
next machine in the chain.
EXAMPLES
To dial a system whose telephone number is 9 201 555 1212
using 1200 baud (where dialtone is expected after the 9):
cu -s1200 9=12015551212
If the speed is not specified, "Any" is the default value.
To login to a system connected by a direct line:
cu -l /dev/ttyXX
or
cu -l ttyXX
To dial a system with the specific line and a specific
speed:
cu -s1200 -l ttyXX
To dial a system using a specific line associated with an
auto dialer:
cu -l culXX 9=12015551212
To use a system name:
cu systemname
Page 4 Printed 1/15/91
CU(1-SysV) RISC/os Reference Manual CU(1-SysV)
FILES
/usr/lib/uucp/Systems
/usr/lib/uucp/Devices
/usr/spool/locks/LCK..(tty-device)
SEE ALSO
cat(1), ct(1), echo(1), stty(1), uucp(1), uname(1).
DIAGNOSTICS
Exit code is zero for normal exit, otherwise, one.
WARNINGS
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 char-
acters 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.
ERRORS
There is an artificial slowing of transmission by cu during
the ~%put operation so that loss of data is unlikely.
Printed 1/15/91 Page 5