Minishell is a custom implementation of a UNIX command interpreter based on TCSH. This project demonstrates deep understanding of system programming, process management, and UNIX shell architecture.
- Command Execution - Full support for system commands via PATH
- Process Management - Fork, exec and child process handling
- Error Handling - Appropriate error messages and return codes
- Interactive Prompt - Clean and responsive user interface
cd- Change directory navigationenv- Display environment variablessetenv- Set environment variablesunsetenv- Remove environment variablesexit- Clean shell exit
# Clone repository
git clone https://github.com/[your-username]/minishell.git
cd minishell
# Compile
make
# Run
./mysh$> ls -la
$> cd /tmp
$> pwd
/tmp
$> setenv MY_VAR 42
$> env
[...]
MY_VAR=42
$> exit- System Programming - Mastery of UNIX system calls (fork, execve, wait)
- Memory Management - Dynamic allocation and memory leak prevention
- Parsing - Command analysis and interpretation
- Error Handling - Robust implementation with comprehensive error cases
- Software Architecture - Modular and maintainable code
This project is part of the Epitech curriculum. It demonstrates:
- Deep understanding of UNIX mechanisms
- Ability to implement complex system features
- Rigorous approach to C development
- ✅ Zero memory leaks (verified with Valgrind)
- ✅ Complete error handling
- ✅ Commented and documented code
- ✅ Unit tests included
- ✅ Epitech coding standards compliant
Developed with passion by Romain Hartmann 🚀