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 tha `ls' will produce a directory - uses 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. user - uses vi and nroff, but inexpertly - has heard of regular-exprs but never seen one. - has figured out that `-' precedes options - has attempted to write a C program and has 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 his mail and is wondering how to read the news knowlegable - 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 him how to write C programs - once used sed to do some text substitution - has seen dbx used but does not use it himself - thinks that make is a only for wimps expert - uses sed when necessary - uses macro's in vi, uses ex when neccesary - posts news at every possible opportunity - write csh scripts occasionally - write C programs using vi and compiles with cc - has figured out what `&&' and '||' are for - thinks that human history started with '!h' hacker - uses sed and awk with comfort - uses undocumented features of vi - write C code with `cat > foo.c' 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 std. ones - write scripts for Bourne shell (/bin/sh) - knows how to install bug fixes guru - uses m4 and lex with comfort - writes assembly code with `cat > foo.s' - 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 achieve - has learned how to breach security but no longer needs to try wizard - writes device drivers with `cat > foo.o' - fixes bugs by patching the binaries - can answer any question before you ask - writes his own troff macro packages - is on first-name basis with Dennis, Bill, and Ken