Choosing a Unix System Administration Textbook?
Smantha writes "I recently began teaching a Unix System Administration course at a community college. The previous instructor was using a very outdated textbook, and I'm trying to find one that is a bit more advanced and useful for my students. They are required to take a 100-level Unix class before this one and are familiar with the basics of using the command line. I'm looking for something that covers topics such as OS installation, software/package installation, user management, system administration tools, troubleshooting techniques and tools, service configuration (network services, for example) and some miscellaneous topics such as compression/archive tools, grep, make, and the like. What books have you found to be good references on your desk? What books have been good for learning these sorts of topics?"
Define "too old".
:-) (dont get me started, my biggest annoyance with "linux" is that everybody follows their own "standard" for how to configure the system.)
For an entry level class, you need to start with the classic: UNIX System Administration Handbook (3rd Edition, 2000) by Evi Nemeth, et al. If you want to focus on linux, you can go with Linux Administration Handbook (2nd Edition, 2006) by the same authors.
Once you learn the basics, you need to pick a flavor and dive in with more "up to date" stuff. Something that covers zones, smf and zfs for solaris folks. I'm sure there are new features to linux, but I cant think of any at the OS level that dont vary widely by distro
Unix is 30+ years old and the basics still have not changed in a very, very long time. Its like complaining that a programing class is still using a 10+ year old book to explain looping and variable scoping.
ubuntu for dummies
Comment removed based on user account deletion
Info and man pages are incredibly useful, and your students will need to learn how to read their at some point. Beyond that, google is the resource for system administrators these days. Philosophy is found elsewhere, but the nuts and bolts of configuration are usually found on the software's website.
Any book you get will be outdated and you will be making poor students spend $50 that they don't have.
But how well do they work as textbooks?
First off, you can't go wrong with Essential System Administration, 3rd Edition by Aeleen Frisch. Really, really excellent book.
But just as important as the specifics of Unix, I'd argue, is the general question of how to be a good sysadmin. ("Start by installing Linux" is my usual smart-ass answer, but I'll skip that for right now...) The Practice of System and Network Administration, 2nd Edition, by Tom Limoncelli, Christine Hogan and Strata Chalup, is a truly excellent book about how to be a good sysadmin in the general case. I can't recommend it enough. (BTW, the link for the book comes from the authors' website, so I presume it throws them a few nickels if you buy it that way.)
Carousel is a lie!
Everything they need to know for a career in the field
Also, you really should not expect there to be one great textbook for such a broad topic. Things like HTTP-server configuration, DNS configuration, POP/SMTP server admin, Security, shell scripting etc. are all separate focal points of system administration that each command entire multiple books and can each easily cover a whole semester on their own.
The best route for teaching an entry-level class is probably to teach your students a popular shell such as Bash with a book like Learning the bash Shell, Third Edition [O'reilly publishing]. Shell interaction is really the most important fundamental skill for a UNIX systems administrator. (i.e., a sysadmin will have to be proficient with the Shell before he or she can do other critical things like securing the system, network configuration or installing software).
Linux+ guide to linux certification http://www.amazon.com/Linux%2B-Guide-Linux-Certification-Second/dp/0619216212/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1208645101&sr=8-1 It worked very well and is extremely comprehensive. With some linux experience, you might have to jump around a bit in the beginning. Avoid the activities at the end of the chapters though, just use the included labsim software. The book is a little pricey and the labsim does not work in wine, but the book is very concise and readable and progresses in a logical order.
Good calls. The Nemeth books are quality.
UNIX for Managers. By Steve Ballmer [Flying Chair Press] 2005
Eunuchs by Dummies - Lorena Bobbitt [Scissor press} 1993
The Fry and I, attributed to either Richard Stallman or some guy over at the returns desk at Frys.
Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
It seems like you have an idea of what you want this class to be. The idea isn't to just pick a text because it's "good". It's to pick a book that has the same ideas you want to teach. You may find a "good" textbook, and just don't believe in certain philosophies in the book. You don't want to keep having to go "well, it's like this in the book, but it's better to do it my way". If you've fleshed out your ideas into actual lesson plans, it may just be better to bypass a book, and strictly go on course notes. Like I said, the main factor in this will be finding a book that melds with what you want to do.
Books people have mentioned, such as the ORA books, ARE good references. But they aren't text books, and it probably isn't a good idea to use them like one.
My suggestion, would be to read though some of the options here. However, if none match with what you planned, good course notes and classroom time would be the better idea. Especially if there are ideas that a book present that go against what you are teaching. You don't want students that have two conflicting ideas about a topic.
I think that's the best book out there. Just make sure you get the most recent edition. I had the 1st or second edition, which covered pre-Solaris SunOS, BSD 4.x on a Vax, and System V on an AT&T 3B-whatever. Their more recent editions include Linux, Solaris, and probably others (FreeBSD? AIX?).
I once had a class where the instructor said there wasn't any decent textbook but the administration demanded that he have one. He told us to get some really cheap ass book that had all the information that he taught. BUT....it DID NOT have the information in the style this brilliant teacher could give. In other words, we listened, took notes, asked questions, and ignored the damn requirement to get the textbook.
This was at Georgia State U. for those of you who want to know. The instructor went on to much, much better things.
I tend to find Mark Sobell's books excellent, in that they are plain-spoken and *not boring*
Someone up there mentioned "Install linux" as a snarky answer. There's no substitute for hands-on. Even for those that don't want to actually install Linux, there are Live CDs and VMWare images.
Oh yeah, and just because something is old doesn't mean it's useless. Sometimes the old stuff saves one's butt when you can't find a click-and-drool interface for what you need to do. Look at the butt-saving stuff in the old textbook and see if the new texts cover 'em.
--
BMO
'tis a good textbook - I use it for the SysAdmin class that i'm teaching.
Revolving around install/configure/run a Debian VMWare machine, sitting on the live internet.
this textbook provides useful stuff that students wouldn't find in the how-to on the internet - the kind of stuff you'd want to know before becoming a sysadmin.
The one other resource i'd love my students to master is google.
pointless questions solved with one quick google search
arrg, why dont they teach Effective Google searching in CS1000
The sysadmin class I'm taking right now uses Essential System Administration. Its doesn't function as a textbook in the same vain as math textbooks, but for required reading dished out by the teacher I think it works quite well.
Seconded.
The authors (Limoncelli and Hogan) have a page about the book
Backups are for wimps. Real men post their data in comments and have slashdot mirror it
I learned from the second edition (red cover) circa 1995 for SunOS and Solaris, on the advice (and tutoring) of the two senior sysadmins at my work.
I'm currently teaching my neighbor FreeBSD using the third edition (purple cover).
The latest version still covers UNIX in a generic sense, with specifics needed for Solaris, HPUX, Linux and FreeBSD.
Build it, and they will come^Hplain.
Clickedy-Click! by Simon the BOFH
It's one of the classics, and no Unix administrator's education would be complete without it.
Good, inexpensive web hosting
Okay, so you want to teach people Unix.
First off, it's important that you know unix yourself. Then it is important to explain the unix philosophy, and start with the basics. Since I do a bit of unix teaching, I think I'll put forward how I prefer to teach my pupils.
First off, it's important that they know the basic philosophy.
- Everything is a file
- Many small utilities, that does its own little thing
- Utilities can be combined.
Choose a decent shell, and teach them how to use it. bash seems to be the industry standard, so go for that (or go for whatever you want, but be certain that you know it yourself).
Then teach them about STDIN, STDOUT and STDERR.
Explain that each utility they launch have those three file descriptors. Teach them pipes. Explain that pipes connects STDOUT from one process to STDIN of another. Explain that you can redirect STDERR to STDOUT to include it in the pipe. Explain that you can connect STDOUT to a file. Explain that you can connect a file to STDIN.
Explain command line substitution (backticks).
Then go forth and explain the basic utilities. Explain how to use 'man' and 'apropos' (or man -k). Explain the other basics such as cat, grep, cut, tr, find, xargs, df, kill (man signal), pkill, the evils of killall, ifconfig, netstat, and so forth. Explain how you can use pipes with these utilities. When they've mastered the basic utilities, move on to explaining sed and awk.
When they've understood these basics, which they should after some 3-4 lectures + training sessions - they can move on to the more advanced stuff.
Explain about filesystem hiarchies. Explain the basics of filesystems and what inodes are. Explain atime, mtime, ctime. Explain how to use fdisk (or format if solaris). Explain how to create filesystems - and why inode density might be important. Explain why it's important with different partitions / disks. Then move on to explaining volume management.
At some point, they should read "Learning the bash shell" (or a similiar book for other shells), and learn shell scripting.
At some point, they should choose themselves another scripting language, be it perl, python, ruby or something else.
After they are past these basics, you should start talking about actual system administration. They are now ready to move on to topics such as how to configure syslogging, NFS and how to configure the local mailer daemon. After that they should now have had to touch the MX records, and DNS might pique their interest. Teach them bind. Then teach them another DNS daemon just to show that there are more of them. djbdns might be a good alternative.
If you're evil, this might be a good time to teach them to hate printing by trying to explain to them how to configure a print-server. Make sure there are some evil printers around. It's important to teach them about both postscript-printers and the evils of non-postscript printers.
After all this, they should have a toolchest big enough to be able to do the rest themselves. They're ready to be self-taught for the rest of whatever they need to do.
"Rune Kristian Viken" - http://www.nwo.no - arca
Definitely take a look at the second edition of O'Reilly's LPI Linux Certification in a Nutshell. The table of contents shows great overlap with the topics you're interested in.
While there are plenty of books out there on Unix, not all of them cover all flavours of Unix. Sometimes you are better off getting something that covers one flavour well, or be happy with one that is a good compromise of all of them. The book I have is Essential System Administration. It is a good book, but there are are certainly times that I would like a bit more depth on certain subjects, but when that need arises I usually head off to the internet.
Jumpstart the tartan drive.
Thanks for all the advice, guys! I have tossed around the idea of going without a textbook, but, in that case, I'd at least like a good reference book so that those that don't learn well from hearing something spoken will have something written to lean on. As for the "install Linux" idea - that's day 2 of my lesson plan. I bring in a bunch of disks (various flavors of Linux) and set them loose. The comments suggesting "the basics" are correct, but as the OP notes, there is a 100-level class that they take first to get comfortable with such things. I'd like to move beyond the "this is a mouse" stage and into the guts of the OS more. When I referred to the previous textbook as outdated, I mean that it uses tools that have generally been superseded by newer tools - for example, our new installs of Fedora, Ubuntu and OpenSuse don't have lpr but use CUPS instead. The textbook doesn't even mention CUPS, so the whole chapter on printing is useless. Believe me, I go for old-school, command-line originals, but if the install we're working with doesn't have the tools listed in the books, but has something newer and better, I want my students to be able to try it out. Thanks for all the title suggestions. I'll be researching those for the next week or two!
Just why should I Read The _F*cking_ Manual, when all i want to do is programming?
Hackers have long memories. It works both ways.
I would use Rute by Paul Sheer:
http://linux.2038bug.com/rute-home.html
http://rute.2038bug.com/index.html.gz
Rute is a "Rute is a technical reference and teaching tool for new GNU/Linux users as well as advanced administrators". It is available online and in book format. It is copyright 2002, so it isn't terribly out of date.
It is a good curriculum for linux users or administrators. If you don't like the way it is setup you could get the online copy and change it.
The only thing I'd be worried about in terms of datedness is LPI/RHCE certification. I doubt it would get you through RHCE as it now covers SELinux as well which is not really covered in Rute.
You are in the right ballpark of thought.. A good way for apprehending the bug UNIX is by focusing on POSIX. It is the standard by which some of the most modern systems (except MSFT... they wont conform) are compared to. Plus since posix is huge.. there is a lot to learn.
In the case of wanting a reference book instead of something like the two I seconded the recommendations of above, I would have to recommend UNIX in a Nutshell. There is no better printed UNIX reference out there. Some of the chapter topics include the commands themselves, various shells, editors (this is super important), pattern matching, make, and more.
RedHat Linux Documentations are very good.
http://www.redhat.com/docs/manuals/enterprise/
there are PDF downloads too for you to print.
Agree with the Nemeth book, never leave home without it. Supplement this with a spare PC and a few cheap disks / other peripherals, then pick a number of Unix versions you can get for free then spend a bit of time doing all the commercial hosting oriented stuff to it. Build it, tear it down, play with disks, backups, scripts for all sorts of maint, build Apache and other standards, drag it, drop it, treat it like an object... basically use the bejeezus out of until you learn all the little twinks the books don't cover. That is, start with the book and move past it by beating the OS up until it submits. Lecture+lab FTW.
Do not mock my vision of impractical footwear
Or, by the name I use to remember it, ugh.pdf
I think university should be about education, not about job training. Aside from the entertainment value, the UNIX-HATERS Handbook provides interesting information about the design of Unix systems, as compared with other operating systems that have been tried. You can use sections from it to start off discussions, either about why Unix is like that, or how it has changed since then.
Have a nice time.
Try www.parkland.edu/~smauney/csc171 or /271. Good stuff.
ISBN-13: 978-0130206015
forget the others, this is the one to own.
three can keep a secret, if two are dead - benjamin franklin
(dont get me started, my biggest annoyance with "linux" is that everybody follows their own "standard" for how to configure the system.) Thats why some of us use Fbsd. Its at least consistent. Nor do you have to worry about your 'favorite linux distro' going up in flames someday due to lack of interest.
---- Booth was a patriot ----
you can browse it online at:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html
or download an English version from:
ftp://ftp.freebsd.org/pub/FreeBSD/doc/en/books/handbook
Other find manuals of relative interest to the Unix community can be found there, too.
"...in the same vein..."
I'm assuming a simple typo on your part, but others may need to be informed as to which word you actually meant.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
I would check out Principles of Network and System Administration by Mark Burgess.
http://www.iu.hio.no/~mark/SystemAdmin/principlebook.html
--- there's no there there.