The Minishell project from 42 School introduces:
- The fundamentals of shell programming
- Process creation, pipes, and redirections
- Handling signals, environment variables, and built-in commands
This project is all about recreating a simplified version of the Bash shell —
learning how a real shell parses commands, executes processes, and manages the environment 🐚
- Master process control with
fork,execve, andwait - Implement I/O redirections and pipes
- Manage signals like
ctrl+C,ctrl+D, andctrl+\ - Handle environment variables dynamically
- Build a modular, robust, and readable C program
🧠 Currently working on command parsing and process management.
🤝 Project developed in collaboration with Fabio Vitharana.
📅 Repository will be updated as new features are implemented!
-
Fabio Vitharana
Focused on parsing and built-ins management. -
Ilaria Nassi
Responsible for the execution part — handling command execution, pipes, and process control.
Below is a simplified view of how Minishell processes a command:
┌──────────────────────────────────────────┐
│ User Input │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Parsing Layer │
│ • Tokenization │
│ • Syntax checking │
│ • Environment variable expansion │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Execution Layer │
│ • Handle built-ins │
│ • Set up pipes and redirections │
│ • Create processes with fork/execve │
│ • Wait for children and manage status │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Shell Loop │
│ • Display prompt │
│ • Handle signals │
│ • Repeat until exit │
└──────────────────────────────────────────┘
- Ilaria Nassi @19Jillian89
- Fabio Vitharana @FabzHub17
This project is for educational purposes only and is part of the 42 Common Core curriculum. 42 Common Core curriculum,