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". Often they are baffled by these appellations, and do not pursue the matter further. What is a "Unix Hacker ?". How does he differ from a "guru" ? To answer these and other questions, here is the UNIX HIERARCHY :


  • 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


  • knows that ls will produce a directory
  • use 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


  • uses vi and nroff, but inexpertly
  • had heard of regular-expr's but never seen one
  • uses egrep to search for fixed strings
  • has figured out that '-' precedes options
  • is wondering how to move a directory
  • has attempted to write C program and has decided to stick with pascal
  • thinks that sdb is a brand of stereo component
  • knows how to read his mail and is wondering how to read the news

knowledgeable user

  • uses nroff with no trouble, and is beginning to learn tbl and eqn
  • thinks that fgrep is fast grep
  • has figured out that mv 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 sdb used but does not use it himself
  • thinks that make is only for wimps


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


  • 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
  • can answer questions about the user environment
  • writes his own 'nroff' macros to supplement standard ones
  • writes scripts for Bourne shell (/bin/sh)


  • 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 archive
  • has learned how to breach security, but no longer needs to try


  • writes device drivers with cat >
  • fixes bugs by patching the binaries
  • can answer any question before ask
  • writes his own troff macro packages
  • is on first-name basis with Dennis, Bill and Ken
Home of levenez.com Valid XHTML 1.0 Transitional