Custom Shell

Project Description

The general goal of this project was to create a basic shell that could run commands in interactive mode and to run commands in batch mode. I also implemented serial, parallel, and background execution, as well as the SIGINT signal.

I completed this project as part of my operating systems class, and while it's one of the more basic projects I've worked on, at least it terms of what already exists, it's one of the most fascinating. Before this project I didn't fully understand how much was going on in the background of my terminal. My favorite part of this project was definitely implementing cd. It's by no means the flashiest of the commands, but it blew my mind when I entered cd into my shell and I actually changed directories. Again, a simple project in appearance, but it's given me a new appreciation for all things shell.

Skills Utilized

  • linux commands
  • c programming
  • fork() and exec()

Link to project on GitLab