Slashdot Mirror


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?"

2 of 57 comments (clear)

  1. Recommendations by Saint+Aardvark · · Score: 5, Informative

    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.)

  2. Use several, and make your own by arcade · · Score: 5, Insightful

    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