DEV Community

Cover image for Unlocking the Command Line: Episode 1 - Exploring Origins
Emmanuel John Ayarma
Emmanuel John Ayarma

Posted on • Edited on

Unlocking the Command Line: Episode 1 - Exploring Origins

When it comes to computer interaction, you have two primary avenues: the widely-used Graphical User Interface (GUI) and the less-frequented Command Line Interface (CLI).
GUI allows users to navigate a computer system by clicking buttons, widgets, or icons on a visual screen. In contrast, CLI offers a different experience, relying solely on keyboard commands. Imagine a plain screen with text instead of visually appealing icons – no mouse or touchpad, just your keyboard to send commands.
But why opt for this seemingly less user-friendly approach? To answer that, let's step back in time. In an era when computers were not as ubiquitous, mainframe computers were stationed in institutions like universities. Users across different parts of the campus connected to these mainframes using setups comprising only a keyboard and a monitor – essentially, a "terminal."

Despite the availability of monitors, CLI was the dominant mode of interaction. Early computers lacked the resources for a GUI due to limited RAM and processing power. This meant users had to acquaint themselves with a set of commands. The CLI was particularly adept at tasks such as sending emails, web surfing, server configuration, and system administration.
During those times, major operating systems like Linux and UNIX primarily used CLI. Today's OSes like Windows and macOS default to GUI, but they still provide a CLI option through a program called a terminal emulator. This software recreates the terminal experience, offering a rectangular window with a prompt, allowing users, especially developers and system administrators, to be more productive with specific tasks compared to GUI.

Diagram depicting how OS Kernel interacts with a terminal emulator through the shell. The diagram uses concentric circles where the shell wraps around the kernel. The shell is then wrapped by the terminal emulator

When commands are entered in the CLI, they are directed to a program called a shell, which wraps around the kernel – the actual operating system. In the GUI, users interact with visual elements, while in the CLI, users communicate with the kernel through the shell. Some use "shell" and "terminal" interchangeably. The key difference lies in the user's role: in GUI, users are told what to do by the available widgets; in CLI, users tell the computer what to do directly, utilising a set of commands that integrate tightly with the OS.

While GUI has its moments, our focus here is the CLI – its origin, importance, how it works, and what it can do. This exploration into the command line isn't just a summary; it's a starting point. Stay tuned for more insights into advanced techniques and the vast capabilities of the command line in upcoming episodes. Happy navigating!

Top comments (0)