The command line

The stack

Shell (CLI) compilers, editors, etc. ls, mv, cp, grep, etc. GUI Chrome, VSCode, etc. System libraries System call interface Kernel (Process management, Virtual memory, File system, Networking) Device drivers CPU RAM Other hardware

The top of the stack is where the user interface lives.

Two kinds of user interface

GUI (graphical user interface), a.k.a. point-and-click, a.k.a. WIMP (windows, icons, menus, and pointers)

CLI (command line interface), a.k.a. command line, a.k.a. text based interface.

Yeah, these days we can talk to our computers and gesture at our VR headsets. But GUIs and command lines are still 99% of how we interact with desktop computers.

Pros and cons

GUIs - discoverable, don’t need to type. But limited number of gestures.

CLI - efficient and flexible. But a steeper learning curve.

Programmers mostly use the command line

It’s just more efficient and powerful.