For the Unix course at WWU, we spend the entire 10 weeks implementing a mini shell based off a 6 assignment series. Along the way, we are required to use Unix tools for development such as gdb, vim, valgrind, and CVS.
The features overview above is fairly high-level – there are a lot of details that can be seen in the assignment series.
Source code is available on request.