Skip to content

elbouzkri/minishell

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

249 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell Logo

Minishell

A sleek, efficient, and professional shell implementation.

License: MIT C Language


🚀 Overview

Minishell is a lightweight, custom-built shell developed as part of the 42 curriculum. It replicates the core functionality of bash, providing a robust environment for command execution, pipelining, and environment management.

Designed with a focus on memory efficiency and architectural clarity, Minishell serves as a deep dive into systems programming, process management, and lexical analysis.

✨ Key Features

  • Built-in Commands: Optimized implementations of cd, echo, env, exit, export, pwd, and unset.
  • Execution Engine: Support for multiple pipelines (|) and complex redirections (<, >, <<, >>).
  • Environment Management: Dynamic tracking and expansion of environment variables.
  • Signal Handling: Responsive management of SIGINT, SIGQUIT, and EOF.
  • Robust Memory Management: Integrated custom garbage collector to ensure zero leaks.

🛠️ Installation & Usage

Prerequisites

  • A C compiler (gcc or clang).
  • make utility.
  • readline library.

Building the Project

git clone https://github.com/yourusername/minishell.git
cd minishell
make

Running the Shell

./minishell

📖 Documentation

For developers and curious users, detailed technical documentation is available in the docs/ directory:

🤝 Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Minishell is a project that involves creating a simple Unix shell in C. The shell aims to replicate basic shell functionalities, including command execution, piping, redirection, and environment variable management, providing users with an interactive command-line interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 96.6%
  • Makefile 3.2%
  • Dockerfile 0.2%