Ryan Avery

Custom Shell


This project was created for my CS-453 Operating Systems class in the Spring semester of 2017 at Boise State University. The program was written in C and creates a simple shell that is meant to look like and act like the shell you would commonly use in Linux.

The main features of this programlarge project picture is that it acts (mostly) like a simple shell. You can use commands like “ls -l” or “cd ../..” or “cat README.md” It also allows for the running of background jobs (processes) and keeps track of them, informing the user when they have finished.

To run this code, first use the command “export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:../p0/lib” and then use “make run” This will generate all of the files needed and start the program. To exit the program, simply type exit and press enter. To start a job in the background, add an ampersand to the end of your command. For instance, “Sleep 10 &” and “Sleep 10&” will both start a background job of “Sleep 10” which will run in the background on a separate process. To see a list of the currently-running jobs, type “jobs” Whenever you send a command, any jobs that have finished will be notified to you just above the next shell prompt.

This program is quite large but it also has a large amount of documentation. Use the command “make” to generate all the documentation which was created using doxygen, a standard tool for generating documentation from annotated C and C++ sources.