With the release of Windows Terminal 1.0, a very nice, adaptable tool is now publicly available and available to everyone. In the version in which the Windows Terminal is shipped, the layout is still very expandable, and I would like to show you in the course of this series how to change this. But first of all, a classification of what a terminal is exactly.
Terminal != Console != Shell
console and terminal are closely connected, historically the terminal is a device with which the console can be operated. In the early days of Unix, this meant a teleprinter-style device that resembled a typewriter, sometimes referred to as a teletypewriter, or "tty" for short. The name "Terminal" came from an electronic point of view and the name "console" came from the point of view of the furniture. Very early in Unix history, electronic keyboards and displays became the norm for terminals.
In Unix terminology, a terminal is a specific type of device file that implements a set of additional commands (ioctls) that go beyond reading and writing. Some terminals are provided by the kernel on behalf of a hardware device, such as typing from the keyboard and output to a text mode screen, or with input and output over a serial line. Other terminals, sometimes called pseudo-terminals or pseudo-ttys, are provided (via a thin kernel layer) by programs called terminal emulators. Some types of terminal emulators include:
- GUI applications running in the X Window system: Xterm, Gnome Terminal, Console, Terminator, and
- Screen and tmux provide an isolation layer between one program and another terminal
- SSH that connects a terminal on one computer to programs on another computer
The word terminal can also have a more traditional meaning of a device that interacts with a computer, typically with a keyboard and display. For example, an X terminal is a kind of thin client, a specialty computer whose sole purpose is to control a keyboard, display, mouse, and occasionally other peripherals for human interaction, running the actual applications on another, more powerful computer.
A console is generally a terminal in the physical sense, which by definition is the primary terminal that is directly connected to a machine. The console appears to the operating system as a terminal (implemented by the kernel). On some systems, such as Linux and FreeBSD, the console appears as multiple terminals (ttys) (special keyboard shortcuts switch between these terminals). To confuse matters, the name given to each particular terminal can be "console," "virtual console," "virtual terminal," and other variations.
A command line is an interface, in which the user enters a command (expressed as a sequence of characters - usually a command name, followed by some parameters) and presses Enter to execute this command.
A shell is the primary interface that users see when they log on and whose primary purpose is to start other programs.
Terminal - Text Input / Output Environment
Console - Physical terminal (e.g. video game console like a Super Nintendo)
Shell - Command line interpreter or an application to execute commands. (For example, Bash, zsh, Powershell, etc.)
Command line - An interface through which the user enters a command.
In Part 2, I'll go into the Windows Terminal.