Skip to content

Uilly93/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

Minishell est un projet de l’école 42 qui consiste à recréer un interpréteur de commandes simplifié, en reproduisant certaines fonctionnalités principales de bash. Ce projet permet de mieux comprendre le fonctionnement des processus, des pipes, de la gestion des signaux, et de la programmation système en C.


🎯 Objectifs du projet

  • Comprendre le fonctionnement d’un shell.
  • Manipuler les processus et la communication inter-processus.
  • GĂ©rer la mĂ©moire et Ă©viter les fuites.
  • ImplĂ©menter une boucle de lecture → Ă©valuation → exĂ©cution.
  • GĂ©rer les signaux (Ctrl+C, Ctrl+\ et Ctrl+D).
  • Gestion dynamique d'un environnement.

⚙️ Fonctionnalités

Le minishell doit :

  • Afficher un prompt en attente d’une commande.
  • ExĂ©cuter des commandes simples (ex : ls, echo, etc.).
  • GĂ©rer les chemins relatifs et absolus.
  • ImplĂ©menter les builtins :
    • echo (avec option -n)
    • cd
    • pwd
    • export
    • unset
    • env
    • exit
  • GĂ©rer les redirections :
    • > (sortie)
    • >> (sortie append)
    • < (entrĂ©e)
    • << (heredoc)
  • GĂ©rer les pipes (|).
  • GĂ©rer les variables d’environnement ($VAR).
  • GĂ©rer les quotes (' et ").
  • GĂ©rer les signaux :
    • Ctrl-C interrompt la commande en cours sans quitter le shell.
    • Ctrl-\\ est ignorĂ©.
    • Ctrl-D ferme le shell.

🛠️ Compilation

Un Makefile est fourni avec les règles :

make        # Compile le projet
make clean  # Supprime les fichiers objets
make fclean # Supprime les objets et l’exécutable
make re     # Recompile tout

Cela génère un exécutable :

./minishell

🔍 Exemple d’utilisation

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published