Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/raveriss/minishell

Shell minimaliste en C, simulant les fonctionnalités de base de bash. Il gère l'exécution des commandes avec support de l'historique, des redirections, des pipes, des variables d'environnement et des signaux. Ce projet nous permet d'approfondir la compréhension des processus, des descripteurs de fichiers,
https://github.com/raveriss/minishell

bash c-programming commande-line process-manager shell system-programming unix

Last synced: 2 days ago
JSON representation

Shell minimaliste en C, simulant les fonctionnalités de base de bash. Il gère l'exécution des commandes avec support de l'historique, des redirections, des pipes, des variables d'environnement et des signaux. Ce projet nous permet d'approfondir la compréhension des processus, des descripteurs de fichiers,

Awesome Lists containing this project

README

        

# **Projet minishell**


Badge du projet minishell

##


Capture d'écran de minishell

## Description
Ce projet a pour but de créer une version simplifiée du shell Unix. Cela inclut l'interprétation des commandes, la gestion de l'environnement, ainsi que l'exécution de commandes externes.

## Tableau des Composants du Projet

| Fichier | Description | Responsabilité | Statut |
|----------------------|--------------------------------------------------------------------------|--------------------------------------------------|-----------|
| `main.c` | Fichier principal, contient la logique de haut niveau | Initialisation, boucle d'interprétation | Complet |
| `parser.c` | Analyse les commandes entrées par l'utilisateur | Parsing de commandes | Complet |
| `executor.c` | Exécute les commandes analysées | Exécution de commandes | Complet |
| `env_manager.c` | Gère les variables d'environnement | Manipulation de l'environnement | Complet |
| `builtin_commands.c` | Implémente les commandes internes du shell (ex : cd, echo) | Commandes internes | Complet |
| `utils.c` | Fonctions utilitaires | Fonctions auxiliaires | Complet |
| `Makefile` | Fichier pour compiler le projet | Compilation | Complet |
| `minishell.h` | Fichier d'en-tête contenant les déclarations et les macros | Déclarations | Complet |

## Installation et Compilation
```
git clone [email protected]:raveriss/minishell.git
cd minishell
make
```

## Utilisation
```
./minishell
```

## Options
Aucune option disponible pour ce projet.

## Caractéristiques
- Interprétation des commandes
- Gestion des variables d'environnement
- Exécution de commandes externes
- Implémentation de commandes internes
- Gestion des signaux

## Fonctions externes autorisées
- malloc
- free
- read
- write
- open
- close
- fork
- execve
- wait
- waitpid
- signal

## Ressources utilisées
- [Notions essentielles du shell bash](https://fr.wikibooks.org/wiki/Programmation_Bash/Notions_essentielles_du_shell_bash)
- [Liste des séquences d'échappement ANSI](https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences)
- [Appel système fork](https://www.geeksforgeeks.org/fork-system-call/)