Where parsing meets process control a handcrafted shell in pure C.
2024
Title
Minishell
The Challenge
I set out to recreate the core functionality of a Unix shell—from command parsing to process execution—without relying on external libraries or shortcuts.
My goal was to deeply understand the inner workings of the terminal, including command tokenization, environment variable handling, pipes, redirections, and signal management, while maintaining a robust and user-friendly interface.
Solution
I developed Minishell, a lightweight yet fully functional shell written in pure C. It features:
-
Command parsing and tokenization for arguments, quotes, and operators
-
Built-in commands such as cd, echo, env, export, unset, and exit
-
Pipes and redirections for chaining processes seamlessly
-
Signal handling (Ctrl‑C, Ctrl‑D, Ctrl‑) to mimic Bash behavior
-
Environment variable expansion and error management
This project provided a deep understanding of process control, system calls, and the Unix philosophy, bridging the gap between user interaction and low-level OS mechanics.


