Originally based on the classic O’Reilly & Associates quick reference, Unix in a Nutshell, this book has been expanded to include much information that is specific to Linux. These enhancements include chapters on:
Package managers (which make it easy to install, update, and remove related software files)
The KDE and GNOME desktops and the fvwm2 window manager
The CVS version control system
The book also contains dozens of Linux-specific commands, along with tried-and-true Unix commands that have been supporting users for decades (though they continue to sprout new options).
This book does not cover the graphical tools contained in most distributions of Linux. Many of these, to be sure, are quite useful and can form the basis of everyday work. Examples of these tools include OpenOffice (the open source version of the StarOffice suite distributed by Sun Microsystems), Evolution (a mail, calendar, and office productivity tool from Ximian), Mozilla (the open source cousin of the Netscape web browser), and the GIMP (a graphic image manipulation program and the inspiration for the GNOME project). But they are not Linux-specific, and their graphical models do not fit well into the format of this book.
While you can do a lot of valuable work with the graphical applications, the core of Linux use is the text manipulation and administration done from the command line, within scripts, or using text editors such as vi and Emacs. Linux is still mostly a command-driven system, and this book continues to focus on this level of usage. In your day-to-day work, you’ll likely find yourself moving back and forth between graphical programs and the commands listed in this book.
Every distribution of Linux is slightly different, but you’ll find that the commands we document are the ones you use most of the time, and that they work the same on all distributions. Basic commands, programming utilities, system administration, and network administration are all covered. However, some areas were so big that we had to leave them out. The many applications that depend on the X Window System didn’t make the cut. Nor did the many useful programming languages like Java, Perl, and Python with which users can vastly expand the capabilities of their systems. XML isn’t covered here either. These subjects would stretch the book out of its binding.
Linux in a Nutshell doesn’t teach you Linux—it is, after all, a quick reference—but novices as well as highly experienced users will find it of great value. When you have some idea of what command you want but aren’t sure just how it works or what combinations of options give you the exact output required, this book is the place to turn. It can also be an eye-opener, making you aware of options that you never knew about before.
Once you’re over the hurdle of installing Linux, the first thing you need to do is get to know the common utilities run from the shell prompt. If you know absolutely nothing about Unix, we recommend you read a basic guide (introductory chapters in the O’Reilly books Learning Red Hat Linux and Running Linux can get you started.) This chapter and Chapter 2 offer a context for understanding different kinds of commands (including commands for programming, system administration, and network administration). Chapter 3 is the central focus of the book, containing about one half its bulk.
The small chapters immediately following Chapter 3 help you get your system set up. Since most users do not want to completely abandon other operating systems (whether a Microsoft Windows system, OS/2, or some Unix flavor), Linux often resides on the same computer as other systems. Users can then boot the system they need for a particular job. Chapter 5 describes the commonly used booting options on Intel systems, including LILO (Linux Loader), GRUB (the GRand Unified Bootloader), and Loadlin. Chapter 5 covers the Red Hat package manager (rpm)—which is supported by many distributions, including Red Hat, SuSE, Mandrake, and Caldera—and the Debian package manager. Package managers are useful for installing and updating software; they make sure you have all the files you need in the proper versions.
All commands are interpreted by the shell. The shell is simply a program that accepts commands from the user and executes them. Different shells sometimes use slightly different syntax to mean the same thing. Under Linux, two popular shells are bash and tcsh (which on Linux has supplanted the older csh), and they differ in subtle ways. (One of the nice things about Linux and other Unix systems is that you have a variety of shells to choose from, each with strengths and weaknesses.) We offer an introduction to shells in Chapter 6, thorough coverage of bash in Chapter 7, and a guide to tcsh in Chapter 8. You may decide to read these after you’ve used Linux for a while, because they mostly cover powerful, advanced features that you’ll want when you’re a steady user.
To get any real work done, you’ll have to learn some big, comprehensive utilities, notably an editor and some scripting tools. Two major editors are used on Linux: vi and Emacs. Emacs is covered in Chapter 10 and vi in Chapter 11. Chapter 12 and Chapter 13 cover two classic Unix tools for manipulating text files on a line-by-line basis: sed and gawk (the GNU version of the traditional awk). O’Reilly offers separate books about these topics that you may find valuable, as they are not completely intuitive upon first use. (Emacs does have an excellent built-in tutorial, though; to invoke it, press Ctrl-H followed by t for “tutorial.”)
CVS (Concurrent Versions System) and RCS (Revision Control System) manage files so you can retrieve old versions and maintain different versions simultaneously. Originally used by programmers who have complicated requirements for building and maintaining applications, these tools have turned out to be valuable for anyone who maintains files of any type, particularly when coordinating a team of people. CVS has become a distribution channel for thousands of free software projects. Chapter 14 presents RCS commands, and Chapter 15 presents CVS commands.
Graphical desktops are covered in four chapters. Chapter 16 is a brief overview to the major options on Linux systems. It is followed by Chapter 17 on the GNOME desktop, Chapter 18 on the KDE desktop, and Chapter 19 on the fvwm2 window manager.
Our goal in producing this book is to provide convenience, and that means keeping the book (relatively) small. It certainly doesn’t have everything the manual pages have; but you’ll find that it has what you need 95% of the time.