Choosing a Unix System Administration Textbook? 57
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?"
The Unix System Administration Handbook... (Score:5, Insightful)
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.
Re: (Score:1)
Re: (Score:2, Funny)
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.
Re:The Unix System Administration Handbook... (Score:5, Insightful)
Clickedy-Click! by Simon the BOFH [ntk.net]
It's one of the classics, and no Unix administrator's education would be complete without it.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
(dont get me started, my biggest annoyance with "linux" is that everybody follows their own "standard" for how to configure the system.)
Comment removed (Score:4, Insightful)
Re: (Score:1)
Re: (Score:2, Informative)
Re: (Score:2)
"...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.
Don't!! (Score:2)
Any book you get will be outdated and you will be making poor students spend $50 that they don't have.
Re: (Score:3, Insightful)
I fully agree. I'll take a HOWTO over a book any day!
Re: (Score:2)
Using the FreeBSD handbook [freebsd.org] I was able to go from zero POSIX experience to a comfortable use of the system, while taking care of the installation & setup process by myself. You just need to come up with some excercises and let the students figure them out using the #1 UNIX Principle: RTFM.
Re: (Score:1, Insightful)
It's helpful to have a dead-tree reference for a piece of software or hardware that you'll be using often.
Re: (Score:1)
Re: (Score:2)
Re: (Score:3, Informative)
p.s also choose bash/tsh based on your audience, if its a mac crowd tsh is going to be more useful but if its a linux crowd stick with bash
Re: (Score:3, Insightful)
Do you mean tcsh? I sincerely hope noone writes shell scripts in csh or tcsh these days. I still kind of like tcsh as an interactive shell, but it's a dead end for scripting.
Also, I like bash scripting, but you should primarily teach the POSIX shell subset. Even Linux distributions try to avoid bashisms in their scripts.
Re: (Score:2)
p.s also choose bash/tsh based on your audience, if its a mac crowd tsh is going to be more useful but if its a linux crowd stick with bash
OS X *used* to have tcsh as the default shell, but now it uses bash. But I agree with jgrahn [slashdot.org]:
I sincerely hope noone writes shell scripts in csh or tcsh these days. I still kind of like tcsh as an interactive shell, but it's a dead end for scripting.
I use tcsh for my interactive shell, but all my scripts are in plain old Bourne (no, not bash, sh!). If i have to loop or something in an interactive context, I end up doing it inside a 'sh -c' block. :-)
-Ster
Recommendations (Score:5, Informative)
First off, you can't go wrong with Essential System Administration [oreilly.com], 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 [amazon.com], 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 [everythingsysadmin.com], so I presume it throws them a few nickels if you buy it that way.)
Re: (Score:2)
Re:Recommendations (Score:4, Insightful)
I'd also recommend "Time Management for System Administrators". It's one of the best books I've read and has helped me immensely in prioritizing and scheduling my work.
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
I'm turned off. The text in the sample chapter on the site is cutesy "How do I fix spots on my dishes?" and while entertaining, very unprofessional.
Use this one... (Score:1, Funny)
There really is no one really great book (Score:3, Interesting)
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+ (Score:2, Informative)
Re: (Score:2)
Re: (Score:1)
Find a book to fit the class, not the other way. (Score:4, Insightful)
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'll go out on a limb here..... (Score:2, Insightful)
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 q
Re:I'll go out on a limb here..... (Score:4, Insightful)
Re: (Score:3, Insightful)
Christ, university can be soul crushing.
Re: (Score:2)
Mark Sobell (Score:3, Informative)
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
The Practice of System and Network Administration (Score:4, Informative)
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
Re: (Score:1)
Seconded.
The authors (Limoncelli and Hogan) have a page about the book [everythingsysadmin.com]
Use several, and make your own (Score:5, Insightful)
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.
LPI Linux Certification in a Nutshell (Score:1)
Which Unix? (Score:2)
Thanks Guys! (Score:1)
Re: (Score:1)
If you want them to really *get it*, bring out the old Linux From Scratch stuff.
Re: (Score:1)
Rute (Score:3, Interesting)
http://linux.2038bug.com/rute-home.html [2038bug.com]
http://rute.2038bug.com/index.html.gz [2038bug.com]
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.
Redhat manuals are very good (Score:1)
http://www.redhat.com/docs/manuals/enterprise/ [redhat.com]
there are PDF downloads too for you to print.
The UNIX-HATERS Handbook (Score:1)
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.
this is the book you want (Score:2)
forget the others, this is the one to own.
BD (Score:1)
you can browse it online at:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html [freebsd.org]
or download an English version from:
ftp://ftp.freebsd.org/pub/FreeBSD/doc/en/books/handbook [freebsd.org]
Other find manuals of relative interest to the Unix community can be found there, too.
Principles of Network and System Administration (Score:1)
http://www.iu.hio.no/~mark/SystemAdmin/principlebook.html