Skip to content

gabriel-2802/Mini-Shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Here’s a professional and concise presentation version of your Minishell project:


Minishell: A Lightweight Bash-like Shell

Overview

Minishell is a custom-built, lightweight shell that replicates essential Bash functionalities, enabling users to execute commands, manage processes, and handle I/O redirection efficiently.

Key Features

Process Management

  • Supports running applications as separate child processes using fork().
  • Implements sequential (;) and parallel (&) execution for efficient command processing.

Shell Built-in Commands

  • cd: Navigate the file system with relative and absolute paths.
  • pwd: Display the current directory path.
  • exit / quit: Terminate the shell session.

Environment Variable Support

  • Allows defining and using environment variables within commands.
  • Supports variable inheritance from the parent shell.

Command Operators

  • Piping (|): Redirects output from one command to another.
  • Conditional Execution (&& / ||): Enables execution chains based on success/failure.
  • Execution Control (; / &): Runs commands sequentially or in parallel.

I/O Redirection

  • Redirects input (<), output (>), and error streams (2>, &>).
  • Supports append mode for output redirection (>>, 2>>).

Implementation Highlights

  • Uses fork() for process creation and execvp() for command execution.
  • Implements anonymous pipes for inter-process communication.
  • Utilizes file descriptors and dup2() for efficient I/O redirection.

Minishell is a robust, efficient, and user-friendly shell implementation designed for seamless command execution and process management. 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors