9  tty - A Command-Line Interface

9 tty - A Command-Line Interface

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

erl

tty operates in one of two modes:

  • Normal mode, in which text lines can be edited and sent to the shell.

  • Shell break mode, which allows the user to kill the current shell, start multiple shells, and so on.

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.

Typographic conventions:

  • C-a means pressing the Ctrl key and the letter a simultaneously.
  • M-f means pressing the Esc key and the letter f in sequence or pressing the Alt key and the letter f simultaneously.
  • Home and End represent the keys with the same name on the keyboard.
  • 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 Clears the screen
M-l Redraw line
C-n Fetch next line from the history buffer
C-o Edit the current line using the editor specified in the environment variable VISUAL or EDITOR. The environment variables can contain arguments to the editor if needed, for example VISUAL="emacs -nw". On Windows the editor cannot be a console based editor.
C-p Fetch previous line from the history buffer
C-r Search the shell history
C-t Transpose characters
C-w Backward kill word
C-y Insert previously killed text
C-] Insert matching closing bracket

Table 9.1:   tty Text Editing

In this mode the following can be done:

  • Kill or suspend the current shell
  • Connect to a suspended shell
  • Start a new shell