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.

Video

Further reading and video