Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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,
- Host: GitHub
- URL: https://github.com/raveriss/minishell
- Owner: raveriss
- Created: 2024-03-09T13:28:15.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-03-17T15:21:37.000Z (8 months ago)
- Last Synced: 2024-03-17T16:31:45.246Z (8 months ago)
- Topics: bash, c-programming, commande-line, process-manager, shell, system-programming, unix
- Language: C
- Homepage:
- Size: 601 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Projet 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/)