This shows you the differences between two versions of the page.
sde2:teme:tema_fr_2_rust [2022/03/30 12:39] alexandru.radovici |
sde2:teme:tema_fr_2_rust [2023/03/31 11:41] (current) alexandru.radovici |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Devoir 2 - Rusty-shell ====== | + | ====== Devoir 2 - Rustyshell ====== |
Le but de ce thème est de créer un shell simple, compatible avec '' sh ''; | Le but de ce thème est de créer un shell simple, compatible avec '' sh ''; | ||
Line 6: | Line 6: | ||
<note important> | <note important> | ||
- | Date limite: ** Le 13 avril, 23h59 ** \\ | + | Date limite: ** Le 16 avril, 23h59 ** \\ |
Note: ** 2 points ** de la note \\ | Note: ** 2 points ** de la note \\ | ||
- | Lien: [[https://classroom.github.com/a/CNECMumG|Devoir 2]] \\ | + | Lien: [[https://classroom.github.com/a/5bIEjznY|Devoir 2]] \\ |
Télécharger en retard: **1 points / jour** (maximum 4 jours)\\ | Télécharger en retard: **1 points / jour** (maximum 4 jours)\\ | ||
</note> | </note> | ||
Line 56: | Line 56: | ||
* sera utilisé pour exécuter des commandes séquentiellement; | * sera utilisé pour exécuter des commandes séquentiellement; | ||
* par exemple, '' expr1; expr2 '' commencera par exécuter les commandes '' expr1 '' et les commandes '' expr2 '' seulement après l'exécution de //expr1//; | * par exemple, '' expr1; expr2 '' commencera par exécuter les commandes '' expr1 '' et les commandes '' expr2 '' seulement après l'exécution de //expr1//; | ||
+ | <hidden> | ||
* Opérateur de parallélisme '' & '' | * Opérateur de parallélisme '' & '' | ||
* sera utilisé pour exécuter les commandes en parallèle; | * sera utilisé pour exécuter les commandes en parallèle; | ||
* par exemple, '' expr1 & expr2 '' entraînera l'exécution de '' expr1 '' et des commandes '' expr2 '' en parallèle; | * par exemple, '' expr1 & expr2 '' entraînera l'exécution de '' expr1 '' et des commandes '' expr2 '' en parallèle; | ||
* dans l'implémentation de votre programme, il est ** INTERDIT** de rappeler le propre exécutable. <code> execv ("./rustyshell", "command"); </code> | * dans l'implémentation de votre programme, il est ** INTERDIT** de rappeler le propre exécutable. <code> execv ("./rustyshell", "command"); </code> | ||
+ | </hidden> | ||
* opérateurs d'exécution conditionnelle '' && '' et '' || '' | * opérateurs d'exécution conditionnelle '' && '' et '' || '' | ||
* seront utilisés pour exécuter des commandes en fonction du code d'erreur; | * seront utilisés pour exécuter des commandes en fonction du code d'erreur; | ||
Line 70: | Line 72: | ||
- opérateur pipe | - opérateur pipe | ||
- opérateurs d'exécution conditionnelle | - opérateurs d'exécution conditionnelle | ||
- | - opérateur de parallélisme | + | - opérateur de parallélisme (pas utilise) |
- opérateur de séquençage | - opérateur de séquençage | ||
Line 86: | Line 88: | ||
* '' exit '' et '' quit '' pour terminet le shell | * '' exit '' et '' quit '' pour terminet le shell | ||
* '' cd directory '' pour changer le répertoire actuel | * '' cd directory '' pour changer le répertoire actuel | ||
- | * ** ATTENTION **: Le rusty-shell doit toujours fonctionner a l'utilisation de la commande '' cd '' sans paramètre, remplacer le répertoire en cours par le répertoire //home// de l'utilisateur courant (variable %%$%%HOME) | + | * ** ATTENTION **: Le rustyshell doit toujours fonctionner a l'utilisation de la commande '' cd '' sans paramètre, remplacer le répertoire en cours par le répertoire //home// de l'utilisateur courant (variable %%$%%HOME) |
Le shell doit aussi supporter les sous-commandes: | Le shell doit aussi supporter les sous-commandes: | ||
Line 101: | Line 103: | ||
- Lancer des commandes simples ('' ls '', '' ls -l '') | - Lancer des commandes simples ('' ls '', '' ls -l '') | ||
- | - Exécuter des commandes internes ('' cd '', '' exit '', 'quit' ') | + | - Exécuter des commandes internes ('' cd '', '' exit '', ''quit'') |
- mise en place de redirections (opérateurs '' < '', '' > '', '' 2> '', '' &> '', '' >> '', '' 2>> '') | - mise en place de redirections (opérateurs '' < '', '' > '', '' 2> '', '' &> '', '' >> '', '' 2>> '') | ||
- séquencement des commandes (opérateurs ''&&'', ''||'', '';'') | - séquencement des commandes (opérateurs ''&&'', ''||'', '';'') | ||
- | - implémentation des opérateurs '' & '' (parallèle) | + | - implémentation des opérateurs '' & '' (parallèle, pas utilise) |
- '' | '' | - '' | '' | ||
Line 180: | Line 182: | ||
Laboratoires utiles: | Laboratoires utiles: | ||
- | *[[sde2:laboratoare:01_new]] | + | *[[sde2:laboratoare:00_rust]] |
- | *[[sde2:laboratoare:02_new]] | + | *[[sde2:laboratoare:01_rust]] |
- | *[[sde2:laboratoare:03_new]] | + | *[[sde2:laboratoare:02_rust]] |
- | *[[sde2:laboratoare:04_new]] | + | *[[sde2:laboratoare:03_rust]] |
- | *[[sde2:laboratoare:05_new]] | + | *[[sde2:laboratoare:04_rust]] |