Intended Audience

This tutorial is designed to appeal most closely to casual UNIX users who are just above the "raw beginner" level. You should be familiar with the process of logging in, entering commands, and doing simple things with files. Although Korn Shell Basics, reviews concepts such as the tree-like file and directory scheme, you may find that it moves too quickly if you're a complete neophyte. In that case, we recommend the Anonymous Nutshell eBook, UNIX Operating System, by Grace Todino and John Strang.

If you're an experienced user, you may wish to skip altogether. But if your experience is with the C shell, you may find that reveals a few subtle differences between the Korn and C shells.

No matter what your level of experience is, you will undoubtedly learn many things in this tutorial that make you a more productive Korn shell user - from major features down to details at the "nook-and-cranny" level that you weren't aware of.

If you are interested in shell developing (writing shell scripts and functions that automate everyday tasks or serve as system utilities), you should find this tutorial useful too. However, we have deliberately avoided drawing a strong distinction between interactive shell use (entering commands during a login session) and shell developing. We see shell developing as a natural, inevitable outgrowth of increasing experience as a user.

Accordingly, each chapter depends on those previous to it, and although the first three chapters are oriented toward interactive use only, subsequent chapters describe interactive user-oriented features in addition to developing concepts.

In fact, if this tutorial has an overriding message, it is: "The Korn shell is an incredibly powerful and grossly undervalued UNIX developing environment. You - yes, you - can write useful shell programs, even if you just learned how to log on last week and have never coded before."

Toward that end, we have decided not to spend much time on features of interest exclusively to low-level systems developers. Concepts like file descriptors, errno error numbers, special file types, etc., can only confuse the casual user, and anyway, we figure that those of you who understand such things are smart enough to extrapolate the necessary information from our cursory discussions.