A C program that serves as a shell interface that accepts user commands and then executes each command in a separate process. The shell supports:
- Creating the child process and executing the command in the child.
- Providing a command history feature.
- Input and output redirection.
- Allowing the parent and child processes to communicate via a pipe.
- Implementing directory change
- Displaying an up-to-date path