CU(C) XENIX System V CU(C)
Name
cu - Call another /UNIX system.
Syntax
cu [-sspeed] [-lline] [-h] [-t] [-xn] [-o|-e|-oe] [-n] telno
cu [ -s speed ] [ -h ] [ -xn ] [ [-o|-e|-oe] -l line [ dir ]
cu [-h] [-xn] [-o|-e|-oe] systemname
Description
cu calls up another 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 (150, 300, 600,
1200, 2400, 4800, 9600, 19200, 38400). The
default value is "Any" speed which will depend
on the order of the lines in the
/usr/lib/uucp/Devices file. A speed range can
also be specified (for example, -s1200-4800).
-lline Specifies a device name to use as the
communication 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 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 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
Page 1 (printed 2/7/91)
CU(C) XENIX System V CU(C)
pairs is set.
-xn Causes diagnostic traces to be printed; it
produces a detailed output of the program
execution on stderr. The debugging level, n, is
a single digit; -x9 is the most useful value.
-n For added security, will prompt the user to
provide the telephone number to be dialed rather
than taking it from the command line.
telno When using an automatic dialer, the argument is
the telephone number with equal signs for
secondary dial tone or minus signs placed
appropriately for delays of 4 seconds.
systemname A UUCP system name may be used rather than a
telephone 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 available line for the system name
specified, ignoring the requested line and
speed.
dir The keyword dir can be used with cu-lline, in
order to talk directly to a modem on that line,
instead of talking to another system via that
modem. This can be useful when debugging or
checking modem operation. Note: only users
with write access to the Devices file are
permitted to use cu-lline dir.
In addition, cu uses the following options to determine
communications settings:
-o If the remote system expects or sends 7-bit with odd
parity.
-e If the remote system expects or sends 7-bit with even
parity.
-oe If the remote system expects or sends 7-bit, ignoring
parity and sends 7-bit with either parity.
By default, cu expects and sends 8-bit characters without
parity. If the login prompt received appears to contain
incorrect 8-bit characters, or a correct login is rejected,
use the 7-bit options described above.
After making the connection, cu runs as two processes: the
Page 2 (printed 2/7/91)
CU(C) XENIX System V CU(C)
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 XON/XOFF
protocol is used to control input from the remote so the
buffer is not overrun. Lines beginning with ~ have special
meanings.
The transmit process interprets the following user initiated
commands:
~. terminate the conversation.
~! escape to an interactive shell on the
local system.
~!cmd... run cmd on the local system (via sh -c).
~$cmd... run cmd locally and send its output to
the remote system.
~+cmd... runs cmd on the local system (via sh
-c), with both standard input and
standard output of cmd redirected to the
remote system.
~%cd change the directory on the local
system. Note: ~!cd will cause the
command to be run by a sub-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 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
(which can also be specified as ~%b).
Page 3 (printed 2/7/91)
CU(C) XENIX System V CU(C)
~%debug toggles the -x debugging level between 0
and 9 (which can also be specified as
~%d).
~t prints the values of the termio
structure variables for the user's
terminal (useful for debugging).
~l prints the values of the termio
structure variables for the remote
communication line (useful for
debugging).
~%nostop toggles between XON/XOFF input control
protocol and no input control. This is
useful in case the remote system is one
which does not respond properly 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(C) and cat(C) 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.
The use of ~%take requires the existence of echo(S) and
cat(C) on the remote system. Also, tabs mode (See stty(C))
should be set on the remote system if tabs are to be copied
without expansion to spaces. These commands must be
executed at a shell prompt on the remote system.
When cu is used on system1 to connect to system2 and
subsequently used on system2 to connect to system3, commands
on system2 can be executed by using ~~. Executing a tilde
command reminds the user of the local system uname. For
example, uname can be executed on systems 1, 2, and 3 as
follows:
uname
system3
~system1!uname
system1
~~system2!uname
system2
Page 4 (printed 2/7/91)
CU(C) XENIX System V CU(C)
In general, ~ causes the command to be executed on the
original 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 ttyXX 9=12015551212
To use a system name:
cu systemname
To talk directly to an ACU (connect directly with the modem
and enter modem commands manually):
cu-lttyXX dir
Files
/usr/lib/uucp/Systems
/usr/lib/uucp/Devices
/usr/lib/uucp/LCK..(tty-device)
See Also
cat(C), ct(C), echo(S), stty(C), uucp(C), uname(C)
Diagnostics
Exit code is zero for normal exit, otherwise, one.
Page 5 (printed 2/7/91)
CU(C) XENIX System V CU(C)
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
characters are not dependably transmitted using either the
~%put or ~%take commands.
Notes
There is an artificial slowing of transmission by cu during
the ~%put operation so that loss of data is unlikely.
Page 6 (printed 2/7/91)