Welcome to the collaborator readme file for the Simple Shell project! This project was built from scratch by Olamide and Mohammed as part of our collaboration for ALX.
The Simple Shell project aims to develop a basic shell program that can execute commands and provide a command-line interface to interact with the underlying operating system. The shell supports various features, including executing built-in commands, handling external commands through forking and executing child processes, managing environment variables, and more.
- Name: Olamide
- Role: Software Engineer & MSLA @Microsoft
- Responsibilities:
- Implemented the core functionalities of the shell, such as command execution, input parsing, and handling built-in commands.
- Worked on the implementation of the command history feature.
- Collaborated with Mohammed to ensure smooth integration of different components.
- Conducted extensive testing and debugging to ensure the shell's reliability.
- Name: Muhammed
- Role: Software Engineer
- Responsibilities:
- Implemented the process creation and management functionalities, including forking and executing external commands.
- Worked on the implementation of the shell prompt and command line parsing.
- Collaborated with Olamide to integrate different parts of the shell smoothly.
- Conducted thorough testing and debugging to ensure the shell's robustness.
The project is organized into multiple source code files, each responsible for a specific component or functionality. Here's an overview of the project structure:
shell.c
: The main file that contains the entry point of the shell program.shell.h
: Header file containing function prototypes and structure definitions used throughout the project.command_execution.c
: Implementation of command execution and related functionalities.input_parsing.c
: Implementation of input parsing and handling of command line arguments.builtins.c
: Implementation of built-in commands.history.c
: Implementation of command history feature.utils.c
: Utility functions used across different parts of the shell.Makefile
: Makefile for compiling and building the shell program.
To run the Simple Shell program, follow these steps:
- Clone the project repository from the provided source.
- Navigate to the project directory in your terminal.
- Use the provided
Makefile
to compile the shell program by running the commandmake
. - Execute the shell by running the generated executable.
- You can now start interacting with the shell by entering commands.
If you wish to contribute to the project, please consider the following guidelines:
- Fork the project repository and create a new branch for your contribution.
- Make your changes and additions in the designated branch.
- Test your modifications thoroughly and ensure they adhere to the project's coding style and conventions.
- Create a pull request to submit your changes for review.
- Provide a clear and detailed description of your changes in the pull request.
If you have any questions or need further information, feel free to contact us:
- Olamide: [[email protected]]
- Muhammed: [[email protected]]
Thank you for your interest and collaboration on the Simple Shell project!