Beginning computing students often finish the introduction to programming course without having had exposure to various system tools, without knowing how to optimize program performance and without understanding how programs interact with the larger computer system. Adam Hoover's System Programming with C and Unix introduces students to commonly used system tools (libraries, debuggers, system calls, shells and scripting languages) and then explains how to utilize these tools to optimize program development. The text also examines lower level data types with an emphasis on memory and understanding how and why different data types are used.
System programming is important and after reading this and doing many of the exercises I fail to say I learned much that I needed from it. This was used in a hybrid course that was a mixture of C and linux. I recommend just going to Kernighan and Ritchie for C and looking for systems level understanding elsewhere as it will likely be more up to date and have what you need.