Skip to content

42sh : shell implementation from scratch with 0 libraries.

Notifications You must be signed in to change notification settings

alexisvisco/42sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Builtins

Nom Description Supporté ? Bonus ?
Cd Changer le répertoir de travail
Clear Effacer tout ce qui est sur le terminal
Echo Afficher les arguments dans le terminal
Env Afficher les variables d'environements
Setenv Modifier ou créer des variables d'environements
Unsetenv Supprimer une ou plusieurs variables d'environements
Exit Quitter le terminal et libérer la memoire
Pwd Affiche le répertoire courrant
Searchbin Affiche le répertoire courrant
History Affiche au complet l'historique des commandes
!! Met la dernière commande dans le prompt
!n Met la n-ième command en partant du début de l'historique dans le pompt
!-n Met la n-ième command en partant du début de la fin dans le prompt
!?name Met la première command qui contient name dans le prompt
!name Met la première command qui commence par name dans le prompt
calc Affiche un prompt pour calculer des expressions à la manière de bc

Edition de la ligne de commande

Nom Description Supporté ? Bonus ?
CTRL+T Échange la position des charactères
CTRL+U Supprime toute la ligne
CTRL+K Supprime du curseur à la fin de la ligne
CTRL+A Positionne le curseur au debut de la ligne
CTRL+E Positionne le curseur à la fin de la ligne
CTRL+W Supprime le dernier mot
CTRL+L Effacer tout ce qui est sur le terminal
CTRL+B Curseur à gauche
CTRL+F Curseur à droite
CTRL+I Descend le curseur d'une ligne quand multi-ligne
CTRL+O Monte le curseur d'une ligne quand multi-ligne
CTRL+H Affiche un prompt pour rechercher dans l'historique
delete Supprime le caractère à droite
home Positionne le curseur au debut de la ligne
end Positionne le curseur à la fin de la ligne
backspace Supprime le caractère vers la gauche
SHIFT + Monte le curseur d'une ligne quand multi-ligne
tab Affiche la complétion
SHIFT + Descend le curseur d'une ligne quand multi-ligne
SHIFT + Position le curseur au prochain debut de mot
SHIFT + Position le curseur au prochain debut de mot
Position le curseur à gauche
Position le curseur à droite
Affiche le prochain historique le plus vieux
Affiche le prochain historique le plus récent

Éxectution des commandes

Nom Description Supporté? Bonus
Commande du path Éxecute une commande depuis le path
Séparateur ; Éxecute une commande puis une autre
Séparateur Éxecute une commande OU une autre en fonction de si l'execution m'a pas été reussi ou pas
Séparateur &| Éxecute une commande puis une autre
Séparateur && Éxecute une commande ET une autre en fonction de si l'execution à été reussi
Opérateur > Redirige la sortie standard vers un autre file descriptor
Opérateur >> Redirige la sortie standard vers un autre file descriptor (ajout à la fin)
Opérateur << Heredoc
Opérateur < Redirige l'entrée standard vers la commande
Pipe | le fameux pipe (ex ls | frep 21sh)
Echappement des guillements dans les commandes Exemple: "l"s
Gestion avancée des erreurs Exemple: ls ; ;
Gestion du tilde Exemple: cd ~
Gestion du des variables d'environement Exemple: echo $PATH

Autres bonus

Nom Description Supporté? Bonus
Hashtable pour les binaires table de hash pour les binaires
Hashtable pour les variables d'environements table de hash pour les variable d'environement
Multi line support >
Dquote dquote>
Completion dynamique dquote>

About

42sh : shell implementation from scratch with 0 libraries.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages