barrett@jhunix.HCF.JHU.EDU (Dan Barrett) (11/13/90)
I am seeking a UNIX textbook for an introductory course in C programming. (I already have a C book.) Does there exist a book that meets my requirements (below)? I'd like to hear from expert users and sysadmins especially. I want a book that gets the reader into the UNIX "philosophy" -- an environment for speedy program development, with dozens of tools (programs) that can be combined (via pipes and shell scripts) to create new tools. In short: I want a book that an expert UNIX user would read and say, "I wish this had been my first UNIX book!!" The book should have the following features: o Friendly for beginning computer science students. These students already know how to program in a high-level language. o Covers Berkeley UNIX as well as (or instead of) System V. (We are using a Berkeley system for the course.) o Written recently, so ancient practices are kept to a minimum. (For example, it should NOT teach a line editor like "ed" as the first editor.) [Yes, I realize that regular expressions are vitally important for UNIX use. But I'd rather cover them later, and not force students to learn a line editor in this day and age.] o Covers the Korn shell and the C shell, as well as Bourne. Covers shell-scripting in all these languages (or at least csh and sh). o Clearly specifies the differences between the shell and the OS. For example: - It CLEARLY explains that wildcards and other metacharacters are part of the shell, and therefore no parsing needs to be built into individual programs. - It FORMALLY explains the order in which a command line is parsed by the shell. - It discusses what happens (fork/exec, with child retaining the environment of the parent) when a command is executed from the shell... but a FRIENDLY discussion. Here, it might explain why "cd" is built into the shell. - It explains why quoting is necessary, together with a discussion of single, double, and back quotes, and the backslash. o Talks a lot about stream editing (use of pipes). Lots of practical examples. o Has a reference guide for the more common UNIX commands. o Emacs coverage would be nice. (Am I dreaming?) o An explanation of the C compiler system (cpp, cc, as, ld) would be nice, but not necessary. Does this book exist? The closest I've found is Sobell's "A Practical Guide to the UNIX System", second edition (Benjamin-Cummings, 1989). Thank you for your help!! Please: E-MAIL REPLIES ONLY, since I do not regularly read these groups. Dan //////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | Dan Barrett - Systems Administrator, Computer Science Department | | The Johns Hopkins University, 34th and Charles Sts., Baltimore, MD 21218 | | INTERNET: barrett@cs.jhu.edu | | | COMPUSERVE: >internet:barrett@cs.jhu.edu | UUCP: barrett@jhunix.UUCP | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////