# Custom Shell
A fully-featured custom command-line shell written in C, demonstrating system-level programming with features like piping, input/output redirection, command history with SQLite database support, command aliases, and tab completion.
---
## Features
- Execute commands with support for I/O redirection (`>`, `<`) and pipes (`|`)
- Background job execution with `&`
- Command history stored persistently using SQLite
- User-defined command aliases
- Tab completion using GNU Readline
- Signal handling for clean interruption (Ctrl+C)
- Modular codebase for easy maintenance and extensibility
---
## Prerequisites
- Linux environment (Recommended: WSL on Windows, Ubuntu, etc.)
- GCC compiler
- GNU Readline library
- SQLite3 development libraries
- Make
---
## Installation & Build
1. Clone the repository:
```bash
git clone https://github.com/yourusername/custom-shell.git
cd custom-shell-
Build the project:
make
-
Run the shell:
./shell
Type commands as you would in a regular shell.
Use arrow keys for command history navigation.
Press Tab for auto-completion of commands and aliases.
src/— Source code filesinclude/— Header filesMakefile— Build instructionsREADME.md— This file
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.