Text terminals only understand characters, not keys. So special keys like Tab, Backspace, Enter and so on have to be encoded in terms of characters. The ASCII character set, which all modern character sets are based on, reserves a space for control characters. One such character is Tab. Because it is character number 9, and
I is letter number 9, pressing Ctrl+I is equivalent to pressing Tab in a text terminal.
You can see what character or character sequence a key sends by doing the following in a shell:
- Start typing
echo -n ' at the prompt.
- Press Ctrl+V, which tells the shell that you really want to enter the next character and not have it treated as an edition command.
- Press the key (or key combination like Shift+Tab) you want information about.
| hexdump -C and press Return.
You'll see a printout of the byte(s) sent by the key in hexadecimal. Bytes 00 to 1f are control characters (
^x is a common notation for the control character obtained by pressing Ctrl+x).