The Minishell project is a simplified implementation of a UNIX shell written in C. It replicates basic shell behavior such as executing commands, handling redirections, and managing processes. The project helps understand how shells work under the hood, including parsing, process management, and file descriptors. 🐚⚙️🖥️
-
Command execution with
execve. -
Built-in commands:
echo(with-noption)cd(with relative/absolute paths and~)pwdexportunsetenvexit
-
Pipes (
|) for inter-process communication. -
Input/output redirections (
<,>,>>,<<). -
Environment variable expansion (
$VAR). -
Signal handling (
Ctrl-C,Ctrl-\,Ctrl-D) similar to bash. -
Robust error handling and exit codes matching bash behavior.
-
Program Name:
minishell -
Usage:
./minishell
-
Minishell provides an interactive prompt where users can type commands and see results, just like a regular shell.
-
Clone the repository:
git clone https://github.com/MohammadHusssein/42-minishell.git cd 42-minishell -
Compile the program:
make
-
Run the shell:
./minishell
A huge thank you to my partner Razane Traoui for her dedication, teamwork, and countless hours spent debugging and building this project together, couldn’t have done it without you! 🙌👩💻👨💻
This project is licensed under the MIT License. Feel free to use, modify, and distribute with proper attribution. 📜🔓✨