Skip to content

shemigam1/super_shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SupaShell 🐚

Overview

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.

Features

  • Process Management: Efficiently handles external command execution by spawning child processes and managing execution states.
  • Custom Built-ins: Includes optimized internal commands such as cd for directory navigation, echo (with -n flag support), env for environment inspection, and a unique exit routine.
  • 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.

Getting Started

Prerequisites

To compile and run this shell, you need a C compiler (like gcc) and a POSIX-compliant operating system (Linux or macOS).

Installation

  1. Clone the repository:
    git clone git@github.com:shemigam1/super_shell.git
  2. Navigate to the project directory:
    cd super_shell
  3. Compile the source code:
    gcc -Wall -Wextra -Werror -pedantic *.c -o shell

Usage

Run the shell by executing the compiled binary:

./shell

Once 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.

Technologies Used

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

Author

[Semilore Omotade-Michaels]


Build Status Language Platform

Readme was generated by Dokugen

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages