Minishell
Shell UNIX from scratch en C

Recréation d’un shell UNIX en C, réalisée en duo, dans l’esprit de Bash, avec prompt interactif, parsing de commandes, exécution de programmes et gestion de l’environnement. Le projet couvre les commandes simples, les pipes, les redirections, les here-docs, les variables d’environnement et les builtins principaux.
La difficulté vient surtout de la frontière entre parsing et exécution. Il faut transformer une ligne tapée par l’utilisateur en tokens cohérents, respecter les quotes, développer les variables au bon moment, construire les pipelines, ouvrir les bons file descriptors, puis orchestrer fork/exec/wait sans fuite ni comportement incohérent.
Le shell doit aussi se comporter correctement en interaction : signaux clavier, codes de retour, Ctrl-C, Ctrl-D, gestion de l’historique et builtins comme cd, echo, pwd, export, unset, env et exit. C’est un projet très dense, proche du système, qui oblige à comprendre ce que fait réellement un terminal quand on tape une commande.


