Aller au contenu

Minishell

Céation d'un terminal en C.


Description

Projet 42 visant à créer un interpréteur de commandes (shell) similaire à bash. Ce projet est une excellente introduction aux systèmes UNIX.


Compétences Acquises

Programmation système

Compréhension du systéme UNIX
Gestion des processus

Decouvertes des processus (fork, exec, wait)
Parsing

Gestion des Inputs et parsing avancé
Signaux

Compréhension des effets des signaux (SIGINT, SIGQUIT, etc...)
Redirections

Gestions des pipes et des redirections.

Stack Technique

  • Langage: C
  • Système: Linux/UNIX
  • Outils: Makefile, GCC

Défis Relevés

  1. Boucle interactive : Implémentation du read-eval-print loop (REPL)
  2. Gestion des signaux : Comportement comme bash (Ctrl+C, Ctrl+)
  3. Parsing complexe : Gestion des quotes, redirections, pipes
  4. Builtins : Implémentation de cd, echo, env, export, unset, etc.

Fonctionnalités

  • Commandes (cd, echo, pwd, export, unset, env, exit)
  • Redirections (>, >>, <)
  • Pipes (|)
  • Variables d'environnement
  • Gestion des erreurs

Lien

Voir le code