As part of an assignment of the Network Programming course, we had to develop a BASH type shell in C that supports features like input/output redirection as well as pipes, along with some additional features like multiple pipes (for simulataneous piping of output to multiple commands) and a shortcut mode for executing commands.
This assignment heavily leverages UNIX system calls, UNIX process groups and Inter Process Communication techniques.
More details are given in the Assignment PDF, and the design of the code is explained in the design document. This was my first medium-scale project developed in C, and I'm hugely grateful for having taken up the course.
As for running the shell, use the make file and simply run the executable that is generated. Hope you find it interesting!