This project is a second rewrite of a custom UNIX-like shell, developed as a hands-on exercise while studying "Operating Systems: Three Easy Pieces" (OSTEP). The primary goal is to deepen my understanding of C programming, process management, pipes, and redirection in a UNIX environment.
This project is entirely written in C, and compiled with gcc.
To compile install gcc
, clone the repo, and run make
in the project's root. If successful you should have a binary in bin/mishell
You can run the shell in two modes:
- Batch mode: passing a file with a list of commands to run in batch
bin/mishell batch.txt
- Interpreter mode: running the shell with no arguments
bin/mishell
- Simple configuration via .rc file
- Background color
- Prompt color
- Path
- Start sounds (annoying feature)
- Quote of the day
- Piping
- Output redirection
- Built-in commands: exit, cd, setpath
- Parallel command execution
Authors of Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Arpaci-Dusseau Books, November, 2023 (Version 1.10)