[colug-432] book recommendation

Rick Hornsby richardjhornsby at gmail.com
Tue Oct 18 16:00:48 EDT 2016


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.colug.net/pipermail/colug-432/attachments/20161018/020d4a01/attachment.html 


More information about the colug-432 mailing list