The Unix Hierarchy

egrep ^uz /etc/passwd | awk -F: '{ print $5 }'


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 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 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


The text above is taken from a (very old) file that had a signature with the name "John Gilmore" (jgilmore@lll.crg.arpa) in it. I don't know if he is the author. I found the text in some other places without giving an author name, so it's probably ok to put it on the web.


Back


Valid HTML 4.01! unixhier.php; last change: 26-Mar-2008
ullrich@von-bassewitz.de