Welcome to my custom shell project, built as part of the Codecrafters.io shell challenge.
This project is a custom Unix-like shell implemented in C++23, supporting features such as:
- Command parsing with quoting and escaping
- Built-in commands (
echo,cd,pwd,history,exit, etc.) - Command history with limited display and recall using arrow keys
- Input line editing and history navigation using the
readlinelibrary - Support for redirection and pipelines
The goal was to create a functional shell from scratch, with an emphasis on core Unix shell features and user-friendly command history management.
- Language: C++23
- Build System: CMake
- Libraries: GNU Readline for input handling and history
- Development: Leveraged AI tools (ChatGPT) extensively for coding assistance, debugging, and feature implementation.
- Testing: Validated against Codecrafters.io test suites for compliance with challenge specifications.
Note: This project was largely developed with the help of AI assistance to accelerate learning and development. I used this opportunity to explore system programming concepts while embracing modern developer tools.
- C++ compiler (g++ 11+ or clang++)
- CMake 3.13+
- GNU Readline library (
libreadline-devon Debian/Ubuntu) makebuild tool
git clone <your-repo-url>
cd codecrafters-shell-cpp
./your_program.sh