UNIX BOOK RECOMMENDATIONS
I can recommend:
1. To learn the UNIX user interface:
Deborah S. Ray and Eric S. Ray, UNIX (2nd edition), Peachpit Press, Berkeley, CA. 2003.
This small book covers a wide variety of shells, text editors and UNIX tools. It is well organized and will not send you to the poorhouse.
2. To teach yourself UNIX system programming:
Mark J. Rochkind, Advanced UNIX Programming (2nd edition), Addison-Wesley, 2004.
The book is a recently upgraded version of a very old classic. The author worked at Bell Labs, made several contributions to UNIX, among which SCCS, and is refreshingly candid about his likes and dislikes. The book covers the 300 most important UNIX system calls and is my favorite of the moment. Do not buy the first edition, as it is quite outdated.
Kay A. Robbins and Steven Robbins, Practical UNIX Programming: A Guide to Concurrency. Communication and Multithreading. Prentice Hall, Upper Saddle River, NJ, 1996.
The book is a good introduction to UNIX system programming. Like the previous one, it is the kind of book you want to have on hand when you work on your assignments.
3. To learn more about UNIX:
Marshall Kirk McKusick and George V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System. Addison-Wesley, Boston, 2005.
This is FreeBSD version 5.3 presented by its Great Architect. Even though the book will not help you with 4330 assignments, it is worth its sixty dollars.
4. To learn about LINUX:
Graham Glass and King Ables, LINUX for Programmers and Users. Pearson Prentice-Hall, Upper Saddle River NJ, 2006
As it title indicates, this book covers a lot of ground. It has a very good coverage of the various UNIX/LINUX shells, describes in some detail the most important UNIX tools, has a chapter on LINUX internals and even an introduction to system programming (but it does not cover IPC-related systems calls).