Skip to content

RevLogi/eigen-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eigen Shell

A lightweight, custom Unix-like shell written in C from scratch to explore OS concepts, system calls, and low-level memory management.

Features & To-Do List

Core Execution & Memory

  • Basic REPL loop with standard Fork-Exec-Wait process execution.
  • Script execution (batch mode) with support for ignoring # comments.
  • Lexical analysis with basic double-quote ("") state handling.
  • Robust memory model using deep copy (strdup) and clean garbage collection.

Built-ins & Environment

  • Custom dynamic Hash Map built from scratch for environment variables.
  • export command with OS environment synchronization (setenv).
  • cd command supporting ~ (home) and - (previous directory).
  • Basic utilities: help, clear, and exit.
  • Variable expansion ($VAR) supporting suffix concatenation.

Interactive CLI (via Linenoise)

  • Command history saving and loading (history.txt).
  • Tab-completion for basic built-in commands.
  • Contextual syntax hints for specific commands.

🚧 Roadmap (Pending)

  • Extend ~ (tilde) expansion globally (e.g., ls ~/Documents).
  • Implement Inter-Process Communication (Pipes |).
  • Implement I/O Redirection (>, <, >>).
  • Add Signal Handling (intercept SIGINT/SIGTSTP to protect the shell).
  • Implement Background Jobs & Job Control (&, jobs, fg, bg).

About

An unix shell written in C for learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors