Skip to content

asettar/shell

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

this project is about creating mini bash interpreter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors