$ cd ~/products/oh-my-gosh
standalone · 3/3
Oh-My-Gosh
A tiny shell in C
Minishell-style fork/exec REPL written in C — a small, readable implementation of how a shell actually runs a command.
- +fork/exec REPL — The real mechanism, kept legible
- +Written in C — No runtime beyond libc
- +Learning project — Small enough to read end to end
view source ↗free
What it is
A minimal Unix shell: the classic minishell exercise, kept small enough to read in one sitting. It reads a line, splits it on whitespace, fork()s, runs the command with execvp() in the child and waits for it in the parent. That is the whole mechanism every shell is built on.
What it doesn't do
One command at a time: no pipes, no redirection and no built-ins yet, so cd doesn't work. That keeps the core readable; each missing feature is the next exercise.
Install
$ git clone https://github.com/NoamFav/Oh-My-Gosh && cd Oh-My-Gosh$ make && ./oh-my-goshStatus
- [x]Read, fork, exec, wait loop
- [ ]Built-ins: cd, exit
- [ ]Pipes
- [ ]Redirection