About the Project
A lightweight Unix‑style shell written in C for the 50.005 CSE module. It re‑implements core terminal niceties (raw‑mode input, history, tab‑completion) while showcasing low‑level process control, job management and a suite of mini system utilities.
Features
- Bash‑like prompt with raw terminal mode, arrow‑key history, word jumps and context‑aware tab‑completion.
- Built‑ins:
cd,exit,alias / unalias,bins, plus job‑control signals. - Helper programs in
bin/–find,ld/ldr,sys, and the Tamagotchi‑styledplantsuite (dcheck,dkill). - Strict compile flags (
-Wall -Wextra -Werror -fsanitize=address) to keep UB at bay. - Safety scripts:
fixbroken.sh(reset terminal),daemonslayer.sh(kill runaway daemons),qformat.sh(clang‑format).
Usage
- Clone:
git clone https://github.com/rpeky/C-Shell-custom.git - Build everything:
make - Run the shell:
./cseshell - Try a helper:
dplant sproutthendplant sprout water
Full source and docs live on GitHub.