In this post, I would describe how one can code a terminal/shell from scratch. At the end of the post, link to my github repository containing all the code is mentioned.