A Unix-like shell implemented in Rust, built incrementally to closely match real shell behavior while keeping the implementation understandable and explicit.
This project was developed stage-by-stage, focusing on correct semantics rather than shortcuts provided by existing libraries.
- Execute external commands via
$PATH - Built-in commands:
echocdpwdtypeexithistory
- In-memory command history
- Plain-text history persistence (POSIX-style, no metadata headers)
- Supports:
historyβ show full historyhistory Nβ show lastNentries (correct global numbering)history -r FILEβ read history from filehistory -w FILEβ write history to filehistory -a FILEβ append new entries only
- Honors
$HISTFILEon startup - Matches bash-style numbering and behavior
- Supports multi-command pipelines:
cmd1 | cmd2 | cmd3 | ...
The shell currently implements a subset of basic bash features.
The following are still not supported
-
No logical operators
&&and||are not supported- Expressions like
cmd1 && cmd2orcmd1 || cmd2result in error
-
No background execution
&is not supported- All commands run in the foreground
-
No command substitution
- Constructs like
$(command)or`command`are not supported
- Constructs like
will implement them ass soon ass possible
Yes this is written by AI i am too lazy sorry