A Life In A Day Learning UNIX
Anyone who knows me knows I'm very good at looking for ways to avoid work. Whilebrowsing through the computer section of a large bookstore, I came across the title SAMSTeach Yourself UNIX in 24 Hours (Macmillan Computer Publishing, July 1997). It got methinking that I could just give this book out to people in my "Introduction toUNIX" class, then go back to the hotel and sleep until they finished reading.
Inside the front cover I found the proclamation: "In just 24 lessons of one houror less, you will tackle every task you need to get the results you want." That mademe wonder how they knew what results I wanted and sounded way too good to be true.Recognizing one of the authors as the creator of the elm mailer application, I decided Idefinitely needed the book.
Like any good techie, the next step was to find someone to buy it for me. One e-mail tothe outstanding editors at HP Professional and the book appeared on my doorstep a few dayslater (sometimes I wish I were a columnist for a car or boat magazine).
THE CLOCK IS TICKING
Scanning the preface, I noticed that the authors are well qualified, having over 30years of UNIX experience between them. It also said that if you spend some time tryingthings out, expect it to take more than 24 hours, which is a nice shot of realism, becauseyou really can't learn computer subtleties without practice.
The table of contents indicated that I would learn the history of UNIX, a large numberof UNIX commands, regular expressions, vi, emacs, shell programming, C programming, Perlprogramming, networking and the Apache Web server. Wow! All that in 24 hours! And it tookme 20 years.
So, I clicked the stopwatch and started reading. The first chapter was read easily inunder an hour, leaving some time for people learning UNIX to perform the activitiessection. Lots of interesting trivia about early UNIX was in there, except for the mentionof Heidi's dog BIFF at U.C. Berkeley. Most people learning UNIX might find this bit ofhistory unnecessary, but I was pleased, because it sets the right attitude.
What I was not pleased to see in the very first chapter were things like:
alias apropos "man -k \!*|uniq"
add man -k \! to your .cshrc file
man -k disk | grep '(1'
talking about disk drivers.
No wonder so many people think UNIX is complex. If this first chapter is not enough tocause you to reject UNIX, nothing is. Most people just use a computer as a tool, and don'tcare about trivia or unnecessary details. This is a hard thing to learn for those of usthat consider computers a profession. Undaunted, however, I continued on.
This lesson taught me that the book was primarily written for those sitting at Macs andWin32 PCs. The login discussion talked only about connecting to a UNIX box, though manypeople have an X-terminal or workstation on the desktop. Heck, if you can't figure out howto login, you probably don't need UNIX.
SNAP INTO ACTION
I decided to try one of the 'Action' sections. That was a bad choice. Step two told methat "Ninety-nine percent of the commands you type with UNIX don't change if youmodify the punctuation and spacing." Wow! I never knew that, so I tried typing in grep, which caused a command not found error. Even ls-l didn't work, so I guess that spacingis rather important (grep and ls -l would work).
I don't know of many commands that use punctuation, so I didn't try that. Thediscussion in the book was about whoami vs. who am I. Those are about the ONLY commands Iknow where the spacing can be changed and they still work. Seemed like a bad example,especially for someone just learning UNIX.
The really scary aspect in this section was asking what happens to the date and time ifyou turn off or unplug your computer. Yikes! That's a Mac thing -- UNIX boxes on a networkare seldom shut off. I hope that not many readers tried this. The exercise sectioncontains questions like "Can you have the same GID as someone else on thesystem?" which I think is a little bit too complex for someone with less than twohours experience. Especially since the answers are not listed anywhere that I can find(except back in the text of the chapter).
This was a pretty good description of the UNIX file system, although I noticed on page42 that the sample directory listing had two entries with exactly the same name. Hope nobeginners noticed that, because it's impossible on a UNIX system. The dynamic librarydiscussion may be beyond the scope of what most people who are just trying to login, runprograms to perform their job and manipulate files might need to know. But heck, Ifinished in less than an hour, so I'm still on schedule. I even tried the exercises,though the listing of /users was a bit of a problem because I was in an 800-node networkand it was an NFS mount point.
As the hours wore on, my impression started to change. As a beginner's book and a guideto learning UNIX for a typical "Introduction to UNIX" class, this book wouldprovide little but confusion. Very few people would have the perseverance to carry on andlearn from it.
What I began to notice is that the text is not written for typical Mac or PC users, butfor computer people. If you are a power user of any system, you will appreciate being toldhow true UNIX geeks pronounce /etc and mv. You will also know what to do when trying tologin using upper case letters and it doesn't work. (This book says the system will actdifferently. Sure enough every system I have an account on worked differently: My loginattempt was rejected.)
In the lesson for the sixth hour it says that you can't copy a directory with the cpcommand. An experienced computer person might try to look in the man pages as described inchapter one and notice the -r or -R option that's been available on most systems for thelast 10 years or so. That was a disturbing oversight, especially considering thestandardization of most major UNIX systems commands with the UNIX95 branding event of1995. An inexperienced user would believe it.
Although the book has many 'misteaks,' it has a certain appeal. I'd recommend it tosystem administrators of other systems trying to become more fluent in UNIX. I'd recommendit to full-on power users of other operating systems. And I'd recommend it to peoplewho've been around UNIX for some time and want to fill in some details. But, in no waywould I recommend the book to people with 24 extra hours on their hands who want to learnUNIX. Darn! Looks like I'll just have to keep teaching UNIX classes.