For my EECS 678: Operating Systems course, one of the projects we have to do is build our own Unix shell, which would be able to interpret commands and execute them accordingly. We support basic features, such as subprocess execution, background processes, PATH
lookups, arbitrary number of pipes, shell built-in commands, and a nice command line experience with arrow keys with history.
Made with ❤️ by Sandy Urazayev and Jacob McNamee.