Sal's

My fascination with the command line

I'm fascinated by the command line. This is why I'm drawn to things like Linux, Vim, Tmux, Helix, etc. After a couple weeks of renewed, frenetic obsession with my CLI rig, I'm taking some time to understand where this drive comes from.

It started in my youth. I got into computers fairly early because I was lucky enough to have parents who could afford one and encouraged my interest. We had a Commodore 64 when I was ... 8, maybe? And I remember trying to learn the arcane inputs required to launch my 5.25-inch-floppy-disk-based video games. (Swiss Family Robinson, anyone? Did you also shoot brother Franz and get your gun taken away?)

But real interest didn't start until my preteens when we had a 486 with DOS and Windows 3.1. I liked the DOS command line because it was fast. Windows felt so sluggish by comparison, and I tried to stay out of it as much as I could.

Around that time, the web first became available to anyone with a computer and a modem. Browsing web pages via a graphical browser (Netscape at the time) felt unbearably slow on my old 14.4 modem. But telnet was fast. IRC was fast. Lynx was fast. The plain text world of the command line was my happy place.1

And then, in my teens, I discovered Linux. That’s when the command line evolved from a preferred utility into a magic wand. I began to grok the depth of mystical power available to me if I could only learn the right incantations.

And now, 30 years later, not much has changed. I still have that awe and fascination of the command line, perhaps because I’m still merely an intermediate student of it, and I know there's so much more magic to learn.

Moreover, the command line is wonderfully devoid of the scourge upon modern computer users: noise. All the noise, noise, noise, noise. Ads, popups, banners, modals, notifications, surveys, discounts.... The Grinch would have an aneurysm.

> otoh
The command line is silent.

If you want it to be.

It waits for you with infinite patience.

And then it does only what you ask.

If you want more or less information, there are verbosity controls, debug logs, and output rerouting. If you want to learn, there's man, --help, and an incredible depth of guidance on the web. If you want more tools, your package manager beckons. If you want to know wtf is going on, there’s ps, top, traceroute, logs, and so much more.

And if you want to automate repetitive tasks or build something new, well, my friend, the world is your fucking oyster.

This is why I'm writing this post in Neovim inside Tmux, even though I recently declared my prior Vim experiment a failure. It's why I stayed up late last night re-studying Practical Vim, and why I spent a bunch of time this week moving my dotfiles from GNU Stow to chezmoi. These things have a tractor-beam-like pull on my curiosity, and there's endless opportunity for learning and discovery. And now that I'm reflecting more deliberately on this, I wonder if it's time to stop running away and just embrace it.

  1. Disclaimer for the historians out there: my memory is too crap to know which plain-text-ish software I was using in DOS vs. Win3.1 vs. Win95 vs. Linux. I'm playing fast and loose here.