Frequently Asked Question
Why is Unix so obsessed with text?
The founding insight of Unix in the early 1970s was that almost everything worth
communicating between programs can be expressed as lines of text, and that if you
build enough sharp tools for manipulating text you have effectively built sharp
tools for manipulating everything. Configuration files are text. Logs are text.
Source code is text. Even kernel state and process information are exposed as if
they were text through /proc and /sys. This uniformity is what makes shell
pipelines so powerful: any tool that emits lines can be fed into any tool that
consumes lines.
Doug McIlroy crystallised this into what is now called the Unix philosophy: write programs that do one thing well, write programs to work together, and write programs to handle text streams because that is a universal interface. The result is that a handful of small utilities (grep, sed, awk, sort, uniq, cut, wc) compose into solutions that in other ecosystems would require a custom application.