Date: Tue, 14 May 91 21:05:12 EDT Unix Hackers 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 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 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 - uses nroff with no trouble, and is beginning user 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 her how to write C programs - once used sed but checked the file afterward - 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 she doesn't trust source debuggers - figured out how environment variables are propagated - writes her own nroff macros to supplement the standard ones - writes Bourne shell scripts - installs bug fixes from the net - uses egrep because she 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 her next Unix release wizard - writes device drivers with "cat >" - fixes bugs by patching the binaries - posts her changes to Unix utilities to the net -- and they work - can tell what question you are about to ask, and answer it - writes her own troff macro packages - is on a first-name basis with Dennis, Bill, and Ken