Question
Practice UNIX system calls by writing a custom shell interpreter in C/C++. Question 1) Implement a shell, and provide the source codes. Your shell should
Practice UNIX system calls by writing a custom shell interpreter in C/C++.
Question 1) Implement a shell, and provide the source codes.
Your shell should prompt the user for a command. The command prompt must be "AB>" where A is the first letter of your first name and B is the first letter of your last name.
The shell executes a command, if it is an external command, by fork(2)-ing the main process and having the child execute the command using a function of the exec(3) family. The parent should use a function of the wait(2) family to wait for the completion of the child process before continuing.
If the command is a built-in, the shell execute it without using fork(2) and exec(3).
The shell must be able to handle internal commands cd, help, exit and an additional built-in command of your choice.
If the user enters the command exit, the main process should not call fork(2) and instead just exit the program successfully.
Question 2) Add an ability to handle the history internal command, and provide the source codes.
The history command will print the list of the commands executed by user or message indicating the history is empty. Practice the command for better understanding before designing a solution.
The shell needs to keep every command in a data structure in the same order of execution. For this purpose, you may want to implement a simple singly linked list.
!!: This command will execute the last command the user executed. This command should not be added to the history list.
!n: This command tells the shell to execute the n-th command in the history. If no such command exists it should display an error. This command should not be added to the history list. You may find the function atoi(3) helpful in parsing this command.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started