LLMs Are Proof That Unix Won
LLMs Are Proof That Unix Won
Tags: musings
Published on Thursday, August 20, 2026
" Previous post: A Pledge for Scientists
When I first learned about Unix and “Unix-like” operating systems, I was<br>intrigued. I had only known the colorful world of Windows 3.1 so far.<br>Like Japanese carpentry, everything seemed to be carved out of one block with no apparent cracks (except that Japanese carpentry is rock solid, and the same cannot be said about Windows 3.1 with a straight face).<br>Imagine my surprise when I sat in front of a command-line prompt for the<br>first time. The blinking cursor dared me to enter something and there<br>was, at first, no obvious way to achieve any of the things I already<br>knew a computer could do. A formidable puzzle—I was hooked! Thanks to<br>a surprisingly well-stocked library the next village over, I learned<br>that there are different flavors or evolutionary cousins of Unix, and<br>that some of their behavior is codified by standards like POSIX.<br>I also learned about GNU and the<br>heroic efforts of the first waves of hackers who made all of this<br>software available to a world that seemed more interested in locking<br>down everything and preventing any tinkering. O brave new world!
But I persisted. I stared down the ever-blinking prompt and fed it. Many<br>moons later, after a detour with FreeBSD,<br>I remain an avid Linux user since it suits my working style: I like to<br>live dangerously, often deferring kernel updates right before<br>important deadlines—what a thrill—and generally being quite<br>optimistic about my ability to get myself out of any jam. What<br>I appreciate is that Linux lets me exercise my<br>self-efficacy. In<br>essence, virtually all the pain I may experience by using it is, to<br>a large extent, self-inflicted. That feels so much better than having<br>to pray that the next iOS update<br>does not destroy my devices or some other nonsense.
This attitude is often met with blank stares or the usual “Anyway, …” by<br>people who just don’t get it, i.e., almost everyone else who is not<br>a huge nerd, Neal<br>Stephenson fan, or<br>blessed with an abundance of free time. Next to the nice tingling sense<br>of danger, the thing that entices me most about Linux is the<br>ability to mold it to my purposes like digital clay. Many of the<br>command-line tools I use have been around for quite some time now1<br>but they still work admirably and allow me to do things like this:2
rg -t py "^\s*url =" \<br>| grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" \<br>| awk -F/ '{print $3}' \<br>| sort \<br>| uniq -c \<br>| sort -rn
In natural language, the purpose of this command is to extract and count<br>domain names like github.com from URLs that are assigned to variables<br>named url across all Python files in the current directory and its<br>subdirectories. If this reads like gibberish to you, my younger hothead<br>self, full of (neo)vim and vigor, would have hit you with the old “Linux is very<br>user-friendly; it’s just also super picky about its friends.” Yes,<br>younger me was adept at making enemies like a craftsman.3
With the wisdom and mellowing of the years, I would now be diplomatic,<br>but it still strikes me as odd that this way of working with a computer<br>is so alien to many. Explaining my ancient workflow to someone who is<br>used to only modern GUIs is a bit like explaining higher dimensions to<br>someone inhabiting Flatland:<br>At best, they will politely listen before discarding what you said as<br>mildly odd and going back to their old ways. But again, I persisted and<br>stuck to my conviction that a computer should offer you<br>a general-purpose interface that enables you to build things you like.<br>GUIs can only partially sate that need since they need to guess what<br>path you are wont to take. By contrast, the Unix graybeards of yore<br>realized that it is futile to guess or railroad user behavior—instead,<br>they opted to equip everyone with a couple of smallish tools that adhere<br>to a certain philosophy:
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.
Decades later, this still works. Programs have become larger, more<br>complex, but also more convenient for highly-specific cases like video<br>editing—but at the core of many machines lies this wonderful interface<br>that offers nigh-limitless fun.4 Instead of widening the gap between<br>the CLI dwarves and the GUI elves, however, something unexpected<br>happened, viz., the development of large language models.<br>Presenting at first nothing but an input box to the user, they<br>constituted a deliberate break in habits for many. Here, then, was no<br>GUI waiting for you to specify what type of picture you wanted to<br>create. The prompt was daring you to dream big. I imagine for some, it<br>must have been a bit shocking even—a program that does not tell you what to<br>do with it was unheard of.5
And progress marched on, leaving the prompts of the early days6 for<br>ever-refined queries in...