termnet(1) Simple Telnet replacement


termnet [ options ] [ host/port ] [ chat-sequences ]


This man page documents the termnet program. This command is a simple telnet replacement. It does not implement for the complete telnet protocol, but does provide a few nifty features of it's own. Especially when used with the termnetd terminal server daemon.

The following features are available:

Telnet compatible (it can used to connect to telnetd).
Live setting of a device's baud rate and port configuration when connected to the termnetd terminal server daemon.
Simple scripting using chat-like sequences.


Emulate 7 bit even parity data. This will calculate an even parity bit on the least significant 7 bits of each outgoing character and append it to the charater. It will also strip the 8th (MSb) bit from the incomming data before displaying it.
-b baud-rate
Sets the initial baud-rate of the device.
Do not drop the connection after running the chat sequences either presented on the command line or performed through the -f option.
Provide local echoing of the characters entered from the keyboard.
-f script-file
Run through the script specified by script-file.
-o out-file
Sends all output to the file specified.
-p port-settings
Configures the port as specified by port settings. See the PORT command below for further information.


Commands may be given from within a script or by entering the command line mode using the escape character which is presently set to '^]'. At this time, unlike with Telnet, the escape character cannot be changed.

The following commands are available:

$ [unix-command]
Executes the unix-command it's stdio redirected to the socket. Sadly, this does not run programs like sz and rz, though it is handily for down-loading ASCII files or the like. A space must be present between the $ and the command.
! [unix-command]
Executes the unix-command and sends it's output to the output file (normally stdout). A space must be present between the ! and the command.
BAUD [baudrate]
If baudrate is present, the baud rate of the port is set to that. Otherwise the current baudrate of the port is displayed. The following baudrates are accepted:


Accepted by Linux Only:


CHAT chat-file
This command executes the chat-file specified. See the section CHAT Scripts for further information.
Displays the name of the physical device that is connected.
ECHO [string]
Echoes string to the output.
Turns the local echoing of characters input from the keyboard on or off.
Closes the connection and exits the program.
PAUSE secs
Causes the interpretation of commands to be paused for secs seconds. Most useful in chat scripts.
PORT [port-settings]
If port-settings is present, the port will be configured to them. Otherwise, the current settings will be displayed. The settings are specified by a string of one or more of the following concatenated together with no intervening spaces:

8 8 Bits / Character
7 7 Bits / Character
6 6 Bits / Character
5 5 Bits / Character
N No Parity
E Even Parity
O Odd Parity
C0 No H/W Flow Control
C1 H/W Flow Control
S0 No S/W Flow Control
S1 S/W Flow Control


The chat scripts are composed of a sequence of send strings followed by expect strings. The program will first send a string then wait for the expected string to be received. Commands my be injected into the sequence at any point be surrounding the entire command with '`' quotes. The biggest weakness is that there are no time limits on how long the program will wait for the expected string. Fortunately the keyboard is fully active while they are being executed.


The following is an example of a chat script. In practice I keep this script in the file /usr/lib/ppp/connect-work. It logs me into my computer as a special user that sets my computer to call me back to establish a PPP link between my computer at home and my computer at work.

"et\r" "assword"
"MyPassword\r" "+++"
"+++" "OK"
"ath0\r" "OK"

This simple script dials out the number, then waits for 'ogin' then logs in as the user 'et' giving the required password when requested. At that point it waits to see a '+++' from the login script, and forces the modem to go into the command mode with the '+++' and hangs it up with the 'ath0' command.

Though the quotes are not required, I find they make the scripts much easier to read. Also, if the script is on the command line, you have to be mindful of the substitutions that may occur from the shell.


Joe Croft <[email protected]>