Link to the start of the homepage Link back to the list of entertaining stories A Problem in the Marketing The ten commandments for DOS The VAX/VMS Genesis Manual Write in C ! Switch over to the german language Control the graphics effects Link to the imprint page Write an E-Mail to the author Minimize the title bar
The UNIX hierarchy
John Gilmore Go to the bottom of the page
Placeholder
Placeholder
The UNIX hierarchy

John Gilmore

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
© 2024 by Bernd Onasch - Imprint Go to the top of the page
Placeholder
Placeholder