Geek Hideout
Unix Knowledge Hierarchy

Unix Knowledge Hierarchy

Chances are that you've seen this floating around on the internet somewhere. Or maybe you haven't. But for those of you who, like myself, are easily amused by such things, here is a comparison of the various levels of Unix knowledge.


  • 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