-
Notifications
You must be signed in to change notification settings - Fork 0
Main
Yassine Ajagrou edited this page Apr 20, 2025
·
2 revisions
A minimalist UNIX shell written in C.
Minishell is a 42 project where you create a simplified version of a UNIX shell (like bash or zsh), featuring:
β Basic command execution (ls, grep, etc.)
β Environment variable handling ($PATH, $HOME)
β Redirections (>, >>, <, <<)
β Pipes (|)
β Signals (Ctrl-C, Ctrl-D, Ctrl-\)
β Builtins (echo, cd, export, unset, env, exit)
- 42 Schoolβs
libft(or your own C library) - Basic understanding of:
-
Processes & forks (
fork(),execve()) -
File descriptors (
open(),dup2(),pipe()) -
Signals (
signal(),sigaction)
-
Processes & forks (
git clone https://github.com/iaceene/Minishell_42.git
cd minishell
makeRun the shell:
./minishellExit with:
exit| Feature | Status | Details |
|---|---|---|
| Command Parsing | β | Splits input by ` |
| Redirections | β | Supports >, >>, <, << (heredoc) |
| Pipes | β | Handles multiple pipes (`cmd1 |
| Builtins | β |
echo, cd, export, etc. |
| Signals | β |
Ctrl-C (interrupt), Ctrl-D (EOF) |
| Env Variables | β | Expands $USER, $PATH, etc. |
π 42 Subject (Official PDF)
π UNIX Shell Guide (Bash Reference)
π Advanced Pipe Handling (Systems Programming PDF)
Found a bug? Want to improve Minishell?
- Fork the repo.
- Create a branch (
git checkout -b fix/awesome-feature). - Submit a Pull Request.
π Thanks to Yassine Ajagrou, 1337 student.