Accueil Projets Simple Shell

Simple Shell

Interpréteur de commandes UNIX en C

Simple Shell screenshot

Période

Décembre 2024

Langage

C

Contexte

Holberton School

Simple Shell est une implémentation d'un interpréteur de commandes UNIX simplifié, développé entièrement en C. Le programme est capable de fonctionner en mode interactif (avec prompt) et en mode non-interactif (exécution de scripts).

Ce projet a permis d'approfondir la compréhension des processus UNIX, de la gestion mémoire en C, et des mécanismes de fork/exec au cœur des systèmes d'exploitation.

Technologies utilisées

C Linux Fork/Exec Parsing System calls GCC

Fonctionnalités implémentées

Exécution de commandes

  • • Exécution de commandes simples avec arguments
  • • Recherche dans le PATH
  • • Gestion des chemins absolus et relatifs
  • • Support des commandes built-in (exit, env, setenv, unsetenv)

Parsing & Gestion d'erreurs

  • • Parsing des entrées utilisateur
  • • Gestion des erreurs d'exécution
  • • Messages d'erreur appropriés
  • • Gestion du signal EOF (Ctrl+D)

Défis techniques

Gestion de la mémoire

En C, toute allocation dynamique doit être libérée manuellement. Le projet a nécessité une attention particulière pour éviter les fuites mémoire (memory leaks), notamment lors du parsing et de la gestion des chaînes de caractères.

Fork & Exec

Compréhension approfondie des processus UNIX : création de processus fils avec fork(), remplacement du processus avec exec(), et gestion du processus parent avec wait().

Parsing robuste

Développement d'un parser capable de traiter correctement les espaces, les arguments multiples, et de gérer les cas limites (entrée vide, commandes inexistantes, etc.).

Découvrir le code

🐙 Voir sur GitHub
← Retour aux projets Me contacter