Yet Another Post About the Unix Philosophy

| Comments


I have a recently started a minor Linux Users Group with some people in my locality. One question that I’ve been answering frequently is ‘what is this “unix philosophy”?
Am writing this post as a quick answer for this question.

Some history of the unix philosophy

Unix philosophy or the unix tools philosophy emerged when the UNIX operating system was created. Or to be more precise, when the pipes ‘|’ were invented. The pipes allow output from one command to be sent to another command as input.
e.g
ps -A | grep firefox
The output from the ps command, list of all running applications is passed to the ‘grep’ utility which searches for the line having the word ‘firefox’, and prints it. Pipes are really handy. Really.

The philosophy lead by this invention was to create small tools which would do a particular job  instead of creating big programs that do many things.
For example tools like grep, or wc. They exist for one and only one task (searching and counting).

These small tools could then be used together with the help of pipes to accomplish more complex tasks.

It was revolutionary. This philosophy avoided programmers from re-creating small subsystems of their software which could now be replaced by a small tool invented by someone else.

So this why the philosophy says
‘Do one thing, and do it perfectly well’

Comments