Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 1.37 KB

File metadata and controls

35 lines (23 loc) · 1.37 KB

rshell

a minimal unix-like shell written in rust.

this project is a hands-on learning journey, built alongside my growing understanding of rust and systems programming.

the goal is to explore how shells work under the hood and to learn system design, advanced programming practices, and real-world computing concepts by building them from scratch. this includes how a shell interacts with the operating system and how software is actually executed on a computer.

beyond technical depth, there is something deeply satisfying about understanding a tool you use every day.

if you are reading this early version of the readme, it means the project is still in an active learning phase. over time, as the implementation matures, this repository will evolve into a more complete and polished open-source project, and the documentation will grow with it.

current capabilities:

  • builtins for cd, echo, exit, help, history, pwd, and type
  • quoted and escaped argument parsing for commands like echo "hello world"
  • cd ~, cd ~/path, and cd -
  • type support for resolving multiple commands in one call
  • history 5, history clear, and history -c
  • executable lookup through PATH
  • a configurable prompt via the RSHELL_PROMPT environment variable, including {cwd}

run it with:

cargo run

test it with:

cargo test

until then, let’s get rusty.