The Unix Hierarchy

Beginner

* insecure with the concept of a terminal
* has yet to learn the basics of vi
* has not figured out how to get a directory
* still has trouble with typing after each line of input

Novice

* knows that `ls’ will produce a directory
* uses the editor, but calls it `vye’
* has heard of `C’ but never used it
* has had his first bad experience with rm
* is wondering how to read his mail
* is wondering why the person next to him seems to like Unix so very much.

User

* uses vi and nroff, but inexpertly
* has heard of regular-expr.s but never seen one.
* has figured out that `-‘ precedes options
* has attempted to write a C program and has decided to stick with pascal
* is wondering how to move a directory
* thinks that dbx is a brand of stereo component
* knows how to read his mail and is wondering how to read the news

Knowledgable user

* uses nroff with no trouble, and is beginning to learn tbl and eqn
* uses grep to search for fixed strings
* has figured out that mv(1) will move directories
* has learned that “learn” doesn’t help
* somebody has shown him how to write C programs
* once used sed to do some text substitution
* has seen dbx used but does not use it himself
* thinks that make is a only for wimps

Expert

* uses sed when necessary
* uses macro’s in vi, uses ex when neccesary
* posts news at every possible opportunity
* write csh scripts occasionally
* write C programs using vi and compiles with cc
* has figured out what `&&’ and ‘||’ are for
* thinks that human history started with ‘!h’

Hacker

* uses sed and awk with comfort
* uses undocumented features of vi
* write C code with `cat >’ and compiles with ‘!cc’
* uses adb because he doesn’t trust source debuggers
* can answer questions about the user environment
* writes his own nroff macros to supplement std. ones
* write scripts for Bourne shell (/bin/sh)
* knows how to install bug fixes

Guru

* uses m4 and lex with comfort
* writes assembly code with `cat >’
* uses adb on the kernel while system is loaded
* customizes utilities by patching the source
* reads device driver source with his breakfast
* can answer any unix question after a little thought
* uses make for anything that requires two or more distinct commands to achieve
* has learned how to breach security but no longer needs to try

Wizard

* writes device drivers with `cat >’
* fixes bugs by patching the binaries
* can answer any question before you ask
* writes his own troff macro packages
* is on first-name basis with Dennis, Bill, and Ken

Leave a Reply

Your email address will not be published. Required fields are marked *