Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Saturday, January 21, 2012

A Book Review of The Linux Command Line: A Complete Introduction

Author: William E. Shotts Jr.
Format: Paperback, 480 pages
Publisher: No Starch Press; 1st edition (January 14, 2012)
ISBN-10: 1593273894
ISBN-13: 978-1593273897

Linux has been struggling to become a "desktop darling" of the home and small office user for years and has yet to succeed. I don't know if it will ever succeed. One of the biggest hurdles Linux has to cross is its reputation as being command-line driven. Most people fear the command line and if you're old enough, you remember (with dread) the arcane DOS interface or struggling to remember what command syntax to use with the now ancient Apple IIe. Users love Windows because the GUI is easy.

Ubuntu, of all the Linux distros, is about the best in terms of a user-friendly GUI, and yet even when Windows users abandon the Microsoft "mothership", they almost always turn to a Mac and not to Ubuntu (or any other flavor of Linux). Face it. Linux may never succeed as a desktop operating system and may have to "settle" for being the king of the server and embedded device markets.

But is that such a bad thing?

Ironically, the power of a Windows machine is on the command-line, but unless you're a system admin or network guru, that doesn't even occur to you. And absolutely, the power of Linux is in the command-line shell. Why fight the nature of what Linux is? Instead of trying to avoid shell commands, embrace them. That's where The Linux Command Line: A Complete Introduction comes in.

The hardcopy of this book should be on its way to me for my review right now, but I couldn't wait. The publisher kindly allowed me to also download a PDF version of the Shotts book, so here I am, tearing into it (metaphorically speaking) and getting ready to devour its contents. What secrets does it hold and for whom shall they be revealed?

Scrolling through the beginning of the PDF, I discovered the "Who Should Read This Book" section. According to the author, this book is for the rank beginner in the Linux world who is likely a Windows "power user" and who, for whatever reason, must learn Linux management skills. That's a rather amazing statement since, having scanned the table of contents on my way down to page 29, I discovered a rather impressive list of skills to be learned. Among them were "A Gentile Introduction to Vi" (my favorite editor), "Package Management", "Regular Expressions", "Compiling Programs", and "Writing Shell Scripts". Any one of these topics is worthy if its own book (and they're out there) and certainly they will be intimidating to the Linux novice.

But first things first.

The end of the introduction to the book gives rather brief instructions for how to install Linux on a computer or how to use a live CD, so the reader is presumed not to even use Linux on a regular basis (or at all). On the other hand, there are no links or instructions as to where to find a Linux ISO file for download or how to burn a bootable CD or DVD, so I guess the reader is expected to know something. Oh, in case you're wondering, I'm using Ubuntu 11.04 (Natty Narwhal) to write this review and practicing commands in the default bash shell.

The first section of the book is called "Learning the Shell", which is pretty basic. The first chapter, "What is the Shell" offers the reader a little bit of a history lesson on the shell and how to use very basic commands, such as "date", "cal", and "df". It's a very short chapter and fortunately gets the reader into opening and using the shell right away. It's a gentle beginning. When does the book get "rough?"

Technically, the hardcopy of the book is only 480 pages long, so it's not an encyclopaedia (remember them?). Yet, for not being a massive tome, the Shotts book probably best works not only as a linear tutorial but as a reference. After all, even veteran shell users don't remember everything and I've seen Linux developers with decades of experience still have to look up commands they don't use very often (although they almost always do so using Google rather than grabbing a handy book).

I called this book "a linear tutorial" because the first section is written in just that manner. One skill set builds on the previous ones presented and the more the reader goes through and practices what they're reading, the better they should get at navigating the directory tree, copying and moving files, locating files, and using man pages.

Although there are no exercises or labs at the end of each chapter, there are notes encouraging the reader to pause and to practice what they've learned as well as experimenting and adapting on commands they've been using. The reader is also encouraged to refer back to the help and man documentation on commands, which is a further exercise in using the shell, since these tools are the first ones a system admin or programmer turn to when they're trying to recall that rarely used command switch.

Actually, the book doesn't really need a separate section for exercises since each page in the chapters directs the reader to try out various commands. This is a book that needs to be opened alongside a Linux machine where the reader is simultaneously working in the shell.

It would take too long to review the content in each chapter and section, but there are a few notable mentions. In Chapter 12 "A Gentile Introduction to Vi", the reader is treated to a Vi primer (sorry, Emacs users). It's probably just about as much as a new user will need to edit files on a Linux machine and if need be, books such as Learning the vi and Vim Editors by Robbins, Hannah, and Lamb are always available.

I did wonder about introducing the reader to Regular Expressions in Chapter 19. For the average computer user, even the average Linux computer user, Regular Expressions can be a real "migraine maker". This may be your first clue that not everyone who will use this book will use all of it, at least not right away. Although this is a great skill to acquire, not everyone may be up to the challenge. When reading this book, assess whether or not you want or need to learn everything it has to offer.

Chapter 23: "Compiling Programs" is another chapter that may not always be useful to all readers. The content goes quickly from "What is Compiling" to downloading source code from the web (specifically ftp.gnu.org), examining the source tree, and building a program. Note that the reader isn't expected to know how to actually write a program, so the general purpose of this chapter is to introduce the power of compiling in the shell and, like vi and Regular Expressions skills, is something that can be built upon using other resources if the reader so desires.

All of the fourth and last section of the book is devoted to "Writing Shell Scripts". If the hypothetical reader of this book is someone who wants or needs to learn Linux server management skills, everything presented in the book up to this point is not only useful, but required. Certainly writing shell scripts (and again, there are entire books available on this subject), is a necessary skill set for the Linux systems admin or even for people who just like to "get under the hood" a little.

After a brief introduction, the reader is lead through the "rudimentaries" of their first shell script which is about as basic as echo 'Hello World!' The reader must dig back into what they've learned before about using vi or vim, creating a file in the desired directory, making it executable, and saving it (none of these instructions are presented again in the shell script chapter). The last bit in the chapter gives the reader a tip on how to configure vim for shell scripting by turning on syntax highlighting, highlighting search results, and using auto indent. The rest of the section takes the reader through building a scripting project and pulls together previously learned skills to develop more complex scripts, including teaching the use of loops and arrays.

The final note in the final chapter addresses the reader, "Well, we have completed our journey. The only thing left to do now is practice, practice, practice. Even though we've covered a lot of ground in our trek, we barely scratched the surface as far as the command line goes."

I can agree with that. There's a reason why the book's subtitle is "A Complete Introduction." That's not a contradiction in terms, it's the literal truth. Part of the power of the shell is in its almost infinite potential, which most shell users never master, but if you buy and then use The Linux Command Line: A Complete Introduction to its fullest extent, your "introduction" to the shell will be very impressive.

Monday, May 3, 2010

Ubuntu 10.04 LTS Lucid Lynx First Impressions

Yeah, I know. There are about a million blog articles of this nature floating around on the web, but what the heck. Blogging is all about freedom of speech and expression of opinions and ideas. Here's what I've got so far on the Lucid Lynx.

First off, I was amazed by the fact that I could quickly and easily download the ISO for the 32-bit desktop. It was only about 24 hours after the initial release when I gave it a shot, and there were no delays at all. I find torrents obnoxious, so I did the straight download directly from Ubuntu.com. No muss, no fuss.

I joke that I don't try a new Windows desktop OS until the first service pack is released. That's usually pretty good advice, but even with Linux, I don't download and install a brand new release of a distro on my production machine. In this case, I ran the ISO directly in VMware Workstation 7 to give it a shot. I used the easy install option just for giggles. This bypasses the manual configuration for the OS which isn't always a good idea, but I figured the worst that could happen is that I'd experience a major fubar and have to blow away the VM.

Everything worked well. Installation was quick and the current version of VMware Workstation automatically installs VMware Tools for Linux, so it's an almost totally hands off experience. Then, when the GUI came up, I hit a snag. The mouse worked fine, but the keyboard was totally non-responsive. This could have been an Ubuntu issue, a VMware issue, or maybe wireless Dell keyboards just don't work and play well with Ubuntu. I fired up Google and started my search.

I found just about a ton of posts in different threads at the Ubuntu forums including this one and this one. They all give more or less the same advice about solutions, but I specifically referenced a thread dealing with Ubuntu 10.04 and VMware Player, which worked out for me just fine. After using the virtual keyboard option to enter my password, I was able to login and thereafter, my wireless keyboard behaved as expected.

I haven't had a lot of time to play with the Lucid Lynx VM as yet, but there were a few things I took care of right away. First, I installed Ubuntu Tweak, if for no other reason, than to be able to put a folder for my home directory on the desktop. It offers a lot of other great features as well, but it disappoints me that so many simple configuration options don't come with Ubuntu "off-the-rack".

There are a large number of "what to do after you install Ubuntu 10.04" blogs and tutorials around, and I chose the one featured at my-guides.net because it seemed to be reasonably comprehensive and wasn't afraid to use the apt-get system to tweak Ubuntu.

I didn't follow most of the steps in the tutorial, at least so far, but I did run sudo apt-get install ubuntu-restricted-extras to enable Adobe Flash Player, JRE with Firefox plug-ins, and a few other things. I might even get around to installing the Google Chrome browser just to try it out on Linux, but Firefox serves me for now.

Oh, and I installed GIMP, which was a breeze using the Ubuntu Software Centre. I'll post more details as I get the chance to do something more substantial with the Lynx.

Share/Bookmark

Thursday, April 29, 2010

Is the Release of Ubuntu 10.04 Delayed?

Update: http://releases.ubuntu.com/lucid/

Today is Thursday, April 29, 2010. It's almost half past six in the morning in the western United States where I live. I started looking about the web for announcements of the production release of Ubuntu 10.04. I didn't find them. Given the time difference between me and Canonical, I figured the mirrors for the production download would be available by now. I decided to go to the source but the Ubuntu Home page still announces Ubuntu 9.10 as the latest production release. I double checked the release schedule and it does say the Lynx should be at final release on the 29th. Am I being impatient?

After I wrote the above paragraph on the news page at the Linux Tutorial, I went to work, still thinking I was being impatient and that the announcement of the release could be forthcoming. I checked again when I got to my workstation and still no change of news. I fired up Google and started searching. Then I found a notice saying [i855] 10.04 rc boots into black/blank screen. I read a number of the comments associated with this announcement (they are legion, so I didn't read all of them. One of the latest, posted yesterday, revealed the following (and the spelling errors are the sole property of the comment writer:

It is critical. People have a bricked laptop after the update. That´s the worst case scenario. Another console aware friend even called me since switchting to the terminal didn´t work as well and he´s a unix guy and had never heard of ubuntus safemode. It´s really pretty bad. Lucid is an aweseom release but this bug is a showstopper imho.

Let´s keep the fingers crossed someone has the balls to delay it. But I doubt it.
Searching for more information, I hit a page at ubuntuforums.org that seems to be more up to date. In fact, the thread is so active that all you have to do is refresh your browser every minute or so to see new posts.

Amid the various posts are specific links to download Ubuntu desktop, both the 32-bit and 64-bit flavors. Don't ask me why this information is so hard to find at ubuntu.com.

Just for giggles, I clicked the available link to download 32-bit Ubuntu desktop and of course, the page was amazingly slow to load, and when it did, I only saw this: ERROR The requested URL could not be retrieved. In other words, any one with an Internet connection is trying to be the first to download the 10.04 ISO from the mirrors. Good luck with that.

A lot of the posts on the ubuntuforums.org thread dedicated to today's (pending) release state that the links for downloading both the 64-bit and 32- bit versions of Ubuntu keep timing out. Either there's a problem with the release and this is Canonical's method if dealing with it, or the release is available and too many people are trying to download at the same time.

Guess we'll have to wait. The thread on the Ubuntu Forums about the Lucid Lynx release is up to 63 pages as I write this, but another page is added every minute or so. If you want to keep up with the minute-by-minute developments, feel free to visit the thread and watch the progress. For all practical purposes though, you might want to wait and attempt to locate and download Ubuntu 10.04 LTS tomorrow or the next day.

Addendum: I also found some information of a possible release delay at launchpad.net.

Share/Bookmark

Tuesday, December 29, 2009

Practical Guide to Linux Commands, Editors, and Shell Programming

Author: Mark G. Sobell
Format: Paperback, 1080 pages
Publisher: Prentice Hall PTR; 2nd edition (November 29, 2009)
ISBN-10: 0131367366
ISBN-13: 978-013136

The reviews on the first edition of this book were overwhelmingly favorable, so you'd expect Sobell's second edition to be at least on par. What I want to know before handing over my hard earned green, is why I should buy the second edition? What has changed so much in the world of Linux in 4 or 5 years that makes a difference? With those questions in mind and tome in hand, off I went in pursuit of the answers.

The back cover blurb touts the advantages of this book, including the fact that it includes both system administration info and programming data; material that is usually archived in two different books (with the idea that system admins and programmers don't live in the same universe). Another advantage is that the book is "distro agnostic", meaning that it doesn't favor Ubuntu and other Debian-esque flavors vs. Fedora and other Red Hat variants. Surprisingly, though I suppose it shouldn't be, info on Mac administration is also included (and why not...go back far enough and the common ancient ancestor is UNIX). But what's new?

Gold dust was discovered in the Preface in the New in this edition section. Turns out, Mac OS X CLI info is brand new in this edition, so if you love Linux and Mac, or at least you have to administer them, you're in luck. Also, there's a new chapter on Perl, new rsynch secure copy utility material, and content covering 15 new utilities that weren't included in the first edition. There have also been some organizational changes. Three indexes have been added to make it easier for the reader to find specific information, including an index just for Mac OS X.

The first five chapters or so bring the reader up to speed on Linux and Mac (mostly Linux) in general, including a basic overview of the operating systems and where to find things. Common utilities, file system basics, and an introduction to the shell are all available. Up to this point, you don't have to be much of a guru in anything or even much of a power user, so students who want to be admins and shell programmers are welcome here.

They say there are two types of people in the world; vi people and emac people. I happen to be the former but understand (reluctantly) that there are plenty of folks out there that prefer the latter editor. Sobell serves both populations with a chapter devoted to each editor. Keep in mind there are entire books written on these editors, but you may not have the desire or time to buy and read them.

The book then moves the reader on to more detailed information on the shells. The bash (bourne again shell) shell is included as well as the TC shell, which is the expanded version of the C Shell (csh and yes, it's pronounced "sea shell"). I've never worked with a Linux system that didn't have the bash shell as the default, but if you really want something "completely different", here's your opportunity to learn about the TC shell.

The next part of the book: "Programming Tools" includes some of the main changes in this edition. The brand-new Perl chapter is inserted here, as is the chapter on rsync. Don't expect to learn Perl from scratch by reading a single chapter in this book, but if you have a background in Perl or just in general scripting, it will help in Linux shell programming. My personal preference is Python, but you can't have everything.

The last main section is the command reference and it is basically a long list of man pages. The twist is that some of them (they're marked) are commands specific to Mac. I'm not sure if it would be faster for the experienced Linux user to just read a man page in the shell or to look it up on Sobell's book, but they're here, anyway. That said, there are additional details present, as least for some of the commands, including examples, discussion areas, and the occasional diagram you won't find on a man page.

I probably could have lived without the Glossary in the Appendix section, but if the book is supposed to speak to newbies as well as power users and admins, then it makes sense. As I previously mentioned, one index includes nothing but Mac OS X notes, which is a nice plus, but I suppose it assumes you're working in a mixed Linux/Mac environment. If you administer just Macs, I can only imagine you have the required Mac-oriented texts on your bookshelf.

The main advantage of this book and others like it, is not that it contains any radically new information or that it's put together in a unique way. The reason you want to buy this book is that all this information collected entirely between two covers. The entire body of Linux administration data is more or less easily located on the web and is no more than a search string in Google away, but the Internet is a lousy library. By comparison, Sobell's Practical Guide to Linux Commands, Editors, and Shell Programming is a model of organization.

The second edition of this successful book does what it's supposed to; update information for a changing technology landscape, add a few new bits for spice, and otherwise maintains the original level of quality. You could read it cover-to-cover, but something this size works better as a reference for the learner or the experienced person who needs a quick reminder (you can't remember everything). If you administer Linux, program Linux, or both, this book most likely has what you need. If those roles are your goals, then this book will carry you to the target. Enjoy.

You can find and purchase Mark Sobell's book at Amazon.com.

Share/Bookmark

Sunday, November 1, 2009

Linux in a Nutshell, 6th Edition

Authors: Ellen Siever, Stephen Figgins, Robert love and Arnold Robbins
Format: Paperback, 942 pages
Publisher: O'Reilly Media; 6th edition (September 30, 2009)
ISBN-10: 0596154488
ISBN-13: 978-0596154486

I was going to swear that, with each successive edition of this book, the page count got larger and larger, but I checked, and it's stayed almost the same over the last three editions. O'Reilly says that the 4th edition was 944 pages long, but the 5th and 6th editions (the 6th being the latest) are both 942 pages. When I got my review copy in the mail and opened the box, the book seemed larger than I expected for some reason.

But if the book isn't getting larger and thus, filled with more recent and updated information about Linux, why publish subsequent editions? For that matter, can you call a book that's approaching 1000 pages a "Desktop Quick Reference?" To try and answer my first question, I took a look at the back cover and saw, "This updated edition offers a tighter focus on Linux system essentials, as well as more coverage of new capabilities..." Yes, the Linux kernel continues to evolve and thus, what you need to know about Linux system administration continues to change as well. While most of the common shell commands won't change, there are new ones that you'll need to know (and if you've bought this book or are intending to, you belong to that class of person who needs to know). Also, virtualization is huge these days and you can now manage Linux servers via Xen and VMware.

Linux in a Nutshell is considered a classic by anyone's standards, so it's expected to review well. In fact, the prior editions have reviewed extremely well so, in this case, turning in a bad review on the latest edition would mean that the authors and publisher must have completely rewritten the book and done a poor job of it. Fortunately, that's not the case here. Linux in a Nutshell, 6th Edition is a worthy successor to those editions that have come before it. You have three main reasons to buy it. First, you have the reason I've already mentioned; keeping up to date on the latest changes to Linux. Second, you've completely worn out your older copy of the book and need something that isn't hanging in rags. Third, you are new to Linux and need to buy a reference guide for the first time.

In a literary sense, some books are considered classics and almost legends. That may be a bit more rare in technical circles (is there such as thing as the equivalent of A Tale of Two Cites or To Kill a Mockingbird when it comes to Linux?), but it's not entirely unheard of. If the world of Linux has such a book, it's probably Linux in a Nutshell.

All that said, you will be disappointed in this book if you don't know what to expect, and I've read comments from people who were quite disappointed with this book. Hence writing reviews. Here's what not to expect. This is not a tutorial. It will not explain, step-by-step how to use Linux, particularly for the home or office desktop user (and with Ubuntu 9.10 (Karmic Koala) having just been released, a large number of people are thinking of the Linux desktop). If you try to read this book cover-to-cover, you won't find it amusing or entertaining. It would be like trying to read an encyclopedia set or dictionary from A to Z. Yes, it would be very informative, but organized in a very rigid manner, and it will not read like a narrative.

This book is a reference in the same manner as the aforementioned encyclopedia and dictionary. You look up only what you need to know. It presupposes that the reader have some familiarity with Linux, at least enough to understand what information they require and how to use the book to find it. The list of shell commands runs from page 33 to page 503, for instance and is in alphabetical order. On the other hand, chapters such as The Bash Shell do contain narrative and explanatory components, so you do get more than raw shell commands and arguments. Still, it is not a good book as your first exposure to Linux documentation or as an introduction to topics like the bash shell, the vi text editor, or the gawk programming language. It would be like trying to learn English by reading a dictionary. A dictionary is better utilized once you know at least the basics of the language and want to pick up something specific.

Both Git and Subversion version control system commands are well covered in the later chapters, but as I said, you'd better know the basics first, rather than expect to learn them for the first time here. As promised, Virtualization Command-Line Tools sits in the last chapter of the book, giving you fingertip access to the commands and options involving KVM, VMware, and Xen virtualization tools.

This book's 6th Edition is indeed a worthy inheritor to those that have come before it and carries on the tradition of providing A Desktop Quick Reference for Linux shell commands and utilities. If you've owned a prior edition, this update is now available as a replacement. If you are learning Linux administration for the first time and have the basics down, you're ready to buy this edition as your first experience to Linux in a Nutshell.

Share/Bookmark

Sunday, August 30, 2009

The Official Ubuntu Server Book

Authors: Kyle Rankin and Benjamin Mako Hill Format: Paperback, 528 pages Publisher: Prentice Hall PTR; 1st Pap/Cdr edition (July 27, 2009) ISBN-10: 0137021186 ISBN-13: 978-0137021185 I've had this book for almost a month, but have waited to write this review until I could give it the attention it deserves. I'm a fan of The Official Ubuntu Book (now in it's 4th edition), so I eagerly approached Rankin and Hill's production, anticipating the same quality product the desktop Ubuntu book has consistently provided (and no, I didn't think the desktop book was "perfect"). Would this server book be equal to the task? My first assumption, without even opening the book, was that Ubuntu book or no, a server book needs to tell you not only about the ins and outs of the operating system and distro, but about configuring the various server roles (DHCP, DNS, File and Print, and so on). With that in mind, I opened the pages, and went in search of the target audience for this book. My search turned out to be futile, however. I did find a bunch of information I didn't always care to read in the Introduction, though. I expected the usual history lesson, "What is Linux?", What is Ubuntu?" and that sort of thing, but I also got a brief history of Mark Shuttleworth himself, the creation of Canonical, the Ubuntu Community, the various goals (philosophical and technical) and the Code of Conduct for the Ubuntu project. Of course, if that's tied to service and support, I suppose I want to know that sort of thing. Alas, the Introduction didn't explicitly say "this is who should read this book", so I'm left to believe,that the ideal reader is someone who understands or wants to understand the basics of server administration, with an eye on Linux and Ubuntu. Chapter 1 is the expected installation chapter, but don't rush in too fast. The book comes with CDs for Ubuntu 8.04 LTS as well as Ubuntu Server 9.04, for those of you who want to choose between stability and the latest and greatest. This shouldn't affect the installation process as such, just be aware of which version you want to install ahead of time. The Preface does include some additional information about the CDs, including the fact that they harbor the 32-bit versions. Ubuntu server 8.04 and 9.04 both have 64-bit versions as well, but you'll need to download the ISO images from http://ubuntu.com to acquire them. That folds back into the first few pages of the Installation chapter, since you have to "get ubuntu" before installing it. If this were a desktop installation, I probably wouldn't pay too much attention to the installation chapter, assuming I wasn't going to do anything fancy. Since this is a server though, you might (as I did) want to read through it, with an eye on any "gotchas" you'll run into, such as setting up server roles, during the install process. Even going through just this chapter, I got the impression that the book is geared for the newbie (or wannabe) Linux server administrator. If you have some experience in the Linux server (or just the server) admin arena, the challenge for you might only be getting up to speed with Ubuntu's tips and tricks. Although the TOC isn't set up this way, the book actually does seem to be divided into major parts. Chapters 1 through 4 appear to be dedicated to the installation and and set up of the basic server. Yes, you are asked to select a role during the installation process, but before you get that far, it wouldn't hurt to take a look at Chapter 5, since it discusses the details of Ubuntu server roles. Then return to Chapter 1 and see about the actual installation process. If you consider server roles a major "part", all that's contained in chapter 5. The rest of the book (Chapters 6 through 12) seems to be the server administration section, with chapters for security, backups, monitoring, virtualization, and so on. Chapter 13 covers how to get help from paid support, forums, mailing lists, and so forth. In addition to the standard edition of this book, there's a Barnes and Noble special edition that offers Chapter 14 "Basic Linux Administration", as well as an Appendix with a collection of "tips and tricks". The additional content is more "generic" Linux server and not Ubuntu-centric by any means. If you are indeed a Linux server admin newbie, this special edition might be a way for you to get the biggest bang for your buck. The quality of the writing and information seem on par with the desktop Ubuntu book, and while I welcome an "Official" book dedicated to the Ubuntu server, don't expect to become an expert by the last page. This book will get you started on the path of the server admin, but content that's contained in single chapters in the Rankin/Hill book, is available in much more detail in whole books and other resources (DNS and BIND, for example). Don't imagine that a chapter on backups and a chapter on recovery gives you everything you need to know, if you're serious about all this. If you use this book and the discs it contains, to set up your own Ubuntu server, for work or for fun, realize that it's only the beginning.

Monday, July 20, 2009

Review: The Official Ubuntu Book, 4th Edition

Authors: Benjamin Mako Hill, Matthew Helmke, and Corey Burger Paperback: 512 pages Publisher: Prentice Hall PTR; 4th edition (July 9, 2009) ISBN-10: 0137021208 ISBN-13: 978-0137021208 Reviewing a book in its Fourth Edition is both easy and hard. It's easy in the sense that, unless the book has completely changed, it is still essentially the same as prior editions. If it has done well up until now, chances are it will still do well. Of course the idea for the publisher (assuming the book has done well) is to at least make sure that the book maintains its reputation and hopefully get even better. For me, that translates into, once a good review, always a good review...maybe. The hard part is to pick out the bits that may have changed and evaluate them as part of the current mix. If the book hasn't changed at all and assuming Ubuntu has, then my review changes and not for the better. If the book has changed, how does it stack up to Ubuntu's changes? Does the book still meet the needs of the audience? The Official Ubuntu Book has done well since it was first published. I've reviewed each edition since the first one back in 2006, including my 3rd edition review, written for the linux-tutorial.info site just last year. As I recall for that edition, while the book was well written for the newbie Ubuntu user, it didn't really address those of us who are veteran Ubuntu users who just want to get up to speed on the changes. Let's see how the 4th edition fares. I suppose I should mention that there have been some author changes between the 3rd and 4th editions. Jonathan Jesse and Jono Bacon have apparently dropped off the radar, while Matthew Helmke has joined the team. At least that's what's reflected on the book's cover. On the inside cover page, the book states it was written "with" Ivan Krstic, Jonathan Jesse, Richard A. Johnson, and Jono Bacon, which probably means some of the material they contributed to prior editions is in the current one, but they didn't actively write for the 4th edition (yes, crediting authors in downstream editions can get complicated). I almost wonder why the Foreword to the 1st edition was included, except that it was written by Mark Shuttleworth. The Preface promises that the book has matured as Ubuntu has, so maybe some of my past concerns have been addressed. Keep in mind that at some point, if a book publishes sufficient number of subsequent editions, it begins to look like a patchwork quilt. Eventually, the oldest patches need to be removed completely to keep the book from becoming archaic. As the Preface also says, the book is supposed to represent the maturing state of the Ubuntu community, so hopefully, we seasoned users will be represented along with newer adopters. At 512 pages, you can't call this book a tome (some Ubuntu books are so large that you almost need help just to lift them) so as the authors state, a "pick-and-choose" process was used to select which topics "made the cut" and which did not. That automatically limits the scope of the audience. I've been critical of how that scope has been selected in the past. In the current book, the scope includes topics such as the installation, a desktop tour, and advanced management, but also includes different aspects of the "Ubuntu community". This is a good reflection of the ideals behind FOSS and, like it or not, chooses the audience this book best serves, which seems to be an interesting but not all-inclusive combination of readers. The first chapter is a snooze if you know what Ubuntu is, what Canonical is, and what Linux is, or you're not particularly interested in a history lesson. These topics will be more interesting for the newer user who wants to absorb as much about the idea of Ubuntu as possible (as well as how to use it, of course). The book comes with an installation DVD for Ubuntu 9.04, nevertheless Chapter 2 covers how to get different versions of Ubuntu, downloading and burning an ISO, and so on. The installation instructions are again more useful for the less experienced user, particularly since Ubuntu is pretty much a snap to install, at least using the default options. Nice touch adding how to install from a USB Key, though. Chapter 3 is a tour of the desktop and the commonly used applications available. This section could almost be a book unto itself (and in some cases, entire books do exist for individual apps such as GIMP and OpenOffice), but most users don't go that much into how each application works. If you didn't know, and wanted to understand what app to use for which task, this chapter will tell you. I don't consider setting up a printer as an "advanced" task (since everyone needs to print), but it's included in Chapter 4, Advanced Usage and Managing Ubuntu. Curiously, the chapter includes a brief task about using floppy disks, and floppy drives are all but gone from the modern computing landscape. It was interesting that the backup options mentioned only include burning files to a CD/DVD or backing up to an external USB drive, since applications like Zmanda support 9.04, at least according to Joe Panettieri's article. Some command-line goodness is also provided for good measure since, for my money, the real power of Linux still exists in the shell. A single chapter in the book is dedicated to the Ubuntu Server. This chapter was introduced in the last edition and, depending on your philosophy for an "official" Ubuntu book, is a good thing to keep around. Of course, it's a departure from "lets-tell-the-newbie-how-to-use-Ubuntu", but it's as much an introduction to advanced computing and beginning server management, as it is the Ubuntu server. If you want to go beyond the desktop user experience, it's a good chapter to read. If not, you can skip it (though I'd recommend it just for the introduction to apt-get and apt-cache). If things go wrong (and they invariably do), you'll likely spend some time in Chapter 6, which is all about troubleshooting. I'd like to think that with each new version of Ubuntu, errors will become less and functionality of applications will become smoother. I'm sure that's true, but nothing will ever be perfect. It's good to have a chapter that recognizes this reality. I was however, a tad disappointed to see that the My Wireless Card Is Not Working section of Networking was only about a page or so long. While I've never had a problem with wireless networking on my Ubuntu computers, not everyone can make that claim. If you end up with a wireless problem and need additional "magic", you'll have to look elseware. For many of the troubleshooting and repair tasks, keep in mind that they involve using the sudo and other commands in a bash shell. This means it's helpful to know a little about how the command-line works. To learn these skills, it's a good idea to not gloss over the Advanced and Server chapters presented earlier in the book. Chapter 7 introduces the Ubuntu community. If all you want is a desktop that lets you work and play the way you want, this chapter won't mean anything to you. However, since the book also includes a chapter on the Ubuntu server, some of this text's readers are assumed to want to go "the extra mile". Chapters 10 and 11 also discuss how to become involved in Ubuntu projects and connecting to ubuntuforums.org, respectively. While you may never participate in the development of an Ubuntu-related project, sooner or later, most Ubuntu users will have a question that's best answered in a discussion forum venue. If you think you do want to become involved in a project, you can see how to accomplish this. Chapters 8 and 9 discuss the Kubuntu and Edbuntu derivatives, if you either prefer the KDE desktop or are interested in Ubuntu optimized for the educational setting. Since you will probably need to access the shell at some point, Appendix A takes a little of the anxiety out of this, by giving the reader the command-line basics. If you are used to using Windows (and the vast majority of the PC-using world is), Appendix B provides a list of mappings from Windows to Ubuntu (Linux/Open Source) applications (Microsoft Word to OpenOffice.org Writer, for example). All-in-all, the Fourth Edition is a worthy update to the The Official Ubuntu Book. Still no information on version update options (alas), but I suppose that's what ubuntuforums.org is for. As I mentioned previously, 512 pages won't tell you everything there is to know about Ubuntu. It is enough to get you started though, and to take you into some interesting areas other books might not touch on.

Sunday, February 1, 2009

Review: A Practical Guide to Ubuntu Linux (Versions 8.10 and 8.04) 2nd Ed

Author: Mark G Sobell Format: Paperback, 1272 pages Publisher: Prentice Hall PTR; 2nd edition (January 9, 2009) ISBN-10: 0137003889 ISBN-13: 978-0137003884 I upgraded my Ubuntu VM to 8.10 just for this review (well, not "just" for this review, but mostly). Of course, Sobell's second edition of this "I-weigh-a-ton" tome covers both 8.04 and 8.10, but I run 8.04 on my production machine, so I figure I've got the book covered. Judging by the size of the book though, I'd have to assume that Sobell has it covered as well. But does he? Unlike Godzilla, size doesn't always matter. Let's have a look. A casual viewing of the book's back cover tells the reader that they can expect to find out just about everything there is to know about anything they can do with Ubuntu. While most folks think of Ubuntu as the most "desktop user" friendly version of Linux, and the most likely contender to chip away at Microsoft Windows' death grip on the home desktop market, there's a lot more to consider. At least according to the blurb I read, the server aspects of Ubuntu are well covered here. The list includes Apache, DNS, LDAP, NIS, and Samba, and that's just for starters. This isn't a "switch from Windows to Ubuntu Linux" text written for the average home PC user. It's, at least in theory, an "all-in-one" guide for everything you ever wanted to know about Ubuntu (but were afraid to ask). The first edition of this book was well received, at least as far as the general body of reviews is concerned. To ask "what's new?" in the second edition is answered on the front cover, since the most current releases of Ubuntu are 8.04 (Hardy Heron) and 8.10 (Intrepid Ibex). Assume then, that the only changes you'll find in this book have to do with what changed in the most recent versions of Ubuntu. The intro to the book does present an "overlap" section, but it wasn't what I expected. The material didn't cover the "overlap" between the first and second editions of this book, but between this book and another of Sobell's books, A Practical Guide to Linux Commands, Editors, and Shell Programming. Guess there's no crime in leveraging material from one Linux book to another. Is anyone out there going to read a book like this cover-to-cover? Maybe a few fanatical souls, but most people are doing to pick out just the chapters that apply to their situation. The book is written for just about everybody, from students and home users to programmers and system admins. The book is roomy enough to where it doesn't have to skimp on any of the details for the various audiences it serves. Each major part of the book could function as a publication all its own. Given that the live CD/installation DVD for 8.10 is included in the book, Sobell apparently wrote it with the "fresh install" population in mind. So much for my efforts at upgrading my 8.04 VM to 8.10 (not that it was really difficult to do). I was happy to see that the book did contain a couple of pages about upgrading from one version to another. I don't recall the first edition giving the topic that much attention. The most important piece of information that Sobell included was that certain features in the upgrade version may not be visible, as they would be on a fresh install (and I can attest to the truth of this). Since the book is written for everyone, Sobell included the very basics of installing Ubuntu, though the task of a basic install isn't particularly daunting with Ubuntu. Part II, "Getting Started with Ubuntu Linux" reads like a general primer on how to use Linux, with an emphasis on Ubuntu and the Gnome desktop (although there are instructions for installing KDE). After all, working in the bash shell and navigating the filesystem are pretty much the same across most Linux distros. Part III, "Digging into Ubuntu Linux" bores down into the X Windows System and presents more details about bash, as well as presenting an introduction to basic networking, while Part IV, "System Administration" introduces, well...system administration and Ubuntu (or Linux for the most part). Directories and the filesystem are covered again, but this time with a "management" emphasis, as well as working with the apt system and of course, CUPS printing. Part V, "Using Clients and Setting up Servers" presents Ubuntu as a server (which is a different installation path than the desktop install). This is where you'll find chapters on setting up FTP, Mail, LDAP, and DNS servers, among others. Programmers are served in Part VI, "Programming Tools", but only shell scripting and an introductory Perl programming guide are offered. Kind of a disappointment for those of us who prefer Python, but I guess you can't have everything. On the other hand, if you want to learn how to program, buy a programming book. If you find the idea of using Regular Expressions intimidating, Appendix A might offer you some comfort. Then again, it might not. While it describes what regular expressions are, I wouldn't depend on the scant ten pages here to teach you how to use them. The other four appendixes offer useful tips on how to get help in and out of Ubuntu, a brief security lesson, what FOSS is, and the 2.6 Linux kernel. I like the "Jumpstart" feature in the book, which provides the reader with an "in-a-nutshell" description on configuring various server roles, for those who just want to know "how do I do it". Each chapter is designed to teach the reader and an Exercises and Advanced Exercises list is presented to test the audience's knowledge. I would have preferred exercise questions that would have required the reader to do more "hands on" learning instead of just having to describe a process. You learn how to do something by doing it, not by talking about it. I guess in a book that's over 1200 pages long, you still can't have your cake and eat it, too. You can learn a lot from Sobell's book but you can't learn everything. To be fair, a book that could teach you everything about all of the topics this one contains, would require a forklift or Superman to lift off the floor. Some topics, such as the aforementioned Regular Expressions, are introduced in the most superficial of fashions. So are the various text editors available (vi, emacs, and so forth). Don't expect to really learn Perl programming in "Chapter 28: Perl". It'll take you more than 40 some odd pages to teach you anything practical about programming in general, let alone Perl. There's always a special challenge involved in writing a book that casts so wide a net, both in terms of audience and as far as the content it contains. Using the Perl chapter as an example, while the information is certainly valuable, there is just enough of it present to barely get you started. It could easily have been left out of the book, with no damage to those people who need to learn about Ubuntu and all its characteristics and roles. On the other hand, such a chapter could be used to guide the interested reader to other Prentice Hall books on the topic. This chapter doesn't do that, though there are a few URLs presented at the beginning of the chapter. I guess the publisher forgot that they also have Perl by Example, 4th Edition available, and the Ubuntu book's "Perl" chapter could have been used to link the reader to this more informative tome. Despite the "I-can't-cover-everything-no-matter-how-big-I am" issues with this book, it is still a worthy read for the person who wants to know about the roles Ubuntu serves and then a little more. As with the first edition, it serves as more than an Ubuntu book. It also introduces Linux and a bit on FOSS in general, as well and info on networking, Linux printing, Linux filesystems, and so on. The Sobell book will either be all that you need as far as Ubuntu is concerned, or it will inspire you to learn more about the topics of interest it just touches on. If you want to know more about the latter though, you'll just have to figure out where to look.