Command lines aren't the oldest way to tell a computer what to do. Depending on how you think of it, that distinction probably belongs to plugging wires into switchboards, toggling banks of switches, or moving beads on a wire.
The command line is, however, one of the most durable ways for humans to talk to a computer. It's been used continuously for half a century, and seems to be reinvented at least a few times by every generation of computer users.
For example, until Windows became popular, DOS was the way you would talk to your home or business PC
DOS looks like this:
To modern eyes, the command line can appear primitive, or outmoded by newer interfaces. That's not quite right. The CLI isn't old so much as it's eternal. It keeps cropping up everywhere you look.
Point-and-click graphical interfaces have been in wide use for a long time now. The Macintosh hit the market in 1984, and Windows machines were common by the early 90s. What's more, both systems leaned heavily on ideas that were first developed in the 60s.
Now that we have all of those pointers, icons, and windows full of polished visual elements, why do command lines keep reappearing, even in the middle of our shiniest and most up-to-date programs?
One way to answer that is to think about programming languages. Just about every piece of software you've ever used is written in a little language with its own grammar and vocabulary. It turns out that language is really expressive, and that once you've written a useful sentence in some language, you can usually save it for later use, or remix it to have a different effect.
Language - expressed as text - also has the benefit of being easy to keep in files, easy to send over the wire, and easy to combine with other bits of language. Command lines are one of the most powerful tools at our disposal for expressing and sharing useful ideas, both with the computer and with other humans.
GNU/Linux systems like Raspbian are conceptual descendants of an operating system called Unix, which dates to the 1960s. These days, Unix is a broad family of OSes, serving all sorts of purposes.
Out of all the modern, widely-used operating system families you'll encounter, Unix is probably the one where command-line interfaces are still the most fundamental and widely used.
If you're interested in the history of how all this came to be, there's a lot of good writing out there.
- "In the Beginning was the Command Line" is a now-classic essay on operating systems and interfaces by Neal Stephenson
- The Unix Programming Environment, by Brian Kernighan and Rob Pike, is a deep and rewarding exploration of the philosophy that produced much of the modern CLI toolset
- Hackers, by Steven Levy, explores the culture of early computing in several important scenes
- The Evolution of the Unix Time-sharing System, by Dennis M. Ritchie
And if you've got half an hour to kill and want a real vintage computing fix, this Unix documentary from 1982 is amazing.
We'll come back to the history, but right now let's focus on the what and how of getting your own shell. You're going to need a terminal.