Linux Shell & Terminal

From wikinotes

Linux is designed to be administered from a shell (an interactive prompt). A shell is displayed to the user using a TTY (non-graphical), or a terminal-emulator(window with prompt).


Your shell is the language your command-prompt uses to interpret commands. There are plenty of options bash, zsh, ksh, csh, sh ... etc.

set user shell

User information, along with their shell of choice is recorded in /etc/passwd.

You can change your shell using chsh. If you do not want a user to be allowed to login, you can use the special /sbin/nologin shell which is used by system users and allows commands to be run, but prohibits users from logging in.


Terminals are windows used within graphical environments to present a console to a user. Terminal configuration varies widely between terminals.

Most distrobutions will have xterm, I also like suckless-st which is simple and can be compiled nearly anywhere.

You may also want to modify the repeat key frequency.

## ~/.xprofile

# keyboard repeat rate: delay 200 milisecond, 80 per sec
xset r rate 200 80


Before you start an Xorg server, when text is loading full screen that is a TTY.

You generally have about 7 TTYs, you can switch between them using Ctrl + Alt + F1-9. It's useful to fall back on this if you are having issues with your video drivers, or your Xorg server.

For more details see tty