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 s/he differ from a "guru"? To explore these and other questions, here is a draft of... The UNIX Hierarchy Name Distinguishing Characteristics Beginner - insecure with concept of terminal - has yet to learn basics of vi - has not figured out how to get a directory - still has trouble typing after everything Novice - knows that "ls" will produce directory - uses 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 beside him likes 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 stereo component - knows how to read is mail and is wondering how to read news Knowledgeable - uses nroff with no trouble, is beginning to User learn tbl and eqn - uses grep to search for fixed strings - has figured out that 'mv' will move directories - has learned that 'learn' doesn't help - someone showed him how to write C programs - once used sed but checked the file afterward - once watched someone use dbx - thinks that Makefiles are for wimps expert - uses sed when necessary - uses macros 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 - use fgrep because someone told him 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 - can answer questions about user environment - writes his own nroff macros to supplement the standard ones - writes Bourne shell scripts - knows how to install bug fixes - uses egrep because he timed it guru - uses m4 and lex with comfort - writes assembly code with 'cat >' - uses adb on the kernel while the 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 distict commands - has learned how to breach security but no longer needs to try wizard - writes device drivers with 'cat >' - fixes bugs by patching binaries - can answer questions before you ask them - writes his own troff macro packages - is on a first-name basis with Ken, Dennis and Bill