Welcome to Exsh, A Unix like shell written in pure C. This project mimics the core behavior of Unix shells — covering command parsing, pipes, input/output redirection, process creation with fork(), and execution using execvp().
🔬 Designed for learning, OS-level process management, and understanding how real shells like Bash work.
| Shell Feature | Exsh Implementation |
|---|---|
| Interactive Prompt | Tracks command histroy, <C-r> search and cursor control |
| Command Execution | Runs system commands with arguments |
| Pipes | Connects output of one command to input of another |
Input/Output Redirection (>, >>, <) |
Redirects stdin/stdout to files |
| Built-in Commands | cd, exit |
| Process Management | fork(), execvp(), wait() for process control |
- libc
- gcc
- make
- libreadline (optional)
- Unix based OS
cd exsh/src
make
./exsh$ ls -l
$ cd folder
$ ls | grep txt > out.txt
$ exit
Readmore here: Exsh Blog
We ❤️ contributors!
To contribute:
- Fork the repository.
- Clone it locally:
git clone [repo] cd exsh/src git checkout -b feature/my-improvement
@Meerthika

