- Implement a minimal shell by following this tutorial: https://brennan.io/2015/01/16/write-a-shell-in-c/
- Extend build in commands
- Implement pipes and redirection
Other interesting topics:
- Quoting
- Substitution
- History
- Configuration
- Control commands and signal handler
If I feel really adventurous I could actually implement a shell, that I want to use and that really fits my personal needs and expectations. Before doing that, it might be sensible to try out shells other than bash and look for good code that is already existing (many shells are open source).