cu
PURPOSE
Connects directly or indirectly to another UNIX system.
SYNOPSIS
cu [-s speed][-l line][-h][-t][-d][[-o][-e]][-h]telno
cu [-s speed][-h][-d][[-o][-e]] -l line
cu [-h][-d][[-o][-e]] system name
DESCRIPTION
The Basic Networking Utilities (BNU) command cu connects
one system to another UNIX system, to a terminal con-
nected to a UNIX system, or, if the proper hardware and
software are installed, to a non-UNIX system. The con-
nection can be established over a hard-wired line, or
over a telephone line via a modem.
Once the connection is established, a user can be logged
in on both systems at the same time, executing commands
on either one without dropping the BNU communication
link. If the remote computer is also running under UNIX,
the user can transfer ASCII files between the two
systems.
Note: The system should already be configured to use the
cu command. Refer to Managing the AIX Operating System
for details about this configuration.
After issuing cu from the local system, the user must
press the Enter key (carriage return) and then log in to
the remote system.
After making the connection, cu runs as two concurrent
processes: the transmit process reads data from standard
input and, except for lines beginning with a ~ (tilde),
passes that data to the remote terminal. The receive
process accepts data from the remote system and, except
for lines beginning with a ~, passes it to standard
output. To control input from the remote system so the
buffer is not overrun, cu uses an automatic DC3/DC1
(Ctrl-Q/Ctrl-S) protocol.
In addition to issuing regular AIX commands on the remote
system, the user can also issue special cu &ldq.local
commands,&rdq. which are preceded by a ~. Use these ~
commands to issue AIX commands on the local system and to
perform tasks such as transferring files between two UNIX
systems.
Local ~ Commands
The transmit process interprets lines beginning with a
tilde in the following ways:
~. Logs the user off the remote computer
and terminates the remote connection.
~! Returns the user to an interactive
shell on the local system. Toggle
between the local and remote systems
using ~! (remote to local) and Ctrl-D
(local to remote).
~!cmd... Executes the command denoted by cmd on
the local system via sh -c.
~$cmd... Runs the command denoted by cmd locally
and sends its output to the remote
system for execution.
~%cd Changes the directory on the local
system.
~%take from [ to ]
Copies the from file on the remote
system to the to file on the local
system. If to is omitted, the remote
file is copied to the local system
under the same file name. As each
block of the file is transferred, con-
secutive single digits are displayed on
the terminal screen.
~%put from [ to ] Copies the from file on the local
system to the to file on the remote
system. If to is omitted, the local
file is copied to the remote system
under the same file name. As each
block of the file is transferred, con-
secutive single digits are displayed on
the terminal screen.
~~line Sends the string denoted by ~line to
the remote system.
~%break Transmits a BREAK to the remote system.
The BREAK can also be specified as ~%b.
~%debug Toggles the -debug flag on or off; this
can also be specified as ~%d.
~t Prints the values of the TERMIO struc-
ture variables for the user's terminal.
This is useful for debugging.
~l Prints the values of the TERMIO struc-
ture variables for the remote communi-
cation line. This is 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
that does not respond properly to the
DC3 and DC1 characters.
Note: As soon as the user enters ~!,~%, ~$, ~t, or ~l,
the system displays the name of the local computer in the
a format such as the following:
~[system_name]!/%
The user then enters the command to be executed on the
local computer.
Additional Information
o The receive process normally copies data from the
remote system to the local system's standard output.
Internally, the program accomplishes this by initi-
ating an output diversion to a file when a line from
the remote system begins with ~>.
Data from the remote system is diverted to file on
the local system. The trailing ~> marks the end of
the diversion.
o The use of ~%put requires stty and cat on the remote
system. 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.
o The use of ~%take requires echo and cat on the remote
system. Also, stty tabs mode should be set on the
remote system if tabs are to be copied without expan-
sion to spaces.
o The cu command can be used to connect multiple
systems, and commands can then be executed on any of
the connected systems. For example, issue cu on
system X to connect to system Y, and then issue cu on
system Y to connect to system Z. System X is then
the local computer, and systems Y and Z are remote
computers.
The user can execute commands on system Z by logging
on and issuing the command. Commands can be executed
on system X by prefixing the command with a single
tilde (~cmd), and on system Y by prefixing the
command with two tildes (~~cmd). In general, one
tilde causes the specified command to be executed on
the original local computer, and two tildes cause the
command to be executed on the next system on which cu
was issued.
For example, once the multiple systems are connected,
the user can execute the uname command with the -n
flag (to display the node name) on Z, X, and Y as
follows:
$ uname -n
Z
$ ~!uname -n
X
$ ~~!uname -n
Y
Notes:
1. After executing cu, the user must log in to the
remote system and press Enter (carriage return).
2. The cu command does not do integrity checking on data
it transfers.
3. Data fields with special cu characters may not be
transmitted properly.
4. Depending on the interconnection hardware, it may be
necessary to use a ~. to terminate the conversation
even if the normal logout sequence has been used.
5. There is an artificial slowing of transmission by cu
during the ~%put operation so that loss of data is
unlikely.
6. The exit code is 0 for normal exit, otherwise, -1.
FLAGS
-sspeed Specifies the transmission speed (300,
1200, 2400, 4800, 9600). The default
value is &ldq.Any&rdq. speed, which
instructs the system to use the rate
appropriate for the default (or specified)
transmission line. (The order of the
transmission lines is specified in the
/usr/adm/uucp/Devices file.) Most modems
operate at 300, 1200, or 2400 baud, while
most hard-wired lines are set to 1200 baud
or higher.
-lline Specifies a device name to use as the com-
munication line. This can be used to
override the search that would otherwise
take place for the first available line
with the right speed. When the -l flag is
used without the -s flag, the speed of a
line is taken from the
/usr/adm/uucp/Devices file.
When the -l and -s flags are used
together, cu searches the
/usr/adm/uucp/Devices file to check
whether the requested speed is available
for the specified line. If so, the con-
nection is made at the requested speed;
otherwise, an error message is printed,
and the call is not made.
The specified device is generally a hard-
wired asynchronous line (for example,
/dev/tty2), in which case a telephone
number (telno) is not required. If the
specified device is associated with a
modem, a telephone number must be pro-
vided. Using this flag with system_name
rather than with telno does not give the
desired result (see system_name, below).
Note: Under ordinary circumstances, the
user should not have to specify the trans-
mission speed, or a line/device. The
defaults set when BNU is installed should
be sufficient. Refer to Managing the AIX
Operating System for information about
setting defaults.
-h Emulates local echo, supporting calls to
other systems that expect terminals to be
set to half-duplex mode.
-t Used to dial an ASCII terminal that has
been set to auto answer. Appropriate
mapping of carriage-return to carriage-
return line-feed pairs is set.
-d Prints diagnostic traces.
-o Designates that odd parity is to be gener-
ated for data sent to the remote system.
-e Designates that even parity is to be gen-
erated for data sent to the remote system.
-n For added security, prompts the user to
provide the telephone number to be dialed,
rather than taking it from the command
line.
telno When using a modem, the argument is the
telephone number, with appropriately
placed equal signs for secondary dial
tones, or minus signs for delays of 4
seconds.
system_name A uucp system name can be used rather than
a telephone number; in that case, cu
obtains an appropriate hard-wired line or
telephone number from
/usr/adm/uucp/Systems.
Note: Do not use the system_name flag in
conjunction with the -l and -s flags. If
you do, cu connects to the first available
line for the requested system name,
ignoring the specified line and speed.
EXAMPLES
1. To connect to a remote system using a system name:
cu hera
2. To dial a remote system whose telephone number is
1-201-555-1212, where dialing 9 is required to get an
outside dial tone and the baud rate is 1200:
cu -s 1200 9=12015551212
If the speed is not specified, &ldq.Any&rdq. is the
default value.
3. To log in to a system connected by a hard-wired line:
cu -l /dev/tty2
or
cu -l tty2
4. To dial a remote system with the specified line and a
specific speed:
cu -s 1200 -l tty3
5. To dial a remote system using a specific line associ-
ated with a modem:
cu -l cul4 9=12015551212
6. To copy a file from the local system to the remote
system (after logging in to the remote system):
~%put /u/amy/file
or
~%put /u/amy/file /u/amy/tmpfile
FILES
/etc/locks/LCK..(tty-device) Prevents multiple use of
device.
/usr/adm/uucp/Devices Information about avail-
able links.
/usr/adm/uucp/Dialcodes Dialing code abbrevi-
ations.
/usr/adm/uucp/Dialers Initial handshaking on a
link.
/usr/adm/uucp/Permissions Access permission codes.
/usr/adm/uucp/Systems Accessible remote
systems.
RELATED INFORMATION
The following commands: "cat," "ct," "echo," "stty,"
"uuname," and "uucp."