The Unix Hierarchy of Being

People who come into contact with the Unix system are often told, "If you have
trouble, see so-and-so, he's a guru", or "Bob there is a real Unix hacker."

What is a "Unix Wizard"? How does he differ from a "guru"? 

To explore these and other questions, here is a draft of the
"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 
            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 a bad experience with rm
          - is wondering how to read mail
          - is wondering why the person next door
            seems to like Unix so very much

User      - uses vi and nroff, but inexpertly
          - has heard of regular expressions but
            never seen one
          - has figured out that "-" precedes options
          - has attempted to write a C program, but
            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 mail and is wondering how
            to read the news

Knowledgeable  
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 but checked the file afterwards
          - watched somebody use dbx once
          - tried "make" but used spaces instead of tabs

Expert    - uses sed when necessary
          - uses macros in vi, uses ex when necessary
          - posts news at every possible opportunity
          - is still wondering how to successfully reply
            to mail
          - writes csh scripts occasionally
          - writes C programs using vi and compiles
            with make
          - has figured out what && and | | are for
          - uses fgrep because somebody said it
            was faster

Hacker    - uses sed and awk with comfort
          - uses undocumented features of vi
          - writes C code with "cat >" and compiles with "!cc"
          - uses adb because he doesn't trust source
            debuggers
          - figured out how environment variables are
            propagated
          - writes his own nroff macros to supplement the
            standard ones
          - writes Bourne shell scripts
          - installs bug fixes from the net
          - uses egrep because he timed it

Guru      - uses m4 and lex with comfort
          - writes assembler code with "cat >"
          - uses adb on the kernel while the system
            is loaded
          - customizes Unix utilities by patching the source
          - reads device driver source with breakfast
          - uses "ed" because "ex" is a Berkeleyism
          - can answer any Unix question after a little
            thought
          - uses make for anything that requires two or
            more commands
          - has learned how to breach security but no longer
            needs to try
          - is putting James Woods/Henry Spencer egrep
            into his next Unix release

Wizard    - writes device drivers with "cat >"
          - fixes bugs by patching the binaries
          - posts his changes to Unix utilities to the net,
            and they work
          - can tell what question you are about to ask,
            and answers it
          - writes his own troff macro packages
          - is on a first-name basis with Dennis, Bill,
            and Ken
Zur Hauptseite Zur Witze-Übersicht