tty is a simple command line interface program where keystrokes are collected and interpreted. Completed lines are sent to the shell for interpretation. There is a simple history mechanism, which saves previous lines. These can be edited before sending them to the shell. tty is started when Erlang is started with the command:

erl

tty operates in one of two modes:

normal mode, in which lines of text can be edited and sent to the shell.

shell break mode, which allows the user to kill the current shell, start multiple shells etc. Shell break mode is started by typing Control G.

## Normal Mode

In normal mode keystrokes from the user are collected and interpreted by tty. Most of the emacs line editing commands are supported. The following is a complete list of the supported line editing commands.

Note: The notation C-a means pressing the control key and the letter a simultaneously. M-f means pressing the ESC key followed by the letter f. Home and End represent the keys with the same name on the keyboard, whereas Left and Right represent the corresponding arrow keys.

Key Sequence Function
Home Beginning of line
C-a Beginning of line
C-b Backward character
C-Left Backward word
M-b Backward word
C-d Delete character
M-d Delete word
End End of line
C-e End of line
C-f Forward character
C-Right Forward word
M-f Forward word
C-g Enter shell break mode
C-k Kill line
C-u Backward kill line
C-l Redraw line
C-n Fetch next line from the history buffer
C-p Fetch previous line from the history buffer
C-t Transpose characters
C-w Backward kill word
C-y Insert previously killed text
tty text editing

## Shell Break Mode

tty enters shell break mode when you type Control G. In this mode you can:

Kill or suspend the current shell

Connect to a suspended shell

Start a new shell