There're two things here; there's the C language, which it sounds like you've got some grasp on, but then there's the standard library and system calls. The system calls will be OS specific, so you probably want to look for a guide not just for C, but for operating systems. System calls are generally how the program interacts with anything outside itself (files, user input/output, timers, network, communication with other programs on the machine, etc).
Building a shell is a common assignment on many university level undergrad operating system courses. So my advice is: look for an article about building a shell from scratch for Linux OR look for an open operating systems course and check the syllabus to be sure it includes building a shell.