[colug-432] book recommendation

davelist at mac.com davelist at mac.com
Tue Oct 18 17:32:42 EDT 2016


> On Oct 18, 2016, at 4:00 PM, Rick Hornsby <richardjhornsby at gmail.com> wrote:
> 
> 
> 
> 
> On October 18, 2016 at 14:10:07, davelist at mac.com (davelist at mac.com) wrote:
> 
>> We’re teaching a one credit Unix course next semester (so about 15 total contact hours) and I’m looking for a book. I have a handful of Unix books but am looking for one that at least covers what is numbered 1-7 below and haven’t found one that covers all these topics. I have old copies of “A Practical Guide to the Unix System, 3rd Ed” by Sobell and “Unix in a Nutshell” but neither of those are organized very well for what I’m looking to cover. A search for an intro Unix book turns up this: "Learning the Unix Operating System, 5th Edition
>> A Concise Guide for the New User” but that doesn’t cover all the material.
> 
> The only book[1] I could think to recommend is over 20 years old now, and I think it would both cover things you don't need (lpr) and would miss several of your topics. However, I have used this book in the last few years to help teach new Linux engineers some of the basics.
> 
> I know this isn't what you asked about, but if I could make few suggestions regarding your topic selection based on my experience and things I've run into teaching initial exposure to Linux. First, you've got a very comprehensive and well thought out list, very similar to the lists I've put together. Some things I might consider adding/subtracting:
> 
> + *NIX filenames are case sensitive. Case almost always matters in *NIX. JUNGLE.TXT is not the same thing as jungle.txt. Also, please don't try putting spaces in filenames. Whitespace means something special.
> + Since it looks like you're focused on Linux, basic package installation/management (apt, yum/rpm) - install/remove/list installed
> + Starting and stopping services (SysV, Systemd, launch control?). I don't think it is necessary to dive into init scripts/unit files/etc at this level.
> + Before all else fails, consult the man page. (Or are they info pages now?). Also, nearly every command has some form of help output. -h, --help, etc. Use it.
> + Along with exit, the exit code ($?).
> + Basic user/group management (what's my UID, what groups am I in?)
> - Makefile seems a bit of an advanced topic considering the others listed. I rarely, even when I was compiling almost everything, needed to mess around inside a Makefile. I think for students who are learning the basics, a Makefile is going to confuse the snot out of them.
> - I think maybe git is also a bit advanced, but I can see the most basic operations being useful to know. Otherwise it's a topic I might save for a programming class.
> 
> Basic troubleshooting
> + First. It is rarely necessary to reboot a *nix system to fix a problem. Often this covers up the problem and wipes out useful clues. In extreme cases, it may make repairs desperately more difficult. This isn't Windows, so your first instinct should not be to reboot the box.
> + Log files (/var/log/[messages|syslog], dmidecode and dmesg commands)
> + Read the command's output. Too many people new to *nix gloss over the output and don't understand a) if something worked and b) if it went wrong, why - simply because they're not reading the output. *nix is generally pretty decent at telling you what you did wrong.
> 
> Several of these topics obviously require root, so if you're only teaching unprivileged access, those wouldn't apply.
> 
> [1] https://www.amazon.com/What-You-Need-Know-Administrator/dp/1565921046


Thanks both Roberto and Rick. I probably should have elaborated a bit - this is a one-credit course our CS majors may take as an elective (and why I want to cover a bit about Makefiles and git). The topic list I sent was not a well thought out complete list (i.e., obviously there are other command such as man, etc. that will be covered) - just a basic list I put together quickly to get suggestions for a book. Our goal is not to teach them to be system administrators, but give them basic familiarity so they can work on Unix systems (and the background to learn more if they wish to do system admin work). Many have Macs so this will allow them to learn how to use the shell on it. I have no trouble supplementing for a few missing topics (I've used Unix since 1991 on Sun, HP, SGI machines and then Linux from 1997-2004, and mainly use Macs now) but am trying to find a book covering most of the topics.

Sobell's book that Roberto mentioned ("A Practical Guide to Linux Commands, Editors, and Shell Programming") is probably the closest I've seen to what I'm looking for. And yes, the Pro Git book is what I recommend students use to learn git (and why I didn't care if the Unix book I use for the course includes any git coverage).

Thanks,
Dave







More information about the colug-432 mailing list