42sh est un shell interactif développé en C dans le cadre du cursus informatique d'EPITECH.
- GCC
- make
- libncurses-dev
- Clonez le dépôt : `git clone https://github.com/EpitechPromo2027/B-PSU-200-REN-2-1-42sh-arthur.doriel.git
- Allez dans le répertoire du projet :
cd 42sh
- Compilez le programme :
make
- Lancez le shell :
./42sh
42sh prend en charge les fonctionnalités de base d'un shell, telles que :
- L'exécution de commandes simples et de commandes avec arguments
- La redirection d'entrée/sortie
- Les pipes
- Les variables d'environnement
- L'historique des commandes
- Les commandes intégrées (cd, echo, exit)
- Les opérateurs logiques
42sh prend également en charge les fonctionnalités avancées suivantes :
- L'expansion des alias
- L'auto-complétion des commandes et des noms de fichiers
- La coloration syntaxique de la ligne de commande
- L'affichage du temps de chaque commande exécutée
- La possibilité de charger des plugins
Pour exécuter une commande simple, il suffit de taper son nom suivi de ses éventuels arguments, puis de valider avec la touche Entrée :
$ ls
Pour rediriger l'entrée ou la sortie d'une commande vers un fichier, utilisez les symboles <
<<
et >
>>
respectivement :
$ cat < fichier.txt
$ ls > fichiers.txt
$ cat << oui
$ ls >> fichiers.txt
Pour connecter la sortie d'une commande à l'entrée d'une autre commande, utilisez le symbole |
:
$ ls | grep fichier
Pour effectuer une commande en fonction d'un opérateur, utilisez le symbole "&&" afin d'exécuter une commande si sa précédente a fonctionné ou utilisez le symbole "||" afin d'éxécuter une commande si sa précédente a échoué :
$ ls && pwd
$ ls || pwd
42sh conserve l'historique des commandes tapées dans une session. Pour accéder à l'historique, utilisez la commande history
. Pour exécuter une commande précédente, utilisez le symbole !
suivi du numéro de commande :
$ history
$ !42
42sh prend en charge les commandes intégrées suivantes :
cd
: changer de répertoire courantecho
: afficher du texte à l'écranexit
: quitter le shellenv
: afficher la liste des variables d'environnementsetenv
: définir ou modifier une variable d'environnementunsetenv
: supprimer une variable d'environnementset
: afficher la liste des variables d'environnement et des aliasunset
: supprimer une variable d'environnement ou un aliasalias
: définir un alias pour une commandeunalias
: supprimer un alias existant
La commande env
affiche la liste des variables d'environnement actuelles :
$ env
La commande setenv
permet de définir ou de modifier une variable d'environnement :
$ setenv VAR valeur
La commande unsetenv
permet de supprimer une variable d'environnement :
$ unsetenv VAR VAR1 VAR2
La commande set
affiche la liste des variable local définis :
$ set
La commande set
permet aussi de définir ou de modifier une variable local :
$ set VAR=value VAR2=value2
La commande unset
permet de supprimer une variable d'environnement ou un alias :
$ unset VAR VAR2 VAR3
La commande alias
permet de définir un alias pour une commande :
$ alias ll 'ls -l'
La commande unalias
permet de supprimer un alias existant :
$ unalias ll
Les alias sont sauvegardé dans le fichier .alias
il est possible d'en ajouter ou d'en supprimer manuellement :
ll=ls -l
Les variables local sont sauvegardé dans le fichier .local_var
il est possible d'en ajouter ou d'en supprimer manuellement :
var=value
42sh prend en charge l'auto-complétion des commandes et des noms de fichiers. Pour activer l'auto-complétion, appuyez sur la touche Tabulation.
charge la coloration syntaxique de la ligne de commande pour faciliter la lecture et la compréhension des commandes tapées. Les différents éléments de la commande, tels que les noms de commande, les arguments, les options, les symboles de redirection, etc., sont colorés de manière distincte.
42sh a été développé par les étudiants d'EPITECH suivants :
- Tom Lefoix
[email protected]
- Justine Loizel
[email protected]
- Arthur Doriel
[email protected]
- Léa Allain
[email protected]
- Jule Danet
[email protected]