# Preface

The long, tortuous history of the Unix operating system has resulted in systems with all kinds of permutations and combinations of features. This means that whenever you walk up to an unfamiliar Unix system, you need to find out certain things about it in order to use it properly. And even on a given system, you may have a number of choices you can make about what features you want to use.

The most important such decision -- if you get to make it -- is what shell to use. "Shell" is Unix jargon for the program that allows you to communicate with the computer by entering commands and getting responses. The shell is completely separate from the Unix operating system per se; it's just a program that runs on Unix. With other systems such as MS-DOS, Microsoft Windows, Macintosh,[1] OpenVMS, and VM/CMS, the command interpreter or user interface is an integral part of the operating system.

> [1] At least up until MacOS X. MacOS X has a Unix-like system at its core -- Darwin, which is derived from Mach and 4.4-BSD-Lite.

Nowadays there are dozens of different shells floating around, ranging from the original standard, the Bourne shell, to menu-based and graphical interfaces. The most important shells have been the Bourne shell, the C shell, and the Korn shell -- the subject of this book.

## 0.1. Korn Shell Versions

Specifically, this book describes the 1993 version of the Korn shell. The 1993 version is distributed with the three major commercial versions of Unix: Solaris, HP-UX, and AIX, albeit as part of the Common Desktop Environment (CDE), in /usr/dt/bin/dtksh. The 1988 version is also available on modern Unix systems, usually as /usr/bin/ksh. There are various other versions, variations, and implementations on other operating systems; these, along with the differences between the 1988 and 1993 versions of the Korn shell are described in Appendix A.

The 1993 version is now available in both source code form and as precompiled executables for many common systems. Downloading and building it is described in Appendix C. The latest, downloadable version of ksh has a number of features not in earlier versions. We cover all of those features, too. We have made an effort to point out when something may not be in an earlier version, but caveat emptor; if you need a feature and your system's version of the 1993 Korn shell doesn't have it, you may need to download a prebuilt executable or download the source and build your own executable.

To find out which version you have, type the command `set -o emacs`, then press CTRL-V. You should see a date followed by a version letter (the letter is generally unimportant). If you do, you have one of the official versions, the 1993 version, the 1988 version, or an older one. But if you don't, you have a nonstandard version, such as pdksh, the public domain Korn shell discussed in Appendix A.

Copyright © 2003 O'Reilly & Associates. All rights reserved.