Linux can be a scary environment to the uninitiated. Users familiar with only GUIs can have a hard time adjusting to the plethora of typed commands. Those familiar primarily with control panels suddenly have to edit /etc files with strange syntaxes that vary from file to file. Even DOS users, used to typing commands and editing configuration files, can find the sheer power Linux places in even the average user's hands a bit daunting.
What new users need, then, is a friendly guide to show them the ropes. They need a tome that gives a broad overview of what they can do with this new operating system they've been hearing so much about, but that doesn't go into such depth as to scare them away. LINUX: Installation, Configuration, Use (first published in Germany as LINUX: Installation, Konfiguration, Anwendung) is a very good starting point.
This book is aimed primarily at experienced users of other environments, such as DOS or Windows--people who know how to turn their computer on and off, who know how to get what they want out of what they already have and a little more besides, and are now ready to try something new.
The book has a surprising breadth of topics and gives what I think is just the right amount of depth for its purpose: a general overview of how to put a Linux system into practical use. In every area, it gives the user enough information to get him going, and then a little more to make it clear that any limitations are with the scope of the book and not the capabilities of the environment. It then points the reader to resources needed to go further.
The book begins, appropriately enough, with a brief description of Linux's history, along with an overview of what's available for Linux, and what sorts of things--both technologically and philosophically--make Linux unique. From there it moves immediately into the realm of the practical, walking the user through the first installation of Linux on his system.
The Installation chapter covers several different scenarios, but focuses primarily on a single distribution: Red Hat 4.1. This distribution is included on a CD with the book--a common enough occurrence--so the book tends to fall back on Red Hat when giving specific examples. Other distributions--notably Debian, Slackware, Caldera and S.u.S.E.--are mentioned, and significant differences are dealt with.
Installation taken care of, the author moves right along to a whirlwind tour of UNIX in general and Linux in particular. This section goes into no particular depth, but rather gives a rapid-fire overview of the basic utilities and programs a user should become familiar with, such as more, emacs, vi and X. Before diving further into the nitty-gritty, the author makes it clear where a user can find all the extensive on-line documentation--both from the included CD and also information available on the Net.
The section on configuration opens with a discussion of file management under Linux. Here again, the assumption is that the user is at least somewhat familiar with the concepts behind other command-line interfaces, such as DOS, although I don't believe a complete newbie would be lost. The section goes into how Linux structures file systems, how permissions work, the basics of administering users and groups and coping with removable media.
Following this is a peek at the actual innards of file systems--not in much detail, but enough to whet the appetite of a curious novice. Process administration comes next, followed by a discussion of library-related issues, including some troubleshooting tips for shared libraries. Finally, the init daemon and its importance are described in some detail before moving on to the topic of configuration.
The basic configuration and administration chapter starts with simple things--keyboard configuration; configuration of BASH, less and Emacs; setting the time, that sort of thing. It then walks the user through setting up new accounts, and moves on to a description of how to administer file systems. Next comes a discussion of LPD, followed by network configuration. The chapter concludes with a detailed section on tailoring the boot process, and a walk-through of how to recompile the Linux kernel.
The section on configuration concludes with a description of the X Window System, focusing on XFree86 3.1.2 (the version on the disk). All of the basic configuration issues are discussed here, including the importance of getting the monitor settings right so that you don't accidentally fry your screen. An overview of window managers is provided, covering several flavors of FVWM, TWM and OLWM. The section concludes with a quick overview of X Resources.
The third section of the book focuses on teaching someone how to actually use the system. An entire chapter is devoted to the bash shell and the basics of writing bash scripts. Following this is a 50-page command reference, covering just about every executable that comes with the standard Red Hat distribution.
Having established the environment one executes commands in and the commands one can execute, subsequent chapters cover the use of specific programs. First comes a chapter on tools and utilities, including Midnight Commander, various PostScript tools, xv and xgrab.
After this, an entire chapter is devoted to Emacs, starting with the basics of finding your way around the editor and going right up through advanced issues like macros. Next comes a chapter on LaTeX2E, again starting with the basics but ultimately at least touching on more advanced features. Between these two chapters, the user is left with enough information to begin word processing--albeit in a non-WYSIWYG environment--under Linux.
This section finishes with an extremely useful overview of how to get a Linux box up and running on the network. In addition to holding the user's hand through the dreadful process of setting up a PPP script and other such details, the book provides an overview of web, FTP, TELNET, e-mail and news clients available for Linux. The section on e-mail even covers sendmail configuration, and includes instructions for setting up a machine to use sendmail and popclient to send and retrieve mail from a remote system using PPP.
Finally, the book spends about 100 pages showing the user several different environments in which he can write programs--the real power of the Linux environment. Rather than delving into the mysteries of C and C++, this section focuses on more ``mundane'' environments--bash, Tcl/Tk and Emacs Lisp. In all three cases, the emphasis is more on giving the user enough information to extend his day-to-day working environment, rather than on extensive programming.
The book winds up with a set of appendices that cover the vagaries of various distributions and deal with updates since the original, German edition of the book was published.
This kind of book cannot be easy to write and must have been even harder to translate. That said, I think Mr. Kofler and whoever translated the book from its original German have done a fairly good job. I've been administering and programming UNIX systems of various stripes for years and have been running Linux both at home and at work on a daily basis for quite some time. I still found Mr. Kofler's book immediately useful, enabling me to easily tackle a couple of issues I'd been putting off, waiting for a block of learning time.
I have, I think, only two complaints about the book. The first is that it's already slightly out of date: Red Hat 4.1 is over a year old. On the other hand, Red Hat 4.1 is also a solid release--it's the release I was already running on my laptop, and I've had very few problems with it. However, some things made the age of this release noticeable. For example, the section on setting up an automated script to dial in with PPP, send queued mail, retrieve mail from a POP box and disconnect, was very useful. But it relied on an older POP program--popclient--rather than the newer and more broadly useful (not to mention supported) fetchmail.
The second complaint is that the translation to English is not quite as good as it could be. There's nothing embarrassing about the translation; it's just not quite fluid sometimes. Many readers won't even notice, but as a copy editor, I do.
As an example, on page 141, preparing to describe how to break up a Linux system into multiple partitions, I found this sentence: ``The creation of additional Linux partitions is a far-reaching intervention in the Linux system.'' Now, there's nothing wrong with that sentence, from either a syntactic or a semantic point of view, but the choice of words (``far-reaching intervention'') seems a little strange. I found things like this a bit distracting, but again, that may be because I look for them as a matter of habit.
Overall, I found this book extremely useful with a very positive attitude and a wide range of topics covered. As both a step-by-step guide and a reference, it is a good place for an aspiring Linux user to start.
Michael Scott Shappe is a somewhat frazzled software engineer for AetherWorks Corporation, a start-up in Saint Paul, Minnesota. When he's not writing reviews or copy editing for Linux Journal, he's reading--and attempting to write--fiction, or attending Society for Creative Anachronism events. He can be reached at Mikey@Hundred-Acre-Wood.com, and his web page is at http://www.14850.com/web/mikey/.