Skip to content

AayushBade14/AlpShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlpShell

AlpShell is a lightweight, fast, and extensible custom-built shell developed by students from IIT Jodhpur. Designed from scratch in C++, AlpShell aims to eliminate system bloat and improve shell performance without compromising essential functionality or user experience.

Project Overview

AlpShell functions as a modern, minimalistic shell for Unix-like systems. It features a clean command-line interface that supports command execution, job control, file management, scripting, and extensibility — all with enhanced responsiveness and reduced system overhead.

Directory Structure

├── bootloader/           # x86 bootloader (for future system-level integration)
├── shell/                # Core shell implementation
│   ├── src/              # Source files
│   ├── include/          # Header files
│   ├── main.cpp          # Entry point
│   └── Makefile/CMake    # Build scripts
├── parser_test/          # Lexer & parser testbed
├── userland/             # Placeholder for userland programs
└── README.md             # This file

Features

Core Functionalities

  • Built-in command execution with argument parsing
  • Pipelining (|), input/output redirection (<, >, >>)
  • Command history and aliasing
  • Foreground/background process handling (&, kill, jobs)

File & Directory Management

  • Support for cd, ls, mkdir, rm, etc.
  • Directory stack (pushd, popd, dirs)
  • Tilde (~) and shorthand directory navigation

Scripting & Automation

  • Shell script execution
  • Support for variables, conditionals, loops
  • User-defined functions (planned)

User Experience

  • Syntax highlighting and auto-suggestions
  • Colored output for better readability
  • Customizable shell prompt
  • Error/output separation with formatting

Architecture Highlights

  • Modular design for maintainability
  • Tokenizer and parser for command interpretation
  • Readline integration for user input and history
  • Lightweight and portable — minimal dependencies

Build & Run Instructions

Prerequisites

  • g++ (C++11 or higher)
  • CMake (v3.10+)
  • readline development library

Build

cd shell
mkdir build && cd build
cmake ..
make

Authors

  • Aurindum Banerjee (B23CS1006)
  • Lokesh Motwani (B23CS1033)
  • Laksh Mendpara (B23CS1037)
  • Aayush Bade (B23CS1084)
  • Prashasta Srivastava (B23CS1096)

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages