Revision sheet: Introduction aux commandes Unix et scripting shell

Plan du Cours

  1. DĂ©finition de la longueur d’une dĂ©signation en rĂ©pertoires
  2. Syntaxe et interprĂ©tation des commandes shell sur une mĂȘme ligne
  3. Manipulation des fichiers et répertoires : création, copie, déplacement
  4. Consultation et modification des fichiers texte avec éditeurs et commandes
  5. Gestion des droits d’accùs aux fichiers et contrîle des modifications
  6. Tri et filtrage de fichiers texte avec commandes grep et sort
  7. Écriture et structuration de scripts shell avec gestion des paramùtres et boucles
  8. Gestion des processus : affichage, contrĂŽle et signaux
  9. Écriture de scripts shell rĂ©actifs aux signaux et interaction utilisateur
  10. Utilisation des commandes Unix fondamentales pour la gestion des fichiers et répertoires
  11. Commandes filtres et manipulation de flux d’entrĂ©e/sortie
  12. Commandes pour tests, opérations arithmétiques et gestion des paramÚtres en shell

1. DĂ©finition de la longueur d’une dĂ©signation en rĂ©pertoires

Notions clés & Définitions

  • Exemple : Illustration concrĂšte utilisĂ©e pour clarifier une notion ou une rĂšgle.
  • Chaine : Suite ordonnĂ©e de caractĂšres utilisĂ©e pour reprĂ©senter des donnĂ©es textuelles, comme un chemin dans un systĂšme de fichiers.
  • RĂ©pertoires (d) : Fichiers stockĂ©s sur disque contenant des informations permettant d'organiser l'accĂšs Ă  d'autres fichiers, formant une structure hiĂ©rarchique arborescente.
  • DĂ©signation relative : Chemin d'accĂšs Ă  un fichier ou rĂ©pertoire exprimĂ© par rapport au rĂ©pertoire courant, utilisant notamment '.' pour dĂ©signer le rĂ©pertoire courant et '..' pour le rĂ©pertoire parent.

Points essentiels

  • La longueur d’une dĂ©signation en rĂ©pertoire correspond Ă  la taille maximale autorisĂ©e pour le chemin complet d’un fichier ou rĂ©pertoire dans le systĂšme.
  • Cette limite est imposĂ©e par le systĂšme d’exploitation et peut varier selon l’implĂ©mentation Unix utilisĂ©e.
  • Une dĂ©signation trop longue peut empĂȘcher l’accĂšs ou la manipulation correcte d’un fichier ou rĂ©pertoire.
  • ➄Syntaxe : pwd ➄Description : Pas d’option. Exemple : pwd/users/linfg/linfg0/S3pwd /users/linfg/linfg0/S3 ➄Codes de retour :
    • Pas d’erreur : 0
    • OpĂ©ration interrompue pour cause d’erreur : > 0 ☞ cd ➄CaractĂ©ristiques : 1. cd vient de change directory (« changer de rĂ©pertoire »). 2. Cette commande permet de changer de rĂ©pertoire courant, de maniĂšre relative ou absolue. 3. Il s’agit d’une commande interne, qui peut donc fortement varier d’un shell Ă  l’autre. ➄Syntaxe : cd [dĂ©signation_rĂ©pertoire] Lorsque la commande est tapĂ©e sans paramĂštre, on se retrouve dans le rĂ©pertoire d’accueil (home directory). ➄Description : pas d’option. ➄Exemple : cd ../TD Cette commande permet de se dĂ©placer dans l’arborescence vers le rĂ©pertoire frĂšre du rĂ©pertoire courant, de nom TD KINUPI41 SystĂšmes AC – v2 5.4 – Manipulation de l’arborescence des fichiers 65/88 ➄Codes de retour :
    • Pas d’erreur : 0
    • OpĂ©ration interrompue pour cause d’erreur : > 0 ☞ chmod ➄CaractĂ©ristiques : 1. chmod vient de change mode (« changer de mode »). 2. Cette commande permet de modifier les droits d’accĂšs Ă  un ou Ă  plusieurs fichiers ou rĂ©pertoires dont on est le propriĂ©taire. ➄Syntaxe : chmod [-fR] [personnes...]+|-[permissions...] dĂ©signation [...]
    • Les personnes (classes d’utilisateurs) sont u (user ) s’il s’agit du propriĂ©taire du fichier ou du rĂ©pertoire, g (group) s’il s’agit des membres du groupe du propriĂ©taire, o (others) s’il
  • [dĂ©signation_rĂ©pertoire ...]
  • ls [-RadLCxmlnogrtucpFbqisf1AM] [dĂ©signation_fichier ...] ➄Description :
  • -a : affiche Ă©galement les fichiers commençant par le caractĂšre . (fichiers « cachĂ©s »).
  • -l : affiche une premiĂšre ligne indiquant la taille totale du rĂ©pertoire en nombre de « blocs »puis, pour chaque sous-rĂ©pertoire ou fichier accessible, ses principales caractĂ©ristiques sur une ligne : nature (rĂ©pertoire ou fichier), droits d’accĂšs, nombre de liens, nom du propriĂ©taire, nom du groupe du propriĂ©taire, taille en octets, date et heure de derniĂšre modification, nom (qui commence au 55Ăšme caractĂšre de la ligne). Si cette option est utilisĂ©e et qu’un fichier est passĂ© en paramĂštre, alors ces informations ne sont affichĂ©es que pour ce fichier.
  • Autres options : cf. la description de la commande ls, en tapant man ls ➄Exemple : $ ls -al total 1224 drwxr-xr-x 9 durou tci 512

À retenir

La taille maximale des chemins dans un systĂšme de fichiers est une contrainte essentielle Ă  connaĂźtre pour Ă©viter des erreurs lors de l’accĂšs ou de la manipulation des fichiers.

2. Syntaxe et interprĂ©tation des commandes shell sur une mĂȘme ligne

Notions clés & Définitions

  • Deux temps : Processus en deux Ă©tapes distinctes, comme dans la commande eval oĂč l’interprĂ©tation des mĂ©tacaractĂšres est suivie de l’exĂ©cution de la commande rĂ©sultante.
  • MĂ©tacaractĂšres du shell : CaractĂšres spĂ©ciaux utilisĂ©s pour construire des listes de noms de fichiers correspondant Ă  un modĂšle, notamment *, ?, et les crochets [] avec des listes ou intervalles de caractĂšres.
  • Remarque : Bien que syntaxiquement correcte, la sĂ©quence ...|cat|...

Points essentiels

  • Les mĂ©tacaractĂšres du shell permettent la construction de listes de noms de fichiers selon des modĂšles (ex: *, ?, []).
  • Les termes entre crochets dans la syntaxe d’une commande sont facultatifs, ceux hors crochets sont obligatoires.
  • Le caractĂšre | sĂ©pare des Ă©lĂ©ments exclusifs dans la syntaxe d’une commande (choix mutuellement exclusif).
  • Les redirections permettent de modifier les flux d’entrĂ©e et sortie standard des commandes.
  • Plusieurs commandes peuvent ĂȘtre enchaĂźnĂ©es sur une mĂȘme ligne avec des opĂ©rateurs spĂ©cifiques (ex: ;, &&, ||).
  • Le shell commence par interprĂ©ter ces mĂ©tacaractĂšres, c’est-Ă -dire forme les listes des noms de fi- chiers qui correspondent au modĂšle, puis il transmet ces noms de fichiers aux commandes qui sont alors exĂ©cutĂ©es.

À retenir

MaĂźtriser la syntaxe et les mĂ©tacaractĂšres permet d’écrire des commandes shell complexes sur une seule ligne.

3. Manipulation des fichiers et répertoires : création, copie, déplacement

Notions clés & Définitions

  • Pas d’erreur : Code de retour Ă©gal Ă  0 indiquant que l’opĂ©ration s’est dĂ©roulĂ©e sans erreur.
  • 0 \leadsto{}Remarque : Code de retour 0 signifiant la rĂ©ussite d’une commande, utilisĂ© pour vĂ©rifier sa bonne exĂ©cution.
  • M mode : Option ou paramĂštre spĂ©cifiant le mode ou le comportement d’une commande, notamment pour la crĂ©ation ou modification.
  • Commande mkdir : Commande utilisĂ©e pour crĂ©er un ou plusieurs rĂ©pertoires, avec l’option -p permettant de crĂ©er les rĂ©pertoires parents si nĂ©cessaire.

Points essentiels

  • La commande mkdir permet de crĂ©er un ou plusieurs rĂ©pertoires.
  • La commande cp sert Ă  copier des fichiers ou rĂ©pertoires, avec des options pour la rĂ©cursivitĂ©.
  • La commande mv permet de dĂ©placer ou renommer des fichiers et rĂ©pertoires.
  • Les opĂ©rations de copie et dĂ©placement peuvent ĂȘtre limitĂ©es Ă  des chemins relatifs ou absolus.
  • Il est important de ne pas confondre dĂ©placement et copie pour Ă©viter la perte de donnĂ©es.
  • Pour supprimer les fichiers du rĂ©pertoire courant comprenant l’extension .bak, on peut bien sĂ»r utiliser l’une des deux syntaxes suivantes : rm *.bak rm ‘ls *.bak‘ KINUPI41 SystĂšmes AC – v2 5.4 – Manipulation de l’arborescence des fichiers 63/88 \leadsto{}Remarque : Pour supprimer un fichier dont le nom commence par un caractĂšre -, comme par exemple -fichier, on peut taper la commande : rm -- -fichier La commande rm -fichier provoquerait l’affichage d’un message d’erreur, car le shell interprĂ©terait les caractĂšres -fichier comme une liste d’options de la commande rm.
  • Exercice 9 Commencer par lire la description de la commande mkdir, page 63. 1. En une seule ligne de commande, crĂ©er le sous-rĂ©pertoire REP1 et le sous-sous-rĂ©pertoire REP1/SREP1 2. En une seule ligne de commande, crĂ©er deux sous-rĂ©pertoires REP2 et REP3 dans le rĂ©pertoire courant, puis afficher le message termine 3. MĂȘme question, mais en Ă©crivant ce message dans le fichier liste.txt ✎

À retenir

La commande mkdir permet de créer un ou plusieurs répertoires.

4. Consultation et modification des fichiers texte avec éditeurs et commandes

Notions clés & Définitions

  • Ligne : UnitĂ© de base d’un fichier texte, correspondant Ă  une sĂ©quence de caractĂšres terminĂ©e par un saut de ligne.
  • Commande cat : Commande permettant d’afficher le contenu d’un fichier ou de concatĂ©ner plusieurs fichiers sur la sortie standard.

Points essentiels

  • La commande cat permet d’afficher le contenu d’un fichier texte sur la sortie standard.
  • Les Ă©diteurs de texte permettent la modification interactive des fichiers texte.
  • La redirection >> permet d’ajouter du texte Ă  la fin d’un fichier sans Ă©craser son contenu.
  • Il est possible d’écrire plusieurs lignes dans un fichier via une redirection avec un marqueur de fin (ex: cat << FIN).

À retenir

Utiliser la commande cat et les redirections pour lire et modifier efficacement les fichiers texte.

5. Gestion des droits d’accùs aux fichiers et contrîle des modifications

Notions clés & Définitions

  • Au premier plan : État d’un processus ou d’une commande qui s’exĂ©cute de maniĂšre active et visible dans la session ou le terminal courant.
  • En arriĂšre-plan : État d’un processus ou d’une commande lancĂ©e pour s’exĂ©cuter sans bloquer la session courante, souvent indiquĂ©e par le symbole &.
  • Commande chmod : Commande permettant de modifier les droits d’accĂšs en lecture, Ă©criture et exĂ©cution des fichiers et rĂ©pertoires, en attribuant ces droits distinctement Ă  l’utilisateur, au groupe et aux autres.

Points essentiels

  • Les droits sont attribuĂ©s sĂ©parĂ©ment pour l’utilisateur, le groupe et les autres.
  • Le code de retour d’une commande indique son succĂšs (0) ou une erreur (valeur strictement supĂ©rieure Ă  0).
  • Le code de retour d’une commande peut ĂȘtre vĂ©rifiĂ© via la variable $? immĂ©diatement aprĂšs son exĂ©cution.
  • ➄Codes de retour :
    • Pas d’erreur : 0
    • OpĂ©ration interrompue pour cause d’erreur : > 0 ➄Remarques :
    • Pour connaĂźtre les droits d’accĂšs Ă  un fichier, il suffit de taper la commande ls -l
    • Pour lancer l’exĂ©cution d’un script contenu dans le fichier nom_script.sh, on peut aussi le rendre exĂ©cutable, puis l’appeler directement, de la maniĂšre suivante : chmodu+xnomscript.shchmod u+x nom_script.sh nom_script.sh [paramĂštre_script ...] ☞ find ➄CaractĂ©ristiques : 1.

À retenir

Les droits sont attribuĂ©s sĂ©parĂ©ment pour l’utilisateur, le groupe et les autres.

6. Tri et filtrage de fichiers texte avec commandes grep et sort

Notions clés & Définitions

  • Variable : CaractĂšre ou chaĂźne de caractĂšres utilisĂ©e pour stocker ou reprĂ©senter une donnĂ©e dans un script ou une commande.
  • Interrompue pour cause d’erreur : Message indiquant qu’une opĂ©ration ou une commande a Ă©chouĂ©, gĂ©nĂ©ralement avec un code de retour supĂ©rieur Ă  0.
  • Commande grep : Outil permettant d’extraire les lignes d’un fichier correspondant Ă  un motif dĂ©fini par une expression rĂ©guliĂšre.

Points essentiels

  • La commande grep extrait les lignes d’un fichier correspondant Ă  un motif dĂ©fini par une expression rĂ©guliĂšre.
  • Les expressions rĂ©guliĂšres sont des chaĂźnes de caractĂšres avec des mĂ©tacaractĂšres permettant de dĂ©finir des motifs complexes.
  • La commande sort trie les lignes d’un fichier selon diffĂ©rents critĂšres, comme l’ordre alphabĂ©tique ou numĂ©rique.
  • Les expressions rĂ©guliĂšres peuvent ĂȘtre utilisĂ©es entre apostrophes ou guillemets pour Ă©viter leur interprĂ©tation par le shell.

À retenir

L’utilisation des expressions rĂ©guliĂšres avec grep et sort permet de filtrer et organiser efficacement des donnĂ©es textuelles.

7. Écriture et structuration de scripts shell avec gestion des paramùtres et boucles

Notions clés & Définitions

  • Commande expr : LancĂ©e avec plusieurs opĂ©rateurs, il faut ĂȘtre vigilant, car l’ordre des opĂ©rations ne se fait ni de gauche Ă  droite, ni de droite Ă  gauche, mais suivant un ordre prĂ©dĂ©fini de prioritĂ© des opĂ©rateurs.

Points essentiels

  • Les structures if permettent d’effectuer des tests conditionnels dans un script.
  • Les boucles for et while permettent de rĂ©pĂ©ter des actions selon des conditions ou sur des listes.
  • La commande expr permet d’évaluer des expressions arithmĂ©tiques et des comparaisons dans les scripts.
  • Dec 8 21:05:47 MET 1997 ➄Codes de retour :
    • Pas d’erreur : 0
    • OpĂ©ration interrompue pour cause d’erreur : > 0 AC – v2 KINUPI41 SystĂšmes Index &, 55 bg, 55 commande Unix, 15 format, 16 interprĂ©teurs, 15 syntaxe de description, 16 commandes basename, 67 break, 32 cat, 67 cd, 64 chmod, 65 cmp, 73 cp, 61 cut, 72 date, 85 df, 18 dirname, 66 du, 19 echo, 81 eval, 34, 78 exit, 77 export, 33 expr, 82 find, 65 grep, 70 head, 69 kill, 76 ln, 18 ls, 60 mail, 77 man, 16, 59 mkdir, 63 more, 68 mv, 61 ps, 75 pwd, 64 read, 80 return, 35 rm, 62 rmdir, 63 sed, 74 set, 79 sh, 78 shift, 80 sort, 71 tail, 69 tee, 68 test, 83 tr, 74 wc, 72 double Ă©valuation, 34 eval, 34 expressions rĂ©guliĂšres, 28 mĂ©tacaractĂšres, 28 fg, 55 fichiers, 17 dĂ©signation, 17 droits d’accĂšs, 18 liens, 18 modĂšle hiĂ©rarchique, 17 occupation disque, 18 types, 17 filtres, 22 fonctions, 35 gestion des erreurs, 35 paramĂštres nombre, 35 validitĂ©, 35 jobs, 55 kill, 56 mĂ©tacaractĂšres des expressions rĂ©guliĂšres, 28 du shell, 21 AC – v2 – 87/88 – KINUPI41 SystĂšmes 88/88 Index paramĂštres, 29 positionnels, 29 spĂ©ciaux, 29 ps, 54 redirections, 22 branchement, 25 capture de la sortie standard, 25 de l’entrĂ©e standard, 23 de la sortie standard, 24 de la sortie standard des erreurs, 26 schĂ©mas classiques, 36 scripts, 29 shell fils, 33 sleep, 55 sous-shell, 33 structures de contrĂŽle, 31 choix, 32 choix multiple, 32 conditions, 31 opĂ©rateurs de contrĂŽle, 31 rĂ©pĂ©titions, 32 stty, 54 systĂšmes de gestion de fichiers, 17 top, 55 trap, 56 unitĂ©s standard, 22 Unix, 15 structure, 15 variables, 30 wait, 55 KINUPI41 SystĂšmes AC – v2

À retenir

Construire des scripts robustes en combinant paramĂštres, conditions et boucles pour automatiser des tĂąches.

8. Gestion des processus : affichage, contrĂŽle et signaux

Notions clés & Définitions

  • Signal : Une notification envoyĂ©e Ă  un processus pour lui indiquer d'effectuer une action spĂ©cifique, comme s'arrĂȘter, se suspendre ou reprendre.
  • StoppĂ© : Il est dans un Ă©tat suspendu.
  • Commande kill : L affiche la liste des signaux disponibles.

Points essentiels

  • La commande ps affiche la liste des processus en cours d’exĂ©cution.
  • Les signaux Unix permettent de contrĂŽler les processus (arrĂȘt, suspension, reprise).
  • La commande kill envoie un signal Ă  un processus identifiĂ© par son PID.
  • Certains signaux peuvent ĂȘtre interceptĂ©s ou ignorĂ©s par les processus.
  • L’envoi de signaux peut ĂȘtre testĂ© depuis un autre terminal pour observer les effets sur un processus.
  • -a : affiche les informations sur tous les processus sauf ceux qui ne sont pas associĂ©s Ă  un terminal ; -f : affiche des informations dĂ©taillĂ©es ; -l : affiche des informations trĂšs dĂ©taillĂ©es ; -u "liste d’utilisateurs" : affiche les informations sur les processus appartenant aux utilisa- teurs mentionnĂ©s. Les informations trĂšs dĂ©taillĂ©es affichĂ©es peuvent ĂȘtre les suivantes : F : obsolĂšte ; S : Ă©tat des processus O : en train de s’exĂ©cuter sur le processeur ; S : endormi ou bloquĂ© (attend un Ă©vĂ©nement pour continuer) ; R : prĂȘt ; Z : zombie (terminĂ© alors que son pĂšre n’a pas encore pris connaissance de sa terminaison) ; T : stoppĂ© (par le signal SIGSTOP par exemple) ; UID : numĂ©ro ou nom du propriĂ©taire du processus ; PID : numĂ©ro du processus ; PPID : numĂ©ro du processus pĂšre ; C : obsolĂšte ; PRI : prioritĂ© (plus le nombre est grand, plus la prioritĂ© est basse) ; AC – v2 KINUPI41 SystĂšmes 56/88 4 – Sujets des travaux pratiques NI : gentillesse (plus le nombre est grand, moins l’accĂšs du processus au processeur est frĂ©quent) ; ADDR : adresse mĂ©moire du processus ; SZ : taille du processus en Ko (code + donnĂ©es + pile) ; WCHAN : nom de la fonction du noyau du systĂšme dans laquelle le processus est endormi (bloquĂ©) ; STIME : heure de lancement du processus ; TTY : terminal de contrĂŽle du processus ; TIME : temps d’exĂ©cution cumulĂ© du processus ; CMD : commande qui a donnĂ©
  • Émission d’un signal Par dĂ©faut, les caractĂ©ristiques d’un terminal permettent d’envoyer un certain nombre de signaux au processus lancĂ© au premier plan.

À retenir

La commande ps affiche la liste des processus en cours d’exĂ©cution.

9. Écriture de scripts shell rĂ©actifs aux signaux et interaction utilisateur

Notions clés & Définitions

Points essentiels

  • La commande trap permet de dĂ©finir des gestionnaires de signaux dans un script shell.
  • Les scripts peuvent lire des entrĂ©es clavier pour interagir avec l’utilisateur.
  • Il est possible de combiner gestion des signaux et interaction utilisateur pour rendre les scripts rĂ©actifs et contrĂŽlables.

À retenir

Rendre les scripts dynamiques et interactifs en intégrant la gestion des signaux et des entrées utilisateur.

10. Utilisation des commandes Unix fondamentales pour la gestion des fichiers et répertoires

Notions clés & Définitions

  • Attention : La vĂ©rification attentive des options des commandes est nĂ©cessaire pour Ă©viter des actions non dĂ©sirĂ©es, notamment des suppressions accidentelles.

Points essentiels

  • La commande ls liste les fichiers et rĂ©pertoires dans un rĂ©pertoire donnĂ©.
  • La commande rm supprime des fichiers ou rĂ©pertoires, avec l’option rĂ©cursive pour supprimer un rĂ©pertoire et son contenu.
  • La commande pwd affiche le chemin absolu du rĂ©pertoire courant.
  • Il est important de vĂ©rifier les options des commandes pour Ă©viter des suppressions accidentelles.
  • Ce sont des rĂ©pertoires cachĂ©s qui apparaissent systĂ©matiquement avec l’option -a ➄Codes de retour :
    • Pas d’erreur : 0
    • OpĂ©ration interrompue pour cause d’erreur : > 0 KINUPI41 SystĂšmes AC – v2 5.4 – Manipulation de l’arborescence des fichiers 61/88 ➄Remarque : La commande ls affiche un nom de fichier ou de sous-rĂ©pertoire par ligne sur sa sortie standard.

À retenir

La commande ls liste les fichiers et répertoires dans un répertoire donné.

11. Commandes filtres et manipulation de flux d’entrĂ©e/sortie

Notions clés & Définitions

Points essentiels

  • La commande cat concatĂšne et affiche le contenu de fichiers ou de l'entrĂ©e standard.
  • Les redirections modifient les flux standard d’entrĂ©e et de sortie des commandes.
  • L’utilisation de sĂ©quences comme ...|cat|... est souvent inutile et doit ĂȘtre Ă©vitĂ©e.
  • Les mĂ©tacaractĂšres & et chiffres dĂ©signent les flux standards lors des redirections.
  • KINUPI41 SystĂšmes AC – v2 5.5 – AccĂšs au contenu des fichiers 73/88 ➄Syntaxe : wc [-c|-m|-C] [-lw] [dĂ©signation_fichier ...] ➄Description :
    • AppelĂ©e sans option, la commande wc affiche, sur chaque ligne, le nombre de lignes, le nombre de mots, le nombre de caractĂšres et L’exemple suivant montre que si le nombre de mots (sĂ©parĂ©s par des espaces ou des tabulations) est supĂ©rieur au nombre d’arguments de la commande read, alors la variable correspondant au dernier argument reçoit toute la fin de la ligne : readabc’estunexempleread a b c’est un exemple echo ac’esta c’est echo bunexempleb un exemple
    • cat fichier | while read ligne do ...

À retenir

Optimiser le traitement des donnĂ©es en combinant commandes via redirections et pipes permet de manipuler efficacement les flux d’entrĂ©e et de sortie.

12. Commandes pour tests, opérations arithmétiques et gestion des paramÚtres en shell

Notions clés & Définitions

  • Commande test : Pour obtenir une Ă©criture correcte, il est alors nĂ©cessaire d’entourer l’expression contenant le nom de la variable de guillemets : test "$chaine

Points essentiels

  • La commande expr Ă©value des expressions arithmĂ©tiques et des opĂ©rations sur chaĂźnes de caractĂšres.
  • Les paramĂštres positionnels (1,1, 2, ...) transmettent des arguments aux scripts shell.
  • Il est nĂ©cessaire de vĂ©rifier la validitĂ© des paramĂštres, par exemple qu’ils soient des entiers, avant de les utiliser dans des calculs.
  • 1). Une expression rĂ©guliĂšre dĂ©signe donc une sĂ©quence type de carac- tĂšres (pattern) Ă  laquelle une ligne de texte (dans un fichier par exemple) peut correspondre ou ne pas correspondre. Elles sont par exemple utilisĂ©es pour extraire certaines lignes d’un fichier, pour extraire certains caractĂšres de chaĂźnes de caractĂšres, pour effectuer des substitutions de texte, pour vĂ©rifier la validitĂ© syntaxique de chaĂźnes de caractĂšres (dans des formulaires sur des pages Web par exemple). MĂȘme si elles ne sont pas spĂ©cifiques au shell de Bourne, les expressions rĂ©guliĂšres sont trĂšs utilisĂ©es pour l’écriture de scripts shell au travers de commandes comme expr (page 82), sed (page
  • Cette commande permet d’effectuer des opĂ©rations arithmĂ©tiques et logiques, ainsi que des opĂ©- rations sur les chaĂźnes de caractĂšres plus sophistiquĂ©es que la simple concatĂ©nation, et affiche le rĂ©sultat de ces opĂ©rations sur la sortie standard.

À retenir

Utiliser efficacement les tests et calculs pour contrĂŽler le flux et la logique des scripts shell.

đŸ§© ComplĂ©ments de couverture

  1. DĂ©tail source Ă  rĂ©viser : 2 CUPGE-UPSSITECH KINUPI41 - SYSTÈMES Support de cours/TD intĂ©grĂ©s et de TP Alain CROUZIL, Jean-Denis DUROU {crouzil,durou}@irit.fr Avant-propos Objectif Ce support est destinĂ© Ă  ĂȘtre utilisĂ© durant les sĂ©ances de cours/ (Source: "2 CUPGE-UPSSITECH KINUPI41 - SYSTÈMES Support de cours/TD intĂ©grĂ©s et de TP Alain CROUZIL, Jean-Denis DUROU {crouzil,durou}@irit.fr Avant-propos Objectif Ce support est destinĂ© Ă  ĂȘtre utilisĂ© durant les sĂ©ances de cours/TD intĂ©grĂ©s et de TP. Il ne constitue pas un support complet dans la mesure oĂč, en sĂ©ance, vous seront donnĂ©s des explications, des")
  2. DĂ©tail source Ă  rĂ©viser : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Format gĂ©nĂ©ral d’une commande Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Syntaxe de description d’une commande Unix . . . . (Source: ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Format gĂ©nĂ©ral d’une commande Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Syntaxe de description d’une commande Unix . . . . . . . . . . . . . . . . . . . . . . . 16 ✎ Exercice 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .")
  3. DĂ©tail source Ă  rĂ©viser : des erreurs d’une commande vers sa sortie standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ✎ Exercice 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ✎ Exer (Source: "des erreurs d’une commande vers sa sortie standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ✎ Exercice 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ✎ Exercice 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3 Introduction aux expressions")
  4. DĂ©tail source Ă  rĂ©viser : . . . 36 3.10.6.1 Affichage d’un texte Ă  l’écran . . . . . . . . . . . . . . . . . . . . . . . 36 3.10.6.2 Ajout d’un texte Ă  la fin d’un fichier . . . . . . . . . . . . . . . . . . . 37 3.10.6.3 Parcours d’un fichier li (Source: ". . . 36 3.10.6.1 Affichage d’un texte Ă  l’écran . . . . . . . . . . . . . . . . . . . . . . . 36 3.10.6.2 Ajout d’un texte Ă  la fin d’un fichier . . . . . . . . . . . . . . . . . . . 37 3.10.6.3 Parcours d’un fichier ligne par ligne . . . . . . . . . . . . . . . . . . . 37 3.10.6.4 Parcours d’une chaĂźne de caractĂšres mot par mot . . . . . . . . . . . . 38")
  5. DĂ©tail source Ă  rĂ©viser : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.2 OĂč sont les commandes ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3 À l’aide ! . . . . . . . . . . . . . . . . . . . . (Source: ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.2 OĂč sont les commandes ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3 À l’aide ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 ☞ man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .")
  6. DĂ©tail source Ă  rĂ©viser : . . . . . . . . . . . . . . . . . . . . . . . 78 ☞ sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ☞ eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Source: ". . . . . . . . . . . . . . . . . . . . . . . 78 ☞ sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ☞ eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ☞ set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ☞ shift . .")
  7. DĂ©tail source Ă  rĂ©viser : noter le dĂ©veloppement du langage Fortran. 1.2.3 DeuxiĂšme gĂ©nĂ©ration : machines Ă  transistors (58-64) \bullet{} Apparition des disques. \bullet{} Le superviseur prend en charge le traitement de toutes les E/S : pour accĂ©der aux pĂ©riphĂ©r (Source: "noter le dĂ©veloppement du langage Fortran. 1.2.3 DeuxiĂšme gĂ©nĂ©ration : machines Ă  transistors (58-64) \bullet{} Apparition des disques. \bullet{} Le superviseur prend en charge le traitement de toutes les E/S : pour accĂ©der aux pĂ©riphĂ©riques, l’utilisateur doit faire appel Ă  des directives du systĂšme. \bullet{} Un sous-ensemble du systĂšme gĂšre les disques et le placement des")
  8. DĂ©tail source Ă  rĂ©viser : etc.) ; \bullet{} permettre Ă  plusieurs programmes de partager du code ou des donnĂ©es en mĂ©moire ; \bullet{} disposer d’un systĂšme de protection des utilisateurs entre eux et du SE contre les utilisateurs (protection des donnĂ©es et des (Source: "etc.) ; \bullet{} permettre Ă  plusieurs programmes de partager du code ou des donnĂ©es en mĂ©moire ; \bullet{} disposer d’un systĂšme de protection des utilisateurs entre eux et du SE contre les utilisateurs (protection des donnĂ©es et des programmes en mĂ©moire et sur les disques) ; \bullet{} gĂ©rer le parallĂ©lisme si la machine dispose de plusieurs processeurs. Le SE gĂšre les")
  9. DĂ©tail source Ă  rĂ©viser : de programmation (API : Application Programming Interface) comme par exemple en C sous Unix ; \bullet{} un interprĂ©teur de commandes (shell ) sous la forme de : ◩ lignes de commandes, ◩ programmes (scripts) ; \bullet{} une interface gra (Source: "de programmation (API : Application Programming Interface) comme par exemple en C sous Unix ; \bullet{} un interprĂ©teur de commandes (shell ) sous la forme de : ◩ lignes de commandes, ◩ programmes (scripts) ; \bullet{} une interface graphique (Aqua, Windows, X-Window, KDE, etc.). AC – v2 KINUPI41 SystĂšmes Chapitre 2 Les systĂšmes Unix 2.1 GĂ©nĂ©ralitĂ©s \bullet{} DĂ©but du")
  10. DĂ©tail source Ă  rĂ©viser : elle retourne le code 0. Dans les autres cas, elle retourne un entier strictement positif. ✎ Exercice 1 Si la syntaxe de la commande cut est dĂ©crite par les deux lignes suivantes : cut -c list [file ...] cut -f list [-d (Source: "elle retourne le code 0. Dans les autres cas, elle retourne un entier strictement positif. ✎ Exercice 1 Si la syntaxe de la commande cut est dĂ©crite par les deux lignes suivantes : cut -c list [file ...] cut -f list [-d delim] [-s] [file ...] les appels suivants sont-ils corrects : 1. cut -d : -f 1,7 fichier 2. cut -c 1-16,26-38 3. cut -s fich1")
  11. DĂ©tail source Ă  rĂ©viser : donner la dĂ©signation relative du fichier : /users/linfg/l2inf201/REP1/f1 2.6.4 Droits d’accĂšs Tout utilisateur est repĂ©rĂ© par son nom (login) et par son groupe (par exemple, l’utilisateur l2inf201 fait partie du groupe (Source: "donner la dĂ©signation relative du fichier : /users/linfg/l2inf201/REP1/f1 2.6.4 Droits d’accĂšs Tout utilisateur est repĂ©rĂ© par son nom (login) et par son groupe (par exemple, l’utilisateur l2inf201 fait partie du groupe licence). À chaque fichier sont associĂ©es trois classes d’utilisateurs : \bullet{} le propriĂ©taire (user : u) ; \bullet{} les membres du groupe")
  12. DĂ©tail source Ă  rĂ©viser : ou une majuscule ; \bullet{} une minuscule suivie d’un chiffre. 2. Modifier l’interprĂ©tation des commandes : \bullet{} ; sĂ©pare deux commandes (ou plus) situĂ©es sur une mĂȘme ligne ; \bullet{} ’ dĂ©limite une chaĂźne de caractĂšres contenant des es (Source: "ou une majuscule ; \bullet{} une minuscule suivie d’un chiffre. 2. Modifier l’interprĂ©tation des commandes : \bullet{} ; sĂ©pare deux commandes (ou plus) situĂ©es sur une mĂȘme ligne ; \bullet{} ’ dĂ©limite une chaĂźne de caractĂšres contenant des espaces (Ă  l’intĂ©rieur, tous les mĂ©tacaractĂšres perdent leur signification) ; \bullet{} " dĂ©limite une chaĂźne de caractĂšres contenant des")
  13. DĂ©tail source Ă  rĂ©viser : ĂȘtre « branchĂ©s »les uns Ă  la suite des autres : en redirigeant la sortie standard du filtre filtre1 sur l’entrĂ©e standard du filtre filtre2, on peut rĂ©aliser un nouveau filtre, dont l’entrĂ©e standard est l’entrĂ©e standa (Source: "ĂȘtre « branchĂ©s »les uns Ă  la suite des autres : en redirigeant la sortie standard du filtre filtre1 sur l’entrĂ©e standard du filtre filtre2, on peut rĂ©aliser un nouveau filtre, dont l’entrĂ©e standard est l’entrĂ©e standard de filtre1 et la sortie standard, la sortie standard de filtre2. Enfin, certaines commandes, bien que ne pouvant pas fournir de")
  14. DĂ©tail source Ă  rĂ©viser : Redirection simple de la sortie standard d’une commande commande > dĂ©signation_fichier✍ 10 La sortie standard de commande est connectĂ©e au fichier dĂ©signation_fichier. S’il n’existe pas, il est créé. Sinon, son contenu e (Source: "Redirection simple de la sortie standard d’une commande commande > dĂ©signation_fichier✍ 10 La sortie standard de commande est connectĂ©e au fichier dĂ©signation_fichier. S’il n’existe pas, il est créé. Sinon, son contenu est Ă©crasĂ© par la sortie de commande. Exemple : grep ’e’ > fich_sortie.txt Ă©crit, dans le fichier fich_sortie.txt, les lignes tapĂ©es au")
  15. DĂ©tail source Ă  rĂ©viser : de la commande ls est Ă©crit dans le fichier fich.txt, mais cette Ă©criture se fait de deux maniĂšres diffĂ©rentes. Dans le premier cas, un seul nom de fichier ou de sous-rĂ©pertoire est Ă©crit par ligne. Dans le deuxiĂšme cas, (Source: "de la commande ls est Ă©crit dans le fichier fich.txt, mais cette Ă©criture se fait de deux maniĂšres diffĂ©rentes. Dans le premier cas, un seul nom de fichier ou de sous-rĂ©pertoire est Ă©crit par ligne. Dans le deuxiĂšme cas, tous les noms de fichiers et de sous- rĂ©pertoires sont Ă©crits sur une mĂȘme ligne, sĂ©parĂ©s par des espaces, car la capture transforme")
  16. DĂ©tail source Ă  rĂ©viser : d’adresses Ă©lectroniques enregistrĂ©es ligne par ligne, et soit un fichier lettre.txt contenant un message Ă  envoyer. Écrire la ligne de commande permettant d’envoyer ce message aux adresses de la liste. Attention : Il es (Source: "d’adresses Ă©lectroniques enregistrĂ©es ligne par ligne, et soit un fichier lettre.txt contenant un message Ă  envoyer. Écrire la ligne de commande permettant d’envoyer ce message aux adresses de la liste. Attention : Il est fortement dĂ©conseillĂ© de rediriger l’entrĂ©e standard ou la sortie standard d’un branchement, pour ne pas Ă©crire des lignes de commande")
  17. DĂ©tail source Ă  rĂ©viser : \bullet{} Une ligne vide. \bullet{} Une ligne commençant par debut. \bullet{} Une ligne contenant un caractĂšre * suivi d’un caractĂšre quelconque suivi d’un caractĂšre \ \bullet{} Une ligne commençant par une lettre majuscule. \bullet{} Une ligne contenant au mo (Source: "\bullet{} Une ligne vide. \bullet{} Une ligne commençant par debut. \bullet{} Une ligne contenant un caractĂšre * suivi d’un caractĂšre quelconque suivi d’un caractĂšre \ \bullet{} Une ligne commençant par une lettre majuscule. \bullet{} Une ligne contenant au moins dix lettres successives : la premiĂšre doit ĂȘtre une majuscule et les neuf suivantes doivent ĂȘtre des minuscules. KINUPI41 SystĂšmes AC –")
  18. DĂ©tail source Ă  rĂ©viser : la valeur du paramĂštre ?, Ă  la fin de l’exĂ©cution du script, est le code de retour de la derniĂšre commande du script ayant Ă©tĂ© exĂ©cutĂ©e. ‱ Le paramĂštre $$ a pour valeur le numĂ©ro du processus du shell. Exemple : soit le _(Source: "la valeur du paramĂštre ?, Ă  la fin de l’exĂ©cution du script, est le code de retour de la derniĂšre commande du script ayant Ă©tĂ© exĂ©cutĂ©e. \bullet{} Le paramĂštre $$ a pour valeur le numĂ©ro du processus du shell. Exemple : soit le script suivant contenu dans le fichier exemple : #! /bin/sh echo "$0=0, \1=1, \2=2, \3=3, \4=4, \5=5, \6=6, \7=$7,")_
  19. DĂ©tail source Ă  rĂ©viser : partie de l’identificateur. ✍ 16 3.7 Structures de contrĂŽle 3.7.1 Conditions Les structures de contrĂŽle font appel Ă  des conditions qui sont des appels Ă  une commande dont le code de retour est considĂ©rĂ©. Si le code de r (Source: "partie de l’identificateur. ✍ 16 3.7 Structures de contrĂŽle 3.7.1 Conditions Les structures de contrĂŽle font appel Ă  des conditions qui sont des appels Ă  une commande dont le code de retour est considĂ©rĂ©. Si le code de retour de la commande vaut 0, la condition est considĂ©rĂ©e comme vraie. Sinon, elle est considĂ©rĂ©e comme fausse (convention inverse de")
  20. DĂ©tail source Ă  rĂ©viser : exemple d’exĂ©cution de ce script : affiche.shfich.txtAffichageenpartantdudeˊbut:<premieˋrelignedefich.txt>...Affichageenpartantdelafin:<dernieˋrelignedefich.txt>...affiche.sh fich.txt Affichage en partant du dĂ©but : <premiĂšre ligne de fich.txt> ... Affichage en partant de la fin : <derniĂšre ligne de fich.txt> ... 3.8 Sous-shell et shell fils 3 (Source: "exemple d’exĂ©cution de ce script : affiche.shfich.txtAffichageenpartantdudeˊbut:<premieˋrelignedefich.txt>...Affichageenpartantdelafin:<dernieˋrelignedefich.txt>...affiche.sh fich.txt Affichage en partant du dĂ©but : <premiĂšre ligne de fich.txt> ... Affichage en partant de la fin : <derniĂšre ligne de fich.txt> ... 3.8 Sous-shell et shell fils 3.8.1 Sous-shell Une sĂ©quence de commandes placĂ©e entre parenthĂšses est exĂ©cutĂ©e dans un « sous-shell »du shell courant. De la mĂȘme maniĂšre,")
  21. DĂ©tail source Ă  rĂ©viser : ; \bullet{} vĂ©rification de la validitĂ© des paramĂštres ; \bullet{} traitement. KINUPI41 SystĂšmes AC – v2 3.10 – ÉlĂ©ments pour l’écriture des scripts 35/88 3.10.2 Fonctions Dans un script, il est possible de dĂ©finir et d’utiliser des fon (Source: "; \bullet{} vĂ©rification de la validitĂ© des paramĂštres ; \bullet{} traitement. KINUPI41 SystĂšmes AC – v2 3.10 – ÉlĂ©ments pour l’écriture des scripts 35/88 3.10.2 Fonctions Dans un script, il est possible de dĂ©finir et d’utiliser des fonctions. Une fonction ressemble Ă  un script (la syntaxe d’appel est la mĂȘme), Ă  l’exception : \bullet{} de sa dĂ©finition qui est faite au dĂ©but")
  22. DĂ©tail source Ă  rĂ©viser : scripts 37/88 Exemple : cat << FIN Ceci est un texte Ă©crit sur plusieurs lignes que je veux afficher Ă  l’écran. FIN 3.10.6.2 Ajout d’un texte Ă  la fin d’un fichier De la mĂȘme maniĂšre, on peut utiliser la commande cat (pa (Source: "scripts 37/88 Exemple : cat << FIN Ceci est un texte Ă©crit sur plusieurs lignes que je veux afficher Ă  l’écran. FIN 3.10.6.2 Ajout d’un texte Ă  la fin d’un fichier De la mĂȘme maniĂšre, on peut utiliser la commande cat (page 67) et une redirection. Exemple : cat >> fichier.txt << FIN Ceci est un texte Ă©crit sur plusieurs lignes que je veux ajouter Ă  la fin du")
  23. DĂ©tail source Ă  rĂ©viser : do ... \blacktriangleright{} avec la syntaxe 2, on obtient : ParamĂštre courant=ab script.sh: test: argument expected car 1vaut:abaupremiertourdeboucle,mais:cdefausecond,cequirevientaˋeˊcrireauniveaudelaconditionduwh(Source:"do...▶aveclasyntaxe2,onobtient:Parameˋtrecourant=abscript.sh:test:argumentexpectedcar1 vaut : ab au premier tour de boucle, mais : cd ef au second, ce qui revient Ă  Ă©crire au niveau de la condition du wh _(Source: "do ... ▶ avec la syntaxe 2, on obtient : ParamĂštre courant=ab script.sh: test: argument expected car 1 vaut : ab au premier tour de boucle, mais : cd ef au second, ce qui revient Ă  Ă©crire au niveau de la condition du while : [ cd ef ] qui est incorrect. Il faut donc remplacer : [ 1]par:["1 ] par : [ "1" ] qui donne bien : ParamĂštre courant=ab ParamĂštre")_
  24. DĂ©tail source Ă  rĂ©viser : dans la fenĂȘtre racine. Le nouveau prompt sera alors un caractĂšre .Parrapportauxautresshells,leshelldeBournepreˊsentedeuxinconveˊnients:ilneposseˋdenihistoriquedecommandes(aˋl’aidedesquatretouchesd(Source:"danslafene^treracine.Lenouveaupromptseraalorsuncaracteˋre. Par rapport aux autres shells, le shell de Bourne prĂ©sente deux inconvĂ©nients : il ne possĂšde ni historique de commandes (Ă  l’aide des quatre touches d _(Source: "dans la fenĂȘtre racine. Le nouveau prompt sera alors un caractĂšre . Par rapport aux autres shells, le shell de Bourne prĂ©sente deux inconvĂ©nients : il ne possĂšde ni historique de commandes (Ă  l’aide des quatre touches du clavier correspondant aux flĂšches de dĂ©placement), ni complĂ©tion automatique des noms de fichiers et d’exĂ©cutables (Ă  l’aide de la")_
  25. DĂ©tail source Ă  rĂ©viser : le propriĂ©taire. 8. Essayer Ă  nouveau d’effectuer la modification prĂ©cĂ©dente, Ă  l’aide de nedit ou gedit ou kate . Sauvegarder. Exercice 4 La commande head permet de rĂ©cupĂ©rer les premiĂšres lignes d’un fichier. La comman (Source: "le propriĂ©taire. 8. Essayer Ă  nouveau d’effectuer la modification prĂ©cĂ©dente, Ă  l’aide de nedit ou gedit ou kate . Sauvegarder. Exercice 4 La commande head permet de rĂ©cupĂ©rer les premiĂšres lignes d’un fichier. La commande tail permet de rĂ©cupĂ©rer les lignes situĂ©es Ă  la fin d’un fichier. AprĂšs avoir lancĂ© la commande man pour chacune de ces commandes,")
  26. DĂ©tail source Ă  rĂ©viser : VĂ©rifier que ce script fonctionne bien, en contrĂŽlant l’existence du rĂ©pertoire REP et d’un fichier dans ce rĂ©pertoire, dont le nom comporte l’extension .txt ou .sh Exercice 9 Écrire un script permettant de dĂ©nombrer les (Source: "VĂ©rifier que ce script fonctionne bien, en contrĂŽlant l’existence du rĂ©pertoire REP et d’un fichier dans ce rĂ©pertoire, dont le nom comporte l’extension .txt ou .sh Exercice 9 Écrire un script permettant de dĂ©nombrer les fichiers du rĂ©pertoire courant (les sous-rĂ©pertoires du rĂ©pertoire courant ne doivent donc pas ĂȘtre comptĂ©s) dans les quatre")
  27. DĂ©tail source Ă  rĂ©viser : 67), cut (page 72), cp (page 61), echo (page 81), eval (page 78), exit (page 77), expr (page 82), grep (page 70), head (page 69), pwd (page 64), read (page 80), return (page 35), rm (page 62), shift (page 80), tail (page (Source: "67), cut (page 72), cp (page 61), echo (page 81), eval (page 78), exit (page 77), expr (page 82), grep (page 70), head (page 69), pwd (page 64), read (page 80), return (page 35), rm (page 62), shift (page 80), tail (page 69), tee (page 68), test (page 83), tr (page 74), wc (page 72). Exercice 14 Écrire un script permettant d’afficher Ă  l’écran le contenu")
  28. DĂ©tail source Ă  rĂ©viser : dĂ©jĂ  exĂ©cutĂ©es seront Ă©crites (en tant que chaĂźnes de caractĂšres) dans le fichier temp, de la maniĂšre dĂ©crite dans l’étape suivante : 4. Écriture, Ă  la fin de temp, de la commande exĂ©cutĂ©e (ou des commandes exĂ©cutĂ©es, si (Source: "dĂ©jĂ  exĂ©cutĂ©es seront Ă©crites (en tant que chaĂźnes de caractĂšres) dans le fichier temp, de la maniĂšre dĂ©crite dans l’étape suivante : 4. Écriture, Ă  la fin de temp, de la commande exĂ©cutĂ©e (ou des commandes exĂ©cutĂ©es, si l’utilisateur a tapĂ© par exemple relancer 3), ainsi que des rĂ©sultats produits, sous la forme : $ <commande n> <rĂ©sultats")
  29. DĂ©tail source Ă  rĂ©viser : fonction sortie qui affiche le message d’erreur suivant sur stderr : Usage : rep.sh [-r|-f] [nom_rĂ©pertoire] et qui termine l’exĂ©cution du script en renvoyant le code qui lui a Ă©tĂ© passĂ© en paramĂštre. 2. Tester si le nom (Source: "fonction sortie qui affiche le message d’erreur suivant sur stderr : Usage : rep.sh [-r|-f] [nom_rĂ©pertoire] et qui termine l’exĂ©cution du script en renvoyant le code qui lui a Ă©tĂ© passĂ© en paramĂštre. 2. Tester si le nombre de paramĂštres est compris entre 0 et 2 et sinon, appeler la fonction sortie avec le code 1. 3. Si le nombre de paramĂštres est Ă©gal Ă  2,")
  30. DĂ©tail source Ă  rĂ©viser : ◩ Lors des appels rĂ©cursifs de arbre.sh, deux paramĂštres lui sont passĂ©s. Le second paramĂštre est une chaĂźne de caractĂšres (placĂ©e entre guillemets) qui doit ĂȘtre affichĂ©e devant le nom d’un sous-rĂ©pertoire. Cette chaĂźne (Source: "◩ Lors des appels rĂ©cursifs de arbre.sh, deux paramĂštres lui sont passĂ©s. Le second paramĂštre est une chaĂźne de caractĂšres (placĂ©e entre guillemets) qui doit ĂȘtre affichĂ©e devant le nom d’un sous-rĂ©pertoire. Cette chaĂźne de caractĂšres est composĂ©e d’espaces, de caractĂšres | et de caractĂšres + ‱ On a intĂ©rĂȘt Ă  gĂ©rer un compteur de sous-rĂ©pertoires.")
  31. DĂ©tail source Ă  rĂ©viser : du noyau du systĂšme dans laquelle le processus est endormi (bloquĂ©) ; STIME : heure de lancement du processus ; TTY : terminal de contrĂŽle du processus ; TIME : temps d’exĂ©cution cumulĂ© du processus ; CMD : commande qui (Source: "du noyau du systĂšme dans laquelle le processus est endormi (bloquĂ©) ; STIME : heure de lancement du processus ; TTY : terminal de contrĂŽle du processus ; TIME : temps d’exĂ©cution cumulĂ© du processus ; CMD : commande qui a donnĂ© naissance au processus. La commande top permet d’afficher des informations concernant les processus qui utilisent le plus le")
  32. DĂ©tail source Ă  rĂ©viser : au processus lancĂ© au premier plan. Par exemple, la combinaison de touches Ctrl-\ envoie le signal SIGQUIT. La commande kill -signal pid envoie le signal signal au processus d’identificateur pid. La commande kill -l affi (Source: "au processus lancĂ© au premier plan. Par exemple, la combinaison de touches Ctrl-\ envoie le signal SIGQUIT. La commande kill -signal pid envoie le signal signal au processus d’identificateur pid. La commande kill -l affiche la liste des signaux disponibles. RĂ©ception d’un signal Quand un processus reçoit un signal, il a trois comportements par dĂ©faut")
  33. DĂ©tail source Ă  rĂ©viser : sur stdout et le script continue Ă  s’exĂ©cuter. Pour arrĂȘter son exĂ©cution, on pourra lui envoyer le signal SIGQUIT (signal numĂ©ro 3) avec la combinaison de touches Ctrl-. 6. Depuis un autre terminal, vĂ©rifier les effets (Source: "sur stdout et le script continue Ă  s’exĂ©cuter. Pour arrĂȘter son exĂ©cution, on pourra lui envoyer le signal SIGQUIT (signal numĂ©ro 3) avec la combinaison de touches Ctrl-. 6. Depuis un autre terminal, vĂ©rifier les effets de l’envoi des signaux SIGINT, SIGQUIT et SIGKILL (signal numĂ©ro 9) sur le script prĂ©cĂ©dent. Exercice 24 La commande trap peut ĂȘtre")
  34. DĂ©tail source Ă  rĂ©viser : SystĂšmes 60/88 5 – Description des commandes ➄Codes de retour : ‱ Pas d’erreur : 0 ‱ OpĂ©ration interrompue pour cause d’erreur : > 0 5.4 Manipulation de l’arborescence des fichiers ☞ ls ➄CaractĂ©ristiques : 1. ls vient de (Source: "SystĂšmes 60/88 5 – Description des commandes ➄Codes de retour : ‱ Pas d’erreur : 0 ‱ OpĂ©ration interrompue pour cause d’erreur : > 0 5.4 Manipulation de l’arborescence des fichiers ☞ ls ➄CaractĂ©ristiques : 1. ls vient de list (« lister »). 2. Cette commande permet d’afficher le contenu d’un ou de plusieurs rĂ©pertoires, ou des rensei- gnements concernant")
  35. DĂ©tail source Ă  rĂ©viser : sous-rĂ©pertoire PREPA/TD, de nom commençant par td02ex et comportant l’extension .c, dans le sous-rĂ©pertoire TP, sans changer leurs noms. ‱ cp -r PREPA/TD/ WIKI Cette commande copie le sous-rĂ©pertoire PREPA/TD et l’ensem (Source: "sous-rĂ©pertoire PREPA/TD, de nom commençant par td02ex et comportant l’extension .c, dans le sous-rĂ©pertoire TP, sans changer leurs noms. ‱ cp -r PREPA/TD/ WIKI Cette commande copie le sous-rĂ©pertoire PREPA/TD et l’ensemble de son contenu dans le sous- rĂ©pertoire WIKI, sans changer les noms. ➄Codes de retour : ‱ Pas d’erreur : 0 ‱ OpĂ©ration interrompue")
  36. DĂ©tail source Ă  rĂ©viser : au rĂ©pertoire Ă  crĂ©er. ‱ -p : crĂ©e tous les rĂ©pertoires intermĂ©diaires, si nĂ©cessaire. ➄Exemples : ‱ mkdir -m go-rw REP1 Cette commande crĂ©e le sous-rĂ©pertoire REP1 dans le rĂ©pertoire courant, en enlevant les droits en l (Source: "au rĂ©pertoire Ă  crĂ©er. ‱ -p : crĂ©e tous les rĂ©pertoires intermĂ©diaires, si nĂ©cessaire. ➄Exemples : ‱ mkdir -m go-rw REP1 Cette commande crĂ©e le sous-rĂ©pertoire REP1 dans le rĂ©pertoire courant, en enlevant les droits en lecture et en Ă©criture (r pour read et w pour write) Ă  toute personne non propriĂ©taire du compte (g pour group et o pour others). ‱ mkdir")
  37. DĂ©tail source Ă  rĂ©viser : en dĂ©but de branchement. ➄Syntaxe : basename dĂ©signation [suffixe] ➄Description : pas d’option. ➄Exemples : ‱ basename/users/linfg/l2inf201/REP/fich.txtfich.txtbasename /users/linfg/l2inf201/REP/fich.txt fich.txt ‱ basename/users/linfg/l2inf201/REP/fich.txt.txt(Source:"endeˊbutdebranchement.⇝Syntaxe:basenamedeˊsignation[suffixe]⇝Description:pasd’option.⇝Exemples:∙basename /users/linfg/l2inf201/REP/fich.txt .txt _(Source: "en dĂ©but de branchement. \leadsto{}Syntaxe : basename dĂ©signation [suffixe] \leadsto{}Description : pas d’option. \leadsto{}Exemples : \bullet{} basename /users/linfg/l2inf201/REP/fich.txt fich.txt ∙\bullet{} basename /users/linfg/l2inf201/REP/fich.txt .txt fich $ \leadsto{}Codes de retour : \bullet{} Pas d’erreur : 0 \bullet{} OpĂ©ration interrompue pour cause d’erreur : > 0 5.5 AccĂšs au contenu des fichiers ☞ cat")_
  38. DĂ©tail source Ă  rĂ©viser : : 1. head signifie « tĂȘte ». 2. Cette commande affiche l’entrĂ©e standard, ou le ou les fichiers passĂ©s en paramĂštres, jusqu’à une position dĂ©signĂ©e. Sans option, elle affiche les 10 premiĂšres lignes. 3. C’est un filtre. (Source: ": 1. head signifie « tĂȘte ». 2. Cette commande affiche l’entrĂ©e standard, ou le ou les fichiers passĂ©s en paramĂštres, jusqu’à une position dĂ©signĂ©e. Sans option, elle affiche les 10 premiĂšres lignes. 3. C’est un filtre. \leadsto{}Syntaxe : head [-n position] [dĂ©signation_fichier ...] \leadsto{}Description : \bullet{} -n position : affiche les position premiĂšres lignes")
  39. DĂ©tail source Ă  rĂ©viser : KINUPI41 SystĂšmes AC – v2 5.5 – AccĂšs au contenu des fichiers 71/88 contenant la sĂ©quence de quatre lettres tabc. Il en serait de mĂȘme si l’expression rĂ©guliĂšre Ă©tait Ă©crite "\tabc" ou \tabc. Le seul moyen de rendre corr (Source: "KINUPI41 SystĂšmes AC – v2 5.5 – AccĂšs au contenu des fichiers 71/88 contenant la sĂ©quence de quatre lettres tabc. Il en serait de mĂȘme si l’expression rĂ©guliĂšre Ă©tait Ă©crite "\tabc" ou \tabc. Le seul moyen de rendre correcte cette recherche est de taper rĂ©ellement sur la touche de tabulation du clavier, pour signifier que le premier caractĂšre de")
  40. DĂ©tail source Ă  rĂ©viser : et nb_c le nombre de caractĂšres de dĂ©signation_fichier. Quant au symbole <espaces>, il dĂ©signe une chaĂźne non vide, de longueur variable, composĂ©e du seul caractĂšre espace. Par consĂ©quent, si on dĂ©sire afficher le nombre (Source: "et nb_c le nombre de caractĂšres de dĂ©signation_fichier. Quant au symbole <espaces>, il dĂ©signe une chaĂźne non vide, de longueur variable, composĂ©e du seul caractĂšre espace. Par consĂ©quent, si on dĂ©sire afficher le nombre de mots du fichier fichier.txt, on peut taper l’une des trois commandes suivantes : wc fichier.txt | tr -s ’ ’ | cut -f3 -d’ ’ wc -w")
  41. DĂ©tail source Ă  rĂ©viser : de remplacer ou de supprimer des caractĂšres provenant de l’entrĂ©e standard. Elle fonctionne Ă©galement avec les caractĂšres de contrĂŽle prĂ©sentĂ©s dans la description de la commande echo, page 81. 3. Cette commande est un f (Source: "de remplacer ou de supprimer des caractĂšres provenant de l’entrĂ©e standard. Elle fonctionne Ă©galement avec les caractĂšres de contrĂŽle prĂ©sentĂ©s dans la description de la commande echo, page 81. 3. Cette commande est un filtre. \leadsto{}Syntaxes : \bullet{} tr -s|-d [-c] chaĂźne \bullet{} tr [-cs] chaĂźne1 chaĂźne2 \bullet{} tr -ds [-c] chaĂźne1 chaĂźne2 \leadsto{}Description : \bullet{} -s : Ă©limine les")
  42. DĂ©tail source Ă  rĂ©viser : d’erreur : > 0 5.6 Gestion des processus ☞ ps \leadsto{}CaractĂ©ristiques : 1. ps vient de process status (« situation des processus »). 2. Cette commande permet d’afficher la liste des processus en cours d’activitĂ©. LancĂ©e sans o (Source: "d’erreur : > 0 5.6 Gestion des processus ☞ ps \leadsto{}CaractĂ©ristiques : 1. ps vient de process status (« situation des processus »). 2. Cette commande permet d’afficher la liste des processus en cours d’activitĂ©. LancĂ©e sans option, elle n’affiche que les processus actifs de l’utilisateur associĂ©s Ă  la fenĂȘtre d’oĂč la commande est lancĂ©e. 3. Elle peut apparaĂźtre")
  43. DĂ©tail source Ă  rĂ©viser : ☞ mail \leadsto{}CaractĂ©ristiques : 1. mail signifie « courrier ». 2. Cette commande permet d’envoyer un message par l’intermĂ©diaire de l’entrĂ©e standard, ou de lire des messages de maniĂšre interactive. 3. Elle peut apparaĂźtre en (Source: "☞ mail \leadsto{}CaractĂ©ristiques : 1. mail signifie « courrier ». 2. Cette commande permet d’envoyer un message par l’intermĂ©diaire de l’entrĂ©e standard, ou de lire des messages de maniĂšre interactive. 3. Elle peut apparaĂźtre en fin de branchement. \leadsto{}Syntaxe : \bullet{} Envoi d’un message : mail [-tw] [-m type_du_message] adresse_destinataire [...] \bullet{} Lecture du courrier")
  44. DĂ©tail source Ă  rĂ©viser : [valeur] [...] \leadsto{}Description : cf. la description de la commande set, en tapant man set \leadsto{}Exemples : \bullet{} set alpha beta Cette commande affecte la valeur alpha au paramĂštre positionnel 1etlavaleurbetaaupara−meˋtreposi(Source:"[valeur][...]➄Description:cf.ladescriptiondelacommandeset,entapantmanset➄Exemples:‱setalphabetaCettecommandeaffectelavaleuralphaauparameˋtrepositionnel1 et la valeur beta au para- mĂštre posi _(Source: "[valeur] [...] ➄Description : cf. la description de la commande set, en tapant man set ➄Exemples : ‱ set alpha beta Cette commande affecte la valeur alpha au paramĂštre positionnel 1 et la valeur beta au para- mĂštre positionnel $2 ‱ x=1 set produira un affichage du type suivant : DISPLAY=141.115.12.137:0 ... HOME=/users/linfg/linfg0 ... x=1 Dans cet")_
  45. DĂ©tail source Ă  rĂ©viser : : echo [chaĂźne ...] ➄Description : pas d’option. ➄Exemple : la commande echo * affiche la liste des noms de fichiers et de sous-rĂ©pertoires du rĂ©per- toire courant (fichiers cachĂ©s non compris), sĂ©parĂ©s par des espaces. (Source: ": echo [chaĂźne ...] ➄Description : pas d’option. ➄Exemple : la commande echo * affiche la liste des noms de fichiers et de sous-rĂ©pertoires du rĂ©per- toire courant (fichiers cachĂ©s non compris), sĂ©parĂ©s par des espaces. ➄Codes de retour : ‱ Pas d’erreur : 0 ‱ OpĂ©ration interrompue pour cause d’erreur : > 0 AC – v2 KINUPI41 SystĂšmes 82/88 5 –")
  46. DĂ©tail source Ă  rĂ©viser : suivant : tarat On aurait pu Ă©crire l’expression rĂ©guliĂšre sous d’autres formes, comme par exemple : ’.∗.*at.’ ’.∗.*ata’ ➄Codes de retour : ‱ RĂ©sultat de l’opĂ©ration diffĂ©rent de 0 et de la chaĂźne vide : 0 ‱ Autre r _(Source: "suivant : tarat On aurait pu Ă©crire l’expression rĂ©guliĂšre sous d’autres formes, comme par exemple : ’.∗.*at.’ ’.∗.*ata’ ➄Codes de retour : ‱ RĂ©sultat de l’opĂ©ration diffĂ©rent de 0 et de la chaĂźne vide : 0 ‱ Autre rĂ©sultat : 1 ‱ Syntaxe incorrecte : 2 ‱ OpĂ©ration interrompue pour cause d’erreur : > 2 ➄Remarques : ‱ L’utilisation des cinq opĂ©rateurs *,")_
  47. DĂ©tail source Ă  rĂ©viser : incorrecte. Pour obtenir une Ă©criture correcte, il est alors nĂ©cessaire d’entourer l’expression contenant le nom de la variable de guillemets : test "chaine"=""Maisilestpluspratiqued’utiliserladeuxieˋmesyntaxe(Source:"incorrecte.Pourobteniruneeˊcriturecorrecte,ilestalorsneˊcessaired’entourerl’expressioncontenantlenomdelavariabledeguillemets:test"chaine" = "" Mais il est plus pratique d’utiliser la deuxiĂšme syntaxe _(Source: "incorrecte. Pour obtenir une Ă©criture correcte, il est alors nĂ©cessaire d’entourer l’expression contenant le nom de la variable de guillemets : test "chaine" = "" Mais il est plus pratique d’utiliser la deuxiĂšme syntaxe de la commande test : ‱ test $variable Dans cette Ă©criture, la commande test teste si la variable variable n’a pas pour valeur la")_
  48. Détail source à réviser : Licence 2 CUPGE-UPSSITECH KINUPI41 - SYSTÈMES Support de cours/TD intégrés et de TP Alain CROUZIL, Jean-Denis DUROU {crouzil,durou}@irit (Source: "Licence 2 CUPGE-UPSSITECH KINUPI41 - SYSTÈMES Support de cours/TD intégrés et de TP Alain CROUZIL, Jean-Denis DUROU {crouzil,durou}@irit")
  49. Détail source à réviser : 33 3.8 Sous-shell et shell fils (Source: "33 3.8 Sous-shell et shell fils")
  50. Détail source à réviser : 2000 serveur / 2003 serveur) (Source: "2000 serveur / 2003 serveur)")
  51. Détail source à réviser : 80) Circuits VLSI (Very Large Scale Integration) : une puce peut contenir un trÚs grand nombre de transistors pour un coût faible (Source: "80) Circuits VLSI (Very Large Scale Integration) : une puce peut contenir un trÚs grand nombre de transistors pour un coût faible")
  52. DĂ©tail source Ă  rĂ©viser : 59) permet d’obtenir la description d’une commande en tapant : man nom_commande Les rĂšgles qui dĂ©finissent la syntaxe d’une commande sont les suivantes : \bullet{} Les termes entre crochets sont facultatifs (Source: "59) permet d’obtenir la description d’une commande en tapant : man nom_commande Les rĂšgles qui dĂ©finissent la syntaxe d’une commande sont les suivantes : \bullet{} Les termes entre crochets sont facultatifs")
  53. DĂ©tail source Ă  rĂ©viser : À chaque fichier sont associĂ©es trois classes d’utilisateurs : \bullet{} le propriĂ©taire (user : u) ; \bullet{} les membres du groupe du propriĂ©taire (group : g) ; \bullet{} les autres utilisateurs (others : o). Chaque classe peut avoir, sur un (Source: "À chaque fichier sont associĂ©es trois classes d’utilisateurs : \bullet{} le propriĂ©taire (user : u) ; \bullet{} les membres du groupe du propriĂ©taire (group : g) ; \bullet{} les autres utilisateurs (others : o). Chaque classe peut avoir, sur un fichier, les droits de : \bullet{} lecture (r) ; \bullet{} Ă©criture (w) ; \bullet{} exĂ©cution (x). \blacktriangleright{} Pour les rĂ©pertoires : ◩ r signifie le droit d’afficher le...")
  54. DĂ©tail source Ă  rĂ©viser : e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « lecture » (Source: "e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « lecture »")
  55. Détail source à réviser : 1. Que réalisent les deux commandes suivantes : echo "bonjour" > cat echo "bonjour" | cat 2 (Source: "1. Que réalisent les deux commandes suivantes : echo "bonjour" > cat echo "bonjour" | cat 2")
  56. DĂ©tail source Ă  rĂ©viser : 65) : chmodu+xnomscriptpuisl’appelerdirectement:chmod u+x nom_script puis l’appeler directement : nom_script [paramĂštre_script (Source: "65) : chmodu+xnomscriptpuisl’appelerdirectement:chmod u+x nom_script puis l’appeler directement : nom_script [paramĂštre_script")
  57. DĂ©tail source Ă  rĂ©viser : C) existe, mais elle n’est pas nĂ©cessaire dans la structure de contrĂŽle d’aiguillage Ă  choix multiple, car le double point-virgule ;; est Ă©quivalent Ă  cette commande (Source: "C) existe, mais elle n’est pas nĂ©cessaire dans la structure de contrĂŽle d’aiguillage Ă  choix multiple, car le double point-virgule ;; est Ă©quivalent Ă  cette commande")
  58. DĂ©tail source Ă  rĂ©viser : 3 Pour un entier Une solution consiste Ă  effectuer une opĂ©ration arithmĂ©tique avec la commande expr (page 82) et Ă  vĂ©rifier que son code de retour est strictement infĂ©rieur Ă  2. Exemple : expr 1+0>/dev/null2>/dev/(Source:"3PourunentierUnesolutionconsisteaˋeffectueruneopeˊrationarithmeˊtiqueaveclacommandeexpr(page82)etaˋveˊrifierquesoncodederetoureststrictementinfeˊrieuraˋ2.Exemple:expr1 + 0 > /dev/null 2> /dev/ _(Source: "3 Pour un entier Une solution consiste Ă  effectuer une opĂ©ration arithmĂ©tique avec la commande expr (page 82) et Ă  vĂ©rifier que son code de retour est strictement infĂ©rieur Ă  2. Exemple : expr 1 + 0 > /dev/null 2> /dev/null if [ ?−ge2]thenecho"Erreur:? -ge 2 ] then echo "Erreur : 1 n’est pas un entier" >&2 echo "Usage : $0 entier" >&2 exit 2 fi ✎ Exercice 18 Commencer par l...")_
  59. Détail source à réviser : 2. Créer le répertoire REP, et son sous-répertoire SOUSREP, en une seule ligne de commande (Source: "2. Créer le répertoire REP, et son sous-répertoire SOUSREP, en une seule ligne de commande")
  60. DĂ©tail source Ă  rĂ©viser : 16 Decembre 1996 15:31:37 Pour l’écriture de ce script, il est conseillĂ© d’utiliser un « aiguillage Ă  choix multiple »(cf (Source: "16 Decembre 1996 15:31:37 Pour l’écriture de ce script, il est conseillĂ© d’utiliser un « aiguillage Ă  choix multiple »(cf")
  61. DĂ©tail source Ă  rĂ©viser : 3. Dans le cas oĂč l’utilisateur tape par exemple relancer 3, nouvelle exĂ©cution des 3 derniĂšres commandes exĂ©cutĂ©es et affichage Ă  l’écran de ces commandes et des rĂ©sultats produits corres- pondants (Source: "3. Dans le cas oĂč l’utilisateur tape par exemple relancer 3, nouvelle exĂ©cution des 3 derniĂšres commandes exĂ©cutĂ©es et affichage Ă  l’écran de ces commandes et des rĂ©sultats produits corres- pondants")
  62. DĂ©tail source Ă  rĂ©viser : Si la valeur de rep n’est pas un nom de rĂ©pertoire accessible, alors appeler la fonction sortie avec le code 3. KINUPI41 SystĂšmes AC – v2 SĂ©ance 5 51/88 6. Afficher l’information correspondant Ă  la valeur de option. Si l (Source: "Si la valeur de rep n’est pas un nom de rĂ©pertoire accessible, alors appeler la fonction sortie avec le code 3. KINUPI41 SystĂšmes AC – v2 SĂ©ance 5 51/88 6. Afficher l’information correspondant Ă  la valeur de option. Si la valeur de option n’est ni aucune, ni -r, ni -f, alors : appeler la fonction sortie avec le code 4 si cette valeur est la chaĂźne - et av...")
  63. DĂ©tail source Ă  rĂ©viser : 5. VĂ©rifier l’état de vos processus en affichant les informations trĂšs dĂ©taillĂ©es concernant les proces- sus du terminal (Source: "5. VĂ©rifier l’état de vos processus en affichant les informations trĂšs dĂ©taillĂ©es concernant les proces- sus du terminal")
  64. DĂ©tail source Ă  rĂ©viser : 2. Cette commande permet d’afficher le contenu d’un ou de plusieurs rĂ©pertoires, ou des rensei- gnements concernant un ou plusieurs fichiers (Source: "2. Cette commande permet d’afficher le contenu d’un ou de plusieurs rĂ©pertoires, ou des rensei- gnements concernant un ou plusieurs fichiers")
  65. DĂ©tail source Ă  rĂ©viser : 2. Cette commande permet de dĂ©placer un ou plusieurs fichiers ou rĂ©pertoires dans l’arborescence (Source: "2. Cette commande permet de dĂ©placer un ou plusieurs fichiers ou rĂ©pertoires dans l’arborescence")
  66. Détail source à réviser : 2. Cette commande permet de rechercher les fichiers et les répertoires qui se trouvent dans les sous-arborescences dont les racines sont les répertoires dont les désignations sont passées en paramÚtres (Source: "2. Cette commande permet de rechercher les fichiers et les répertoires qui se trouvent dans les sous-arborescences dont les racines sont les répertoires dont les désignations sont passées en paramÚtres")
  67. DĂ©tail source Ă  rĂ©viser : 2. Cette commande permet de supprimer une partie des lignes d’un ou de plusieurs fichiers, ou de l’entrĂ©e standard (Source: "2. Cette commande permet de supprimer une partie des lignes d’un ou de plusieurs fichiers, ou de l’entrĂ©e standard")
  68. DĂ©tail source Ă  rĂ©viser : Pour cela, il est possible d’utiliser la commande sed, page 74. ☞ sed ➄CaractĂ©ristiques : 1. tr vient de stream editor (« Ă©diteur de flux »). KINUPI41 SystĂšmes AC – v2 5.6 – Gestion des processus 75/88 2. Cette commande (Source: "Pour cela, il est possible d’utiliser la commande sed, page 74. ☞ sed ➄CaractĂ©ristiques : 1. tr vient de stream editor (« Ă©diteur de flux »). KINUPI41 SystĂšmes AC – v2 5.6 – Gestion des processus 75/88 2. Cette commande permet d’effectuer des manipulations complexes sur des fichiers de texte qui peuvent ĂȘtre de grande taille. Les noms des fichiers peuvent...")
  69. DĂ©tail source Ă  rĂ©viser : 2. Cette commande procĂšde en deux temps : ‱ Dans un premier temps, la commande est remplacĂ©e par la liste de ses paramĂštres, avec interprĂ©tation des mĂ©tacaractĂšres du shell (Source: "2. Cette commande procĂšde en deux temps : ‱ Dans un premier temps, la commande est remplacĂ©e par la liste de ses paramĂštres, avec interprĂ©tation des mĂ©tacaractĂšres du shell")
  70. DĂ©tail source Ă  rĂ©viser : 1. ‱ De mĂȘme que pour la commande set, les valeurs de #, * et @sontmisesaˋjourautomatique−mentparlacommandeshift(leparameˋtre@ sont mises Ă  jour automatique- ment par la commande shift (le paramĂštre # est dĂ©crĂ©mentĂ©) (Source: "1. ‱ De mĂȘme que pour la commande set, les valeurs de #, * et @sontmisesaˋjourautomatique−mentparlacommandeshift(leparameˋtre@ sont mises Ă  jour automatique- ment par la commande shift (le paramĂštre # est dĂ©crĂ©mentĂ©)")
  71. DĂ©tail source Ă  rĂ©viser : 2. Cette commande permet d’effectuer des tests de comparaison, en renvoyant le code de retour 0 lorsque le rĂ©sultat est vrai, et une autre valeur sinon (Source: "2. Cette commande permet d’effectuer des tests de comparaison, en renvoyant le code de retour 0 lorsque le rĂ©sultat est vrai, et une autre valeur sinon")
  72. DĂ©tail source Ă  rĂ©viser : 2. Cette commande permet d’effectuer des opĂ©rations arithmĂ©tiques et logiques, ainsi que des opĂ©- rations sur les chaĂźnes de caractĂšres plus sophistiquĂ©es que la simple concatĂ©nation, et affiche le rĂ©sultat de ces opĂ©rat (Source: "2. Cette commande permet d’effectuer des opĂ©rations arithmĂ©tiques et logiques, ainsi que des opĂ©- rations sur les chaĂźnes de caractĂšres plus sophistiquĂ©es que la simple concatĂ©nation, et affiche le rĂ©sultat de ces opĂ©rations sur la sortie standard")
  73. DĂ©tail source Ă  rĂ©viser : ] les appels suivants sont-ils corrects : 1. cut -d : -f 1,7 fichier 2. cut -c 1-16,26-38 3. cut -s fich1 fich2 4. cut -f 2 -c 1,3,5 fichier KINUPI41 SystĂšmes AC – v2 2.6 – SystĂšme de gestion de fichier (SGF) d’Unix 17/8 (Source: "] les appels suivants sont-ils corrects : 1. cut -d : -f 1,7 fichier 2. cut -c 1-16,26-38 3. cut -s fich1 fich2 4. cut -f 2 -c 1,3,5 fichier KINUPI41 SystĂšmes AC – v2 2.6 – SystĂšme de gestion de fichier (SGF) d’Unix 17/88 2.6 SystĂšme de gestion de fichier (SGF) d’Unix 2.6.1 DiffĂ©rents types de fichiers Sous Unix, un fichier est une source de donnĂ©es qui p...")
  74. DĂ©tail source Ă  rĂ©viser : 1. La dĂ©signation relative et la dĂ©signation absolue d’un fichier sont-elles uniques (Source: "1. La dĂ©signation relative et la dĂ©signation absolue d’un fichier sont-elles uniques")
  75. DĂ©tail source Ă  rĂ©viser : e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « Ă©criture » (Source: "e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « Ă©criture »")
  76. DĂ©tail source Ă  rĂ©viser : e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « Ă©criture en fin de fichier » (Source: "e. Remarque : une telle redirection occasionne l’ouverture du fichier dĂ©signation_fichier en mode « Ă©criture en fin de fichier »")
  77. DĂ©tail source Ă  rĂ©viser : ✎ Exercice 14 Si le rĂ©pertoire courant est la racine /, que produisent les sĂ©quences suivantes : 1. a=1 b=a‘pwd‘echoa‘pwd‘ echo b 2. a=1 b=a‘pwd‘echoa ‘pwd‘ echo b 3. a=1 b="a‘pwd‘"echoa ‘pwd‘" echo b 4. a=1 b=’a‘pwd‘’echoa ‘pwd‘’ echo b Remarques : ‱ Il (Source: "✎ Exercice 14 Si le rĂ©pertoire courant est la racine /, que produisent les sĂ©quences suivantes : 1. a=1 b=a‘pwd‘echoa‘pwd‘ echo b 2. a=1 b=a‘pwd‘echoa ‘pwd‘ echo b 3. a=1 b="a‘pwd‘"echoa ‘pwd‘" echo b 4. a=1 b=’a‘pwd‘’echoa ‘pwd‘’ echo b Remarques : ‱ Il existe, dans tout shell, un certain nombre de variables prĂ©dĂ©finies, comme la variable PATH de sh dont la valeur est une liste de rĂ©pert...")
  78. DĂ©tail source Ă  rĂ©viser : 4. a=1 b=’a‘pwd‘’echoa ‘pwd‘’ echo b Remarques : ‱ Il existe, dans tout shell, un certain nombre de variables prĂ©dĂ©finies, comme la variable PATH de sh dont la valeur est une liste de rĂ©pertoires (Source: "4. a=1 b=’a‘pwd‘’echoa ‘pwd‘’ echo b Remarques : ‱ Il existe, dans tout shell, un certain nombre de variables prĂ©dĂ©finies, comme la variable PATH de sh dont la valeur est une liste de rĂ©pertoires")
  79. DĂ©tail source Ă  rĂ©viser : 80) while [ 1 ] do # Traitement de 1 echo "ParamĂštre courant=1"shiftdoneSil’onsupposequelescripts’appellescript(Source:"80)while[1" shift done Si l’on suppose que le script s’appelle script _(Source: "80) while [ 1 ] do # Traitement de 1echo"Parameˋtrecourant=1 echo "ParamĂštre courant=1" shift done Si l’on suppose que le script s’appelle script")_
  80. DĂ©tail source Ă  rĂ©viser : 2. Afficher la liste des Ă©tudiants ayant un numĂ©ro infĂ©rieur Ă  100 (on aura intĂ©rĂȘt Ă  utiliser la commande grep avec l’option -v) (Source: "2. Afficher la liste des Ă©tudiants ayant un numĂ©ro infĂ©rieur Ă  100 (on aura intĂ©rĂȘt Ă  utiliser la commande grep avec l’option -v)")
  81. DĂ©tail source Ă  rĂ©viser : 1. Écrire la fonction sortie qui affiche le message d’erreur suivant sur stderr : Usage : rep (Source: "1. Écrire la fonction sortie qui affiche le message d’erreur suivant sur stderr : Usage : rep")
  82. DĂ©tail source Ă  rĂ©viser : 3. VĂ©rifier l’effet de l’envoi du signal SIGINT (signal numĂ©ro 2) sur l’exĂ©cution de ce script en utilisant les touches Ctrl-c (Source: "3. VĂ©rifier l’effet de l’envoi du signal SIGINT (signal numĂ©ro 2) sur l’exĂ©cution de ce script en utilisant les touches Ctrl-c")
  83. Détail source à réviser : 2048 Dec 4 01:42 TD drwxr-xr-x 2 durou tci 1024 Dec 3 18:12 TP -rw-r--r-- 1 durou tci 12105 Dec 4 00:45 welcome (Source: "2048 Dec 4 01:42 TD drwxr-xr-x 2 durou tci 1024 Dec 3 18:12 TP -rw-r--r-- 1 durou tci 12105 Dec 4 00:45 welcome")
  84. DĂ©tail source Ă  rĂ©viser : u) ; ‱ les membres du groupe du propriĂ©taire (group : g) ; ‱ les autres utilisateurs (others : o) (Source: "u) ; ‱ les membres du groupe du propriĂ©taire (group : g) ; ‱ les autres utilisateurs (others : o)")
  85. DĂ©tail source Ă  rĂ©viser : En une seule ligne de commande, crĂ©er le sous-rĂ©pertoire REP1 et le sous-sous-rĂ©pertoire REP1/SREP1 2. En une seule ligne de commande, crĂ©er deux sous-rĂ©pertoires REP2 et REP3 dans le rĂ©pertoire courant, puis afficher le (Source: "En une seule ligne de commande, crĂ©er le sous-rĂ©pertoire REP1 et le sous-sous-rĂ©pertoire REP1/SREP1 2. En une seule ligne de commande, crĂ©er deux sous-rĂ©pertoires REP2 et REP3 dans le rĂ©pertoire courant, puis afficher le message termine 3. MĂȘme question, mais en Ă©crivant ce message dans le fichier liste.txt ✎ Exercice 10 Commencer par lire la description...")
  86. DĂ©tail source Ă  rĂ©viser : 79. ‱ Dans le cas oĂč on lance un script, les valeurs des paramĂštres du script sont affectĂ©es aux para- mĂštres positionnels du nouveau shell qui est lancĂ© (Source: "79. ‱ Dans le cas oĂč on lance un script, les valeurs des paramĂštres du script sont affectĂ©es aux para- mĂštres positionnels du nouveau shell qui est lancĂ©")
  87. Détail source à réviser : 83) avec les opérateurs de comparaison -eq, -ne, -gt, -lt, -ge, -le et le paramÚtre # _(Source: "83) avec les opérateurs de comparaison -eq, -ne, -gt, -lt, -ge, -le et le paramÚtre #")_
  88. DĂ©tail source Ă  rĂ©viser : 2. DĂ©terminer a priori quel doit ĂȘtre le rĂ©sultat de chacune des quatre commandes ci-dessous, puis contrĂŽler : ‱ cat liste (Source: "2. DĂ©terminer a priori quel doit ĂȘtre le rĂ©sultat de chacune des quatre commandes ci-dessous, puis contrĂŽler : ‱ cat liste")
  89. Détail source à réviser : 1. Afficher les informations détaillées, puis trÚs détaillées, concernant tous les processus vous ap- partenant (Source: "1. Afficher les informations détaillées, puis trÚs détaillées, concernant tous les processus vous ap- partenant")
  90. DĂ©tail source Ă  rĂ©viser : 1. Construire des listes de noms de fichiers, sĂ©parĂ©s par des espaces, correspondant Ă  un ✍ 7 certain modĂšle (si aucun nom de fichier ne correspond au modĂšle, le modĂšle n’est pas remplacĂ©) : ‱ * dĂ©signe une chaĂźne de car (Source: "1. Construire des listes de noms de fichiers, sĂ©parĂ©s par des espaces, correspondant Ă  un ✍ 7 certain modĂšle (si aucun nom de fichier ne correspond au modĂšle, le modĂšle n’est pas remplacĂ©) : ‱ * dĂ©signe une chaĂźne de caractĂšres quelconque (Ă©ventuellement vide) ne contenant pas de caractĂšre /, et ne commençant pas par un caractĂšre")
  91. DĂ©tail source Ă  rĂ©viser : 2. Modifier l’interprĂ©tation des commandes : ‱ ; sĂ©pare deux commandes (ou plus) situĂ©es sur une mĂȘme ligne ; ‱ ’ dĂ©limite une chaĂźne de caractĂšres contenant des espaces (Ă  l’intĂ©rieur, tous les mĂ©tacaractĂšres perdent le (Source: "2. Modifier l’interprĂ©tation des commandes : ‱ ; sĂ©pare deux commandes (ou plus) situĂ©es sur une mĂȘme ligne ; ‱ ’ dĂ©limite une chaĂźne de caractĂšres contenant des espaces (Ă  l’intĂ©rieur, tous les mĂ©tacaractĂšres perdent leur signification) ; ‱ " dĂ©limite une chaĂźne de caractĂšres contenant des espaces (Ă  l’intĂ©rieur, tous les mĂ©tacaractĂšres perdent leur sign...")
  92. DĂ©tail source Ă  rĂ©viser : e. AC – v2 KINUPI41 SystĂšmes 26/88 3 – ÉlĂ©ments de shell de Bourne Remarques : ‱ La commande qui vient d’ĂȘtre donnĂ©e en exemple n’est absolument pas Ă©quivalente Ă  la commande ls | grep ’e’, puisque cette derniĂšre command (Source: "e. AC – v2 KINUPI41 SystĂšmes 26/88 3 – ÉlĂ©ments de shell de Bourne Remarques : ‱ La commande qui vient d’ĂȘtre donnĂ©e en exemple n’est absolument pas Ă©quivalente Ă  la commande ls | grep ’e’, puisque cette derniĂšre commande affiche, parmi les noms de fichiers retournĂ©s par la commande ls, ceux qui contiennent au moins un caractĂšre e (dans leur nom)")
  93. DĂ©tail source Ă  rĂ©viser : 2. Afficher intĂ©gralement les trois chaĂźnes de caractĂšres suivantes, Ă  l’aide de trois appels Ă  la commande echo : AC – v2 – 43/88 – KINUPI41 SystĂšmes 44/88 4 – Sujets des travaux pratiques Le renard dit "Oh, Monsieur du (Source: "2. Afficher intĂ©gralement les trois chaĂźnes de caractĂšres suivantes, Ă  l’aide de trois appels Ă  la commande echo : AC – v2 – 43/88 – KINUPI41 SystĂšmes 44/88 4 – Sujets des travaux pratiques Le renard dit "Oh, Monsieur du Corbeau" J’ai gagne $100 a l’Alcazar Commentaire : * Initialisation *\ Remarques : \bullet{} Le mĂ©tacaractĂšre \ annihile l’évaluation du caract...")
  94. DĂ©tail source Ă  rĂ©viser : 1. Affichage du menu suivant, en boucle : KINUPI41 SystĂšmes AC – v2 SĂ©ance 4 49/88 Vous pouvez taper une commande Unix, ou bien : fin si vous souhaitez quitter l’application relancer n si vous souhaitez relancer les n de (Source: "1. Affichage du menu suivant, en boucle : KINUPI41 SystĂšmes AC – v2 SĂ©ance 4 49/88 Vous pouvez taper une commande Unix, ou bien : fin si vous souhaitez quitter l’application relancer n si vous souhaitez relancer les n derniĂšres commandes Votre choix : 2")
  95. DĂ©tail source Ă  rĂ©viser : 4. Écriture, Ă  la fin de temp, de la commande exĂ©cutĂ©e (ou des commandes exĂ©cutĂ©es, si l’utilisateur a tapĂ© par exemple relancer 3), ainsi que des rĂ©sultats produits, sous la forme : <commanden><reˊsultatsproduitspa(Source:"4.Eˊcriture,aˋlafindetemp,delacommandeexeˊcuteˊe(oudescommandesexeˊcuteˊes,sil’utilisateuratapeˊparexemplerelancer3),ainsiquedesreˊsultatsproduits,souslaforme:<commande n> <rĂ©sultats produits pa _(Source: "4. Écriture, Ă  la fin de temp, de la commande exĂ©cutĂ©e (ou des commandes exĂ©cutĂ©es, si l’utilisateur a tapĂ© par exemple relancer 3), ainsi que des rĂ©sultats produits, sous la forme : <commande n> <rĂ©sultats produits par la commande n> $ <commande n+1> <rĂ©sultats produits par la commande n+1>")_
  96. DĂ©tail source Ă  rĂ©viser : 3. Dans le cas oĂč l’utilisateur tape par exemple relancer 3, on Ă©crira dans temp les 3 derniĂšres commandes qui y ont Ă©tĂ© dĂ©jĂ  Ă©crites, ainsi que les rĂ©sultats produits, mais on n’écrira pas dans ce fichier la commande re (Source: "3. Dans le cas oĂč l’utilisateur tape par exemple relancer 3, on Ă©crira dans temp les 3 derniĂšres commandes qui y ont Ă©tĂ© dĂ©jĂ  Ă©crites, ainsi que les rĂ©sultats produits, mais on n’écrira pas dans ce fichier la commande relancer 3 (c’est-Ă -dire que temp ne doit contenir que des commandes Unix)")

RepĂšres chronologiques

DateÉvĂ©nement
1224PremiÚre date mentionnée
1996Date mentionnée dans le contexte
1997Date mentionnée dans le contexte
2000Date mentionnée dans le contexte
2003Date mentionnée dans le contexte
2048Date mentionnée dans le contexte

Tableaux de SynthĂšse

Comparatif des commandes Unix fondamentales

CommandeFonction principaleOptions clés
lsListe fichiers et répertoires-a pour fichiers cachés
rmSupprimer fichiers/répertoires-r pour récursif
pwdAfficher chemin absoluAucune option
catAfficher contenu fichiersRedirection possible

Gestion des droits d’accùs avec chmod

Mode d’attributionDescriptionExemples
u+xRendre exécutable pour utilisateurchmod u+x fichier.sh
g-wRetirer écriture au groupechmod g-w fichier
o+rAjouter lecture aux autreschmod o+r fichier
a=rwxDroits complets pour touschmod a=rwx fichier

PiÚges & Confusions Fréquentes

  1. Confusion entre chemins relatifs et absolus.
  2. Oublier de vérifier les options des commandes avant exécution.
  3. Suppression accidentelle de fichiers importants avec rm -r.
  4. Ne pas tester le code de retour aprĂšs une commande.
  5. Mauvaise utilisation des expressions réguliÚres avec grep.
  6. Ignorer la nécessité de sauvegarder avant modification de fichiers.
  7. Ne pas vĂ©rifier les droits d’accĂšs avant modification.

Checklist Examen

  1. Vérifier la longueur maximale des désignations en répertoire.
  2. Utiliser pwd pour connaßtre le répertoire courant.
  3. Changer de répertoire avec cd en utilisant des chemins relatifs ou absolus.
  4. Modifier les droits d’accùs avec chmod selon les besoins.
  5. Filtrer les fichiers avec grep en utilisant des expressions réguliÚres.
  6. Trier les fichiers avec sort pour organiser les données.
  7. Écrire des scripts interactifs avec gestion des signaux.
  8. Utiliser les commandes Unix pour gérer fichiers et répertoires.
  9. Manipuler flux d’entrĂ©e/sortie avec cat et redirections.
  10. Tester les opérations avec des commandes de test.
  11. Gérer les paramÚtres et opérations arithmétiques en shell.
  12. Vérifier les codes de retour des commandes.

Test your knowledge

Test your knowledge on Introduction aux commandes Unix et scripting shell with 10 multiple-choice questions with detailed corrections.

1. Quand la limite de longueur d’une dĂ©signation en rĂ©pertoire a-t-elle Ă©tĂ© dĂ©finie ?

2. Que désignent les métacaractÚres du shell dans la syntaxe des commandes ?

Take the quiz →

Review with flashcards

Memorize the key concepts of Introduction aux commandes Unix et scripting shell with 24 interactive flashcards.

Longueur d’une dĂ©signation — dĂ©finition ?

Taille maximale du chemin d’un fichier ou rĂ©pertoire.

Syntaxe commandes shell — sur une ligne ?

Enchaßnement avec ;, &&, || et métacaractÚres pour modÚles.

Manipulation fichiers — crĂ©ation, copie, dĂ©placement ?

Utiliser mkdir, cp, mv pour gérer fichiers et répertoires.

See flashcards →

Similar courses

Create your own revision sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator