Skip to content

Latest commit

Β 

History

History
44 lines (32 loc) Β· 1.82 KB

File metadata and controls

44 lines (32 loc) Β· 1.82 KB

🐚 minishell – Custom UNIX Shell πŸ’»

Welcome to minishell, a project that implements a custom UNIX shell from the ground up! 🌟 This shell allows for command execution, pipe management, and process handling. 🌐

πŸ“ Project Overview

In this project, we create a fully functional UNIX shell that supports various commands, piping between processes, and robust error handling. The shell is designed to handle signals πŸ“‘ and fork processes efficiently 🍴, simulating the behavior of bash and other traditional UNIX shells. πŸš€

Features:

  • πŸ”Ή Command execution: Run shell commands with ease.
  • πŸ”Ή Pipe management: Link commands together for streamlined output processing.
  • πŸ”Ή Signal handling: Manage signals effectively within the shell environment.
  • πŸ”Ή Process forking: Create child processes to execute commands.
  • πŸ”Ή Error handling: Robust mechanisms to handle errors gracefully.

πŸ› οΈ Installation & Setup

To get started, follow these steps to set up and run the project:

  1. Clone the repository:

    git clone https://github.com/mdev9/minishell.git
    cd minishell
    make
  2. Run the shell:

    ./minishell

πŸ” Technologies Used

  • C πŸ’»: Primary language used to implement the shell.
  • System Calls πŸ“ž: Leveraging UNIX system calls for process management and execution.
  • Pipes 🚰: Implementing inter-process communication through pipes.
  • Signals ⚑: Handling OS signals for effective process management.

🎯 Goals of the Project

  • Create a functional UNIX shell that mimics common shell behaviors.
  • Understand key operating system concepts such as process management and system calls.
  • Enhance programming skills in C through practical application.

Thank you for checking out minishell! 🌟 Happy coding! πŸ’»