The Unix Hierarchy
NAME DESCRIPTION AND FEATURES
---- ------------------------
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 <RETURN>
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
knowlegable - uses nroff with no trouble, and is beginning
user 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
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
expert - uses sed when necessary
- uses macro's in vi, uses ex when necessary
- 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'
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