cu - call another (UNIX) system; terminal emulator
cu [-s speed] [-l line] [-h] [-q] [-t] [-d level] [-e|-o] [-m] [-n]
cu [-s speed] [-l line] [-h] [-q] [-t] [-d] [-e|-o] [-m] [-n]
cu calls up another system, which is usually a UNIX operating system,
but can be a terminal or a non-UNIX operating system. cu manages all
interaction between systems, including possible transfers of ASCII
cu recognizes the following options and command-line arguments:
-sspeed Specify the transmission speed (110, 150, 300,
600, 1200, 2400, 3600, 4800, 7200, 9600, 19200).
The default value is 300.
-lline Specify a device name to use as the communication
line. This can be used to override searching 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 obtained from file
/etc/uucp/Devices. When the -l and -s options are
used simultaneously, cu searches /etc/uucp/Devices
to determine whether the requested speed for the
requested line is available. If so, the
connection is made at the requested speed;
otherwise, an error message is printed and the
call is not made. The specified device is usually
a directly connected asynchronous line (such as
/dev/ttyapb). In this case, a telephone number is
not required, but the string dir can be used to
specify that a dialer is not required. If the
specified device is associated with an auto-
dialer, a telephone number must be provided.
-h Emulate local echo, supporting calls to other
computer systems that expect terminals to be set
to half-duplex mode.
-q Use ENQ/ACK handshake (remote system sends ENQ, cu
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
-t Used when dialing an ASCII terminal that has been
set to auto-answer. Appropriate mapping of
carriage-return to carriage-return-line-feed pairs
-dlevel Print diagnostic traces. level is a number from
0-9, where higher levels produce more detail in
the diagnostic messages.
-d (XPG4 only.) Print diagnostic traces. The level is
-e (-o) Generate even (odd) parity for data sent to the
-m Specify a direct line that has modem controls.
Modem controls are ignored by cu.
-n Cause the telephone number that cu dials to be
requested interactively from the user rather than
taking it from the command line.
telno When using an automatic dialer, telno is the
telephone number, with equal signs for secondary
dial tone or minus signs for delays appropriately
placed in the telno string.
systemname A UUCP system name can be used instead of a
telephone number (see uucp(1)); in this case, cu
obtains an appropriate direct line or telephone
number from /etc/uucp/Systems (including
appropriate baud rate). cu dials each telephone
number or direct line for systemname in the
Systems file until a connection is made or all the
entries are tried.
dir Using dir ensures that cu uses the line specified
by the -l option.
After making the connection, cu runs as two processes:
+ transmit process reads data from the standard input and,
except for lines beginning with ~, passes it to the remote
+ receive process accepts data from the remote system and,
except for lines beginning with ~, passes it to the standard
Normally, an automatic DC3/DC1 protocol is used to control input from
the remote to ensure that the buffer is not overrun. "Prompt
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
handshaking" can be used to control transfer of ASCII files to systems
that have no type-ahead capability but require data to be sent only
after a prompt is given. This is described in detail below. Lines
beginning with ~ have special meanings.
Transmit Process Commands
The transmit process interprets the following commands:
~., ~.. Terminate the conversation. On hard-wired lines,
~. sends several EOF characters to log out the
session, whereas ~.. suppresses the EOF sequence.
In general the remote hard-wired machine is
unaware of the disconnect if ~.. is used. On
dial-up connections, ~. and ~.. do not differ.
~! Escape to an interactive shell on the local
~!cmd ... Run cmd on the local system (via sh -c).
~&&&& Similar to ~! but kill the receive process,
restarting it upon return from the shell. This is
useful for invoking sub-processes that read from
the communication line where the receive process
would otherwise compete for input.
~&&&&cmd ... Run cmd on the local system (via sh -c) and kill
the receive process, restarting it later.
~|cmd Pipe incoming data from the remote system through
the standard input to cmd on the local system. To
terminate, reset with either a ~&&&& or ~| command.
~| Resets the receive process following a ~|cmd
~$cmd ... Run cmd locally and send its output to the remote
~%cd Change the directory on the local system. Note:
~!cd causes the command to be run by a sub-shell,
causing a return to the current directory upon
~%take remote_source_file [local_destination_file]
Copy file remote_source_file from the remote
system to file local_destination_file on the local
system. If local_destination_file is not
specified, the remote_source_file argument is used
in both places.
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000
~%put local_source_file [remote_destination_file]
Copy file local_source_file on local system to
file remote_destination_file on remote system. If
remote_destination_file is not specified, the
local_source_file argument is used in both places.
~~ ... Send the line ~ ... to the remote system. If you
use cu on the remote system to access a third
remote system, send ~~. to cause the second remote
cu to exit.
~%break Transmit a BREAK to the remote system.
~%nostop Toggle between DC3/DC1 input control protocol and
no input control. This is useful if the remote
system does not respond properly to the DC3 and
~%<<<<file Send the contents of the local file to the remote
system using prompt handshaking. The specified
file is read one line at a time, and each line is
sent to the remote system when the prompt sequence
is received. If no prompt is received by the time
the prompt timeout occurs, the line is sent
anyway. If the timeout is set to 0 seconds, or if
the first character in the prompt sequence is a
null character (^@), the handshake always appears
to be satisfied immediately, regardless of whether
or not the remote system generates a prompt. This
capability is intended mainly to facilitate
transfer of ASCII files from HP-UX to an HP 3000
system running MPE. This is usually accomplished
by running the MPE FCOPY utility and giving the
command from=;to=destfile;new and then running the
cu input diversion to send the file to FCOPY which
saves it in destfile. This facility might be
useful with other systems also, such as an HP 1000
~%setpt n Specify the number of seconds to wait for a prompt
before giving up. The default is 2 seconds.
Specifying a timeout of 0 seconds disables
handshaking; that is, handshake appears to
~%setps xy Set the handshake prompt to the characters xy.
The default is DC1. The prompt can be any one or
two characters. To specify a control character
for x or y, use the Ctrl-X form where a circumflex
(ASCII 94) precedes the character, as in ^X. A
null character can be specified with ^@. (A null
Hewlett-Packard Company - 4 - HP-UX Release 11i: November 2000
first character in the prompt implies a "null"
prompt, which always appears to be satisfied.) A
circumflex is specified by ^^.
~%>>>>[>>>>]file Divert output from the remote system to the
specified file until another ~%>>>> command is given.
When an output diversion is active, typing ~%>>>>
terminates it, whereas ~%>>>> anotherfile terminates
it and begins a new one. The output diversion
remains active through a ~&&&& subshell, but
unpredictable results can occur if input/output
diversions are intermixed with ~%take or ~%put.
The ~%>>>>>>>> command appends to the named file. Note
that these commands, which are interpreted by the
transmit process, are unrelated to the ~>>>> commands
described below, which are interpreted by the
~susp Suspend the cu session. susp is the suspend
character set in the terminal when cu was invoked
(usually ^Z - see stty(1)). As in all other lines
starting with tilde, a ~susp line must be
terminated by pressing Return.
The receive process normally copies data from the remote system to its
standard output. A line from the remote that begins with ~>>>> initiates
an output diversion to a file. The complete sequence is:
zero or more lines to be written to file
Data from the remote is diverted (or appended, if >>>>>>>> is used) to file.
The trailing ~>>>> terminates 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 the current ones on the local system.
Backslashes are inserted at appropriate places.
The use of ~%take requires that the remote system support the echo and
cat commands (see echo(1) and cat(1). Also, stty tabs mode should be
set on the remote system if tabs are being copied without expansion.
When connecting to a machine that uses the eighth bit as a parity bit,
stty istrip mode should be set on the local system.
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 if ~~ is used. For example, using the keyboard on system X,
uname can be executed on Z, X, and Y as follows where lines 1, 3, and
Hewlett-Packard Company - 5 - HP-UX Release 11i: November 2000
5 are keyboard commands, and lines 2, 4, and 6 are system responses:
In general, ~ causes the command to be executed on the original
machine; ~~ causes the command to be executed on the next machine in
LANG determines the language in which messages are displayed.
If LANG is not specified or is set to the empty string, a default of
"C" (see lang(5)) is used instead of LANG. If any
internationalization variable contains an invalid setting, cu behaves
as if all internationalization variables are set to "C". See
International Code Set Support
Single- and multi-byte character code sets are supported.
Exit code is zero for normal exit; non-zero (various values)
To dial a system whose number is 9 201 555 1212 using 1200 baud:
cu -s1200 9=2015551212
If the speed is not specified, 300 is the default value.
To log in on a system connected by a direct line:
cu -l/dev/ttyXpX dir
To dial a system with the specific line and a specific speed:
cu -s1200 -l/dev/ttyXpX dir
To dial a system using a specific line:
cu -l/dev/culXpX 2015551212
To use a system name (yyyzzz):
Hewlett-Packard Company - 6 - HP-UX Release 11i: November 2000
To connect directly to a modem:
cu -l/dev/culXX -m dir cu -l/dev/cu1XX -m dir
cu buffers input internally.
cu was developed by AT&T and HP.
cat(1), ct(1), echo(1), stty(1), uname(1), uucp(1), uuname(1).
cu: SVID2, SVID3, XPG2, XPG3, XPG4
Hewlett-Packard Company - 7 - HP-UX Release 11i: November 2000