Skip to content

fclaus-g/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐚 Minishell

Welcome to Minishell, a simplified Unix shell implemented in C as part of the 42 school curriculum.

This project aims to replicate key features of a real shell, including command execution, redirections, pipes, environment variable handling, and more — all built from scratch with a deep understanding of system calls and process management.


✨ Features

  • 🖥️ Interactive prompt
  • ⚙️ Execution of binaries from PATH
  • 🔧 Built-in commands:
    • echo
    • cd
    • pwd
    • export
    • unset
    • env
    • exit
  • 💬 Environment variable expansion ($VAR)
  • 📤 Redirections (>, >>, <)
  • 🔗 Pipes (|)
  • ✋ Signal handling (Ctrl+C, Ctrl+D)
  • 🧹 Error management and memory leak protection

🛠️ Requirements

  • 🐧 Linux or macOS
  • 🧱 gcc compiler
  • 📦 GNU Make

🔧 Build Instructions

git clone https://github.com/fclaus-g/minishell.git
cd minishell
make

▶️ Running the Shell

./minishell

Once launched, you can type commands just like in a real shell:

$ echo Hello, world!
Hello, world!
$ ls -la | grep minishell

🤝 Team & Acknowledgments

This project was developed as a team effort with pgomez-r 🤝.
His invaluable help, dedication, and deep technical insight made this shell come to life.
I am truly grateful for his collaboration and support throughout the entire project.


📁 Project Structure

.
├── Makefile
├── minishell.c
├── include/
│   └── minishell.h
├── src/
│   ├── builtins/
│   ├── execution/
│   ├── parsing/
│   └── utils/
└── libft/

📚 References


About

A fully functional Unix shell built in C from scratch — supports pipes, redirections, environment variables, signal handling, and 7 built-in commands. Developed collaboratively as part of the 42 school curriculum.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors