Introduction
When people talk about the “command line” on Linux, they often mix up three different concepts: console, terminal, and shell. They interact closely, but they’re not the same thing.
If you’re a casual user, the distinctions do not matter much. But if you use the command line a lot or write scripts, which many average users eventually end up doing, it helps to understand the differences.
When squaring off against the command line, we should have a basic knowledge of what is going on. While the shell, console, and terminal are part of this, there are other concepts that need to be defined. The big ones is the difference between kernel space and user space.
For this discussion we will look at data flow from your hardware (keyboard, mouse, monitor) though the Linux system to user space. In this discussion we will also introduce two acronyms; TTY and PTY.
By the end of this discussion you should understand the differences, and how these various parts work together within the Linux operating system.
Our discussion will focus on;
- Overview of the Linux system from hardware to user space
- the TTY and PTY are
- What the Shell is
- What the console is
- What a Terminal (terminal emulator) is




