SupaShell is a high-performance, POSIX-compliant shell implementation written in C. It serves as a robust command-line interface capable of managing system processes, handling environment variables, and executing complex workflows. This project highlights deep proficiency in low-level systems programming, focusing on process lifecycle management (fork, execvp, wait) and custom memory-efficient string parsing.
- Process Management: Efficiently handles external command execution by spawning child processes and managing execution states.
- Custom Built-ins: Includes optimized internal commands such as
cdfor directory navigation,echo(with-nflag support),envfor environment inspection, and a uniqueexitroutine. - Dynamic Prompt: Features a context-aware prompt that tracks and displays the current working directory in real-time.
- Custom Tokenization: Implements a modular parsing engine that cleans and splits user input into executable arguments.
- Visual Branding: Integrated ASCII art banner on startup and a custom-built loading spinner for graceful shutdowns.
To compile and run this shell, you need a C compiler (like gcc) and a POSIX-compliant operating system (Linux or macOS).
- Clone the repository:
git clone git@github.com:shemigam1/super_shell.git
- Navigate to the project directory:
cd super_shell - Compile the source code:
gcc -Wall -Wextra -Werror -pedantic *.c -o shell
Run the shell by executing the compiled binary:
./shellOnce inside SupaShell, you can run standard Linux commands or use the built-in utilities:
ls -la: List files in the current directory.cd [directory]: Change the current working directory.echo -n "Hello World": Print text to the terminal without a trailing newline.env: Display all current environment variables.exit: Securely close the shell with a custom animation.
| Technology | Purpose |
|---|---|
| C Language | Core implementation and logic |
| POSIX API | System calls and process management |
| GCC | Source code compilation |
| Standard Library | I/O handling and memory management |
[Semilore Omotade-Michaels]