Minishell is a simple shell implementation project for 42 School. The goal of this project is to create a small, yet functional shell that can execute commands, manage processes, and handle basic shell functionalities.
This project recreates a basic shell with essential functionalities, including:
- Command parsing and execution
- Built-in commands (e.g., cd, echo, exit, env, export, unset, pwd)
- subshell (e.g., (command1 | (command2)))
- AND / OR (e.g., command1 || command2, command1 && command2)
- Process management (fork, exec, wait)
- Input/output redirection (>, <, >>)
- woldcacrd (command *)
- Pipes (command1 | command2)
- Signal handling (Ctrl+C, Ctrl+D, Ctrl+)
- here doc (<< lim)
- Error handling (syntax error, ambiguous error)
To install Minishell, follow these steps:
-
Clone the repository:
git clone https://github.com/1337-Med/42-Cursus-Minishell
-
Navigate to the project directory:
cd minishell -
Compile the source code:
make
To run Minishell, execute the following command in the project directory:
./minishellthen enjoy with out beautiful bash :)
Once running, you can enter commands just like you would in a regular Unix shell.
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a pull request.
