Connects directly or indirectly to another system.
cu [ -d ] [ -h ] [ -m ] [ -TSeconds ] [ -n ] [ -sSpeed ] [ -t ] [ -e | -o ] TelephoneNumber
cu [ -d ] [ -h ] [ -m ] [ -TSeconds ] [ -sSpeed ] [ -e | -o ] -lLine
cu [ -d ] [ -h ] [ -m ] [ -TSeconds ] [ -e | -o ] SystemName
The cu command is a Basic Networking Utilities (BNU) command that connects one system to a terminal connected to either a UNIX or non-UNIX system. The connection can be established over a hardwired line or over a telephone line using 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.
After issuing the cu command from the local system, the user must press the Enter key and then log in to the remote system. After making the connection, the cu command 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. Internally, the program accomplishes this by initiating an output diversion to a file on the local system when a line from the remote system begins with ~> (tilde, greater than). The trailing ~> marks the end of the diversion. To control input from the remote system so the buffer is not overrun, the cu command uses an automatic DC3/DC1 (Ctrl-Q/Ctrl-S) protocol.
The cu command can be used to connect multiple systems, and commands can then be executed on any of the connected systems. For example, the user can issue the cu command on system X to connect to system Y, and then issue the cu command 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 in and issuing the command. Commands can be executed on system X by prefixing the command with a single tilde (~Command) and on system Y by prefixing the command with two tildes (~~Command). 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 the cu command was issued.
For example, once the multiple systems are connected, the user can execute the uname -n command (to display the node name) on systems Z, X, and Y as follows:
$ uname -n Z $ ~!uname -n X $ ~~!uname -n Y
- The cu command does not do integrity checking on data it transfers.
- Data fields with special cu characters may not be transmitted properly.
- The exit code is 0 for normal exit, otherwise, -1.
In addition to issuing regular commands on the remote system, the user can issue special cu command subcommands, which are preceded by a ~ (tilde). Use these subcommands to issue commands on the local system and to perform tasks such as transferring files between two UNIX systems. As soon as the user enters the ~!, ~$, ~%, ~l, or ~t subcommand, the system displays the name of the local computer in a format similar to the following:
The user then enters the subcommand to be executed on the local computer.
|-d||Prints diagnostic traces.|
|-e||Designates that even parity is to be generated for data sent to the remote system.|
|-h||Emulates local echo, supporting calls to other systems that expect terminals to be set to half-duplex mode.|
|-lLine||Specifies the name of a device to be used as the line of communication
between the local and the remote system. 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 the Line is
taken from the Devices file(s) (by default, the
When the -l and -s flags are used together, the cu command searches the Devices file(s) to check whether the requested speed is available for the specified line. 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 generally a hardwired asynchronous line (for example, /dev/tty2), in which case the TelephoneNumber parameter is not required. If the specified device is associated with a modem, a telephone number must be provided. Using this flag with the SystemName parameter rather than with TelephoneNumber parameter does not give the desired result.
|-m||Instructs the cu command to ignore modem control signal data carrier detect (DCD).|
|-n||For added security, prompts the user to provide the telephone number to be dialed, rather than taking it from the command line.|
|-o||Designates that odd parity is to be generated for data sent to the remote system.|
|-sSpeed||Specifies the rate at which data is transmitted to the remote system (300, 1200, 2400, 4800, 9600, or 19200 baud).The default value is Any 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 BNU Devices file(s) (by default, the /etc/uucp/Devices file). Most modems operate at 300, 1200, or 2400 baud, while most hardwired lines are set to 1200 baud or higher. When transferring data such as a file between a local and a remote system, a speed of 300 baud may occasionally be needed. The lower baud rate results in less interference on the line.|
|-t||Used to dial an ASCII terminal that has been set to autoanswer. Appropriate mapping of carriage-return to carriage-return line feed pairs is set.|
|-TSeconds||Specifies the maximum number of seconds to wait before timing out.
The default is 45 seconds.
Note: You can also enter WAIT=n before any send string in the Dialers file. Where n is the number of seconds to wait before timing out.
|SystemName||The name of the remote system, recognized by BNU, with which a connection
is established. A system name can be used rather than a telephone
number; in that case, the cu command obtains an appropriate
hardwired line or telephone number from the BNU Systems file(s) (by
default, the /etc/uucp/Systems
file). System names must be ASCII characters only.
|TelephoneNumber||The telephone number used to establish a remote connection using a modem. This entry can be either a local or a long-distance telephone number.|
The cu command transmit
process interprets lines beginning with a ~ (tilde) in the
|~!||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).|
|~%break||Transmits a break sequence to the remote system. The break can also be specified as ~%b.|
|~%cd DirectoryName||Changes the directory on the local system from the current directory to the directory specified by the DirectoryName variable.|
|~%debug||Toggles the -debug flag on or off; this can also be specified as ~%d.|
|~%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.|
|~%put From [ To ]||Copies the From file on the local system to the To
file on the remote system. If the To variable is omitted,
the local file is copied to the remote system under the same file name.
As each block of the file is transferred, consecutive single digits are
displayed on the terminal screen. Only ASCII files can be transferred
using this subcommand.
The use of the ~%put subcommand requires the stty command and the cat command 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 in the transmitted data. There is an artificial slowing of transmission by the cu command during the ~%put operation so that loss of data is unlikely.
|~%take From [ To ]||Copies the From file on the remote system to the To file on the local system. If the To variable is omitted, the remote file is copied to the local system under the same file name. As each block of the file is transferred, consecutive single digits are displayed on the terminal screen. Only ASCII files can be transferred using this subcommand. The use of the ~%take subcommand requires the echo command and the cat command on the remote system. Also, stty tabs mode should be set on the remote system if tabs are to be copied without expansion to spaces.|
|~.||Logs the user off the remote computer and then terminates the remote connection. Usually the connection terminates when you log off the remote computer. However, with some types of interconnection hardware, it may be necessary to use a ~. to terminate the conversation after the normal logoff sequence has been used.|
|~!Command||Executes, on the local system, the command denoted by the Command variable.|
|~$Command||Runs, on the local system, the command denoted by the Command variable, then sends the command's output to the remote system for execution.|
|~l||Prints the values of the TERMIO structure variables for the remote communication line. This is useful for debugging.|
|~t||Prints the values of the TERMIO structure variables for the user's terminal. This is useful for debugging.|
|~~String||Sends the string denoted by the String variable to the remote system.|
The following are examples of connecting to a remote system.
In this example, you are connected to the remote system venus. System venus must be listed in one of the local Systems files (by default, the /etc/uucp/Systems file or one of the Systems files listed for the cu command in the /etc/uucp/Sysfiles file).
|/etc/locks||Prevents multiple use of device.|
|/usr/bin/cu||Specifies the path name of the cu command.|
|/bin/cu||Specifies a symbolic link to the /usr/bin/cu command.|
|/etc/uucp/Devices||Contains information about available links.|
|/etc/uucp/Dialcodes||Contains dialing code abbreviations.|
|/etc/uucp/Dialers||Controls initial handshaking on a link.|
|/etc/uucp/Permissions||Contains access permission codes.|
|/etc/uucp/Systems||Lists accessible remote systems.|
|/etc/uucp/Sysfiles||Specifies alternate files to be used as Systems, Devices, and Dialers files.|
The cat command, ct command, echo command, rmail command, stty command, uname command, uucp command, uuname command, uupick command, uustat command, uuto command, uux command.