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‑styledplant
suite (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 sprout
thendplant sprout water
Full source and docs live on GitHub.