Skip to content

Naingui74/42sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42sh - Shell Programming

Shell Logo
Projet : B-PSU-210
École : Epitech
Année : 2024


Description du Projet

Le projet 42sh consiste à développer un shell Unix en C, compatible avec tcsh, dans le cadre du cursus de programmation système. Ce shell devra être capable de parser et d'exécuter des commandes tout en prenant en charge diverses fonctionnalités de base telles que les redirections, les pipes, les variables d'environnement et bien plus encore.

Détails Techniques

  • Nom binaire : 42sh
  • Nom du dépôt : PSU_42sh_$ACADEMICYEAR
  • Langage : C
    C Logo
  • Compilation : Utilisation d'un Makefile avec les règles re, clean, et fclean. Makefile Logo

Fonctionnalités Obligatoires

Le shell doit prendre en charge les fonctionnalités suivantes :

  • Gestion des espaces et tabulations.
  • Prise en charge de $PATH et des variables d'environnement.
  • Gestion des redirections (<, >, <<, >>).
  • Gestion des pipes (|).
  • Implémentation des builtins : cd, echo, exit, setenv, unsetenv.
  • Gestion des séparateurs (;, &&, ||).
  • Gestion des erreurs et des valeurs de retour.

Fonctionnalités Optionnelles

Ces fonctionnalités sont fortement recommandées et apportent des points supplémentaires :

  • Inhibiteurs (\).
  • Globbings (*, ?, []).
  • Gestion des jobs (&, fg).
  • Variables locales et d'environnement.
  • Gestion de l'historique (!).
  • Aliases.
  • Édition de ligne : multi-lignes, rebinding dynamique, autocomplétion.

Compilation et Exécution

Pour compiler et exécuter le shell, il suffit de suivre les commandes suivantes :

make
./42sh

Pour nettoyer les fichiers objets et binaires :

make clean
make fclean

Exemple d'Exécution

$ ./42sh
42sh> cd ; </etc/hosts od -c | grep xx | wc >> /tmp/z -l ; cd - && echo "OK"

Conseils

  • Formez une équipe solide et répartissez intelligemment le travail.
  • Utilisez Git pour suivre l'évolution du code, et n'hésitez pas à utiliser des branches.
  • Écrivez des tests unitaires régulièrement pour garantir la stabilité de votre code.

Git Logo C Logo


Contact

Équipe : Moana, Arthur, Aaron, Simon
Epitech Bordeaux : Promo 2028

About

Le projet 42sh est un shell Unix écrit en C, développé dans le cadre du cursus à Epitech. Il vise à recréer les fonctionnalités d’un shell compatible avec tcsh, en intégrant des commandes, la gestion des processus, les redirections, et la gestion des signaux. Le projet met l’accent sur la compréhension des mécanismes bas niveau du système.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors