42sh_
Le meilleur du shell, en toute simplicité.

$>
L'équipe





Cédric Thomas
Thibaut Cornolti
Bastien Rinck
Marin Brunel
Un shell pour utilisateur expérimenté
&
$>
|| &&
< | >
-
Exécution de binaire du path
-
Nombreux builtins
-
Gestion des statuts et des erreurs
Un shell pour utilisateur expérimenté
&
|| &&
< | >
-
Séparateurs logiques d'exécution
-
Gestion des retours d'erreur
-
Autorise ou bloque l'exécution
$>
Un shell pour utilisateur expérimenté
&
|| &&
< | >
-
Gestion des flux d'entrés / sorties
-
Injection / création de fichier
-
Création de flux inter-processus
$>
Un shell pour utilisateur expérimenté
&
|| &&
< | >
-
Exécution asynchrone des processus
-
Suspension d'exécution
-
Gestion de la propriété
$>
Manipulation du shell
$> builtins
alias builtins chdir exit
history set unalias unsetenv
bg cd echo fg
jobs setenv unset where
Text
Manipulation des paramètres internes
(environnement, alias, variables, historique)
Gestion des plans d'exécution
(foreground, background, jobs)
Un parsing composé de
Analyse Syntaxique
Modulaire
Précise
Adaptable
Création d'arbres
Prioritaire
Récursive
Intelligente
Exemple d'un parsing
$> emacs & ls | cat &> lol -e
&
emacs
|
ls
cmd: cat argv: [cat], [-e] flux: [|], [lol]
Édition de ligne avancée
$>
!!
↹
-
Déplacement dynamique du curseur
-
Gestion des capacités d'édition de ligne
Édition de ligne avancée
$>
!!
↹
-
Mappage des touches fléchées
-
Sauvegarde de l'historique
-
Implémentation des flags de substitution
Édition de ligne avancée
$>
!!
↹
-
Auto complétion
-
Via path et builtins
-
Via historique
-
Le 42shrc

$>
Initialiser le shell à partir d'un fichier
Les informations visuelles
➜ 0 PSU_2016_42sh git:(master)
Dernière valeur de de retour
Dossier courant
Branche git
Un historique avancé
!!
Dernière commande entrée
Un historique avancé
!$
Dernier argument de la dernière commande entrée
Un historique avancé
!n
Commande numéro 'n'
(visible via la builtin history)
Un historique avancé
!-n
énième dernière commande
(visible via la builtin history)
Un historique avancé
!:n
énième argument de la dernière commande
Une exécution asynchrone
fg
Lance firefox en background
firefox &
Remet firefox en foreground
bg
Met firefox en suspended
Ctrl + Z
Relance firefox en background
jobs [-l]
Affiche les jobs et leurs états
Une exécution asynchrone
Alias et Variables
Déclare une variable
set oui="Hey :D" ; echo $oui
set
unset
Déclare un alias
alias ls ls -l ls
alias
unalias
Magic quotes
Réinjecter un flux d'une commande en argument
$> cat testfile
Ceci
est
un fichier
de test
$> echo `cat file` ":)"
Ceci est un fichier de test :)
Globbing
Sélectionnez dynamiquement le contenu d'un répertoire.
$> ls
42sh getter.c include load Makefile parse
binds getter.o lib main.c match prompt.c
exec history line_edit main.o node prompt.o
$> ls m?*.[c,o]
main.c main.o
Un résumé de notre shell
Variables locales
Magic quote
Auto-complétion
Jobs Control
Globbing
Historique
Alias
Édition de lignes avancées
.42shrc
Parseur LL
Live Test
Qualités de notre shell
Un shell ergonomique et esthétique
De très bonnes performances
Un nombre de built-in conséquent
Une syntaxe étendue
Le futur de notre shell
Une gestion du script
Un plus grand nombres de built-in
Des libs dynamiques au run-time (type plug-in)
Une optimisation amélioré
Merci !
Avez-vous des questions?
42sh
By thibautcornolti
42sh
- 242