Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde2:laboratoare:01 [2021/03/08 19:29]
ioana_maria.culic [1. Utilisez Git]
sde2:laboratoare:01 [2021/03/10 16:29] (current)
ioana_maria.culic [4. Créer des fichiers avec des noms compliqués]
Line 1: Line 1:
-====== TP - Linux ======+====== TP 02 - Linux ======
  
 ===== Objectifs ===== ===== Objectifs =====
Line 19: Line 19:
  
 ==== Installer Ubuntu ==== ==== Installer Ubuntu ====
-Link catre prima parte din tema+[[https://​ocw.cs.pub.ro/​courses/​sde2/​teme/​tema_fr_1?&#​tache_01_0p| Tâche 1]]
 ===== Manuel ===== ===== Manuel =====
  
Line 522: Line 522:
 </​code>​ </​code>​
 </​note>​ </​note>​
- 
- 
  
  
Line 530: Line 528:
 ** Vous êtes dans le répertoire ''/​home/​student/​sde-repository ''​.** ** Vous êtes dans le répertoire ''/​home/​student/​sde-repository ''​.**
  
-Supprimez le fichier ''​simple_hello.py ''​du répertoire 'tp01/simple_python/'.+Supprimez le fichier ''​simple_hello.py ''​du répertoire 'tp01/simple-python/'.
  
 Notez que j'ai utilisé un chemin relatif vers le répertoire ''/​home/​student''​ . Nous aurions pu l'​utiliser Notez que j'ai utilisé un chemin relatif vers le répertoire ''/​home/​student''​ . Nous aurions pu l'​utiliser
Line 547: Line 545:
 ==== 4. Créer des fichiers avec des noms compliqués ==== ==== 4. Créer des fichiers avec des noms compliqués ====
  
-** Entrez le répertoire sde-repository/​tp01/​filesys ​**+** Entrez le répertoire sde-repository/​tp01/​ **
  
 Utilisez la commande suivante: Utilisez la commande suivante:
Line 553: Line 551:
 mkdir Program Files and Accessories ​ mkdir Program Files and Accessories ​
 </​code> ​ </​code> ​
-Répertorie le contenu du répertoire 'filesys'. Combien de répertoires qu'il contient. Pourquoi Était-ce l'​effet désiré? Afin de créer un répertoire avec des espaces dans son nom, nous avons deux alternatives:​+Répertorie le contenu du répertoire 'tp01'. Combien de répertoires qu'il contient. Pourquoi Était-ce l'​effet désiré? Afin de créer un répertoire avec des espaces dans son nom, nous avons deux alternatives:​
  
 <code bash> <code bash>
Line 567: Line 565:
 Sans entrer dans le répertoire créé, ''​%%"​Program Files and Accessories"​%%'',​ créez 3 fichiers portant le nom ''​%%"​Open Office"​%%'',​ ''​%%"​Mozilla Firefox"​%%''​ și ''​%%"​Incredible long file name that contains a lot of spaces"​%%''​ et deux repertoires ''​%%"​App Data"​%%''​ și ''​%%"​Local Settings"​%%''​ în ''​%%"​Program Files and Accessories"​%%''​. Essayez également d'​utiliser le bouton ''​TAB ''​autant que possible. Sans entrer dans le répertoire créé, ''​%%"​Program Files and Accessories"​%%'',​ créez 3 fichiers portant le nom ''​%%"​Open Office"​%%'',​ ''​%%"​Mozilla Firefox"​%%''​ și ''​%%"​Incredible long file name that contains a lot of spaces"​%%''​ et deux repertoires ''​%%"​App Data"​%%''​ și ''​%%"​Local Settings"​%%''​ în ''​%%"​Program Files and Accessories"​%%''​. Essayez également d'​utiliser le bouton ''​TAB ''​autant que possible.
  
-Copiez les deux premiers fichiers créés précédemment dans le répertoire ''​simple_python/ ''​.+Copiez les deux premiers fichiers créés précédemment dans le répertoire ''​simple-python/ ''​.
  
 Ecrivez un texte aléatoire dans %% "Nom de fichier long et incroyable contenant de nombreux espaces"​ %% à l'aide de la commande "​echo"​ ou "​vim"​. Ecrivez un texte aléatoire dans %% "Nom de fichier long et incroyable contenant de nombreux espaces"​ %% à l'aide de la commande "​echo"​ ou "​vim"​.
Line 579: Line 577:
 <​note>​ Une solution rapide peut être la suivante. "Alt +." Est un moyen d'​itérer avec les derniers paramètres des commandes plus tôt). Nous tapons ensuite 'Alt + b' pour revenir en arrière puis, en utilisant Alt + Backspace, nous supprimons les 3 mots dont nous n’avons plus besoin. Enfin, le texte %% "moins \" %% est uniquement ajouté. <​note>​ Une solution rapide peut être la suivante. "Alt +." Est un moyen d'​itérer avec les derniers paramètres des commandes plus tôt). Nous tapons ensuite 'Alt + b' pour revenir en arrière puis, en utilisant Alt + Backspace, nous supprimons les 3 mots dont nous n’avons plus besoin. Enfin, le texte %% "moins \" %% est uniquement ajouté.
 </​note>​ </​note>​
- 
-Copiez l'​intégralité du répertoire '​filesys'​ dans ''/​home/​student ''​. Pourquoi la commande ci-dessous ne fonctionne-t-elle pas? 
- 
-<code bash> 
-student@sde:​$ pwd 
-/​home/​student/​sde-repository/​tp01/​filesys 
-student@uso:​$ cp . /​home/​student 
-</​code>​ 
- 
-Nous avons besoin de ''​récursif ''​(comme ''​rm ''​). Regardez dans la page de manuel de ''​cp ''​('​man cp' ') après'​ récursif '. 
- 
-Entrez le dossier parent de ''​filesys ''​. Déplacez ''​to_move ''​vers ''/​tmp ''​. Notez que pour ''​mv '',​ nous n'​avons pas besoin du paramètre ''​-r ''​(pour la récursivité). 
- 
-Vérifiez que votre commande est exécutée avec succès à l’aide d’une commande ''​ls ''​. 
  
  
  
-===== 5. Prelucrarea informației dintr-un fișier ​=====+===== 5. Traitement des informations d'un fichier ​=====
  
-Pentru a afișa pe ecran conținutul unui fișier folosim utlitarul ​''​%%cat%%''​. ​Rulăm comanda de mai jos, pentru a exemplifica:+Pour afficher le contenu d'un fichier à l'​écran,​ nous utilisons l'​utilitaire ​''​%%cat%%''​. ​Nous exécutons la commande ci-dessous pour illustrer:
  
 <code bash> <code bash>
Line 606: Line 590:
 </​code>​ </​code>​
  
-Folosim comanda ​''​%%cat%%'' ​în combinație cu alte comenzi pentru a extrage sau filtra conținutul anumitor fișiereComanda ​''​%%cat%%'' ​primește ca argumente calea către unul sau mai multe fișiere și afișează pe ecran conținutul concatenat al acestora.+Nous utilisons ​''​%%cat%%'' ​en combinaison avec d'​autres commandes pour extraire ou filtrer le contenu de certains fichiersLa commande ​''​%%cat%%'' ​reçoit comme argument le path vers un ou plusieurs fichiers comme arguments et affiche leur contenu concaténé à l'​écran.
  
-Un exemplu uzual este faptul că vrem să extragem informațiile despre starea memoriei sistemului din fișierul ​''​%%/​proc/​meminfo%%''​. ​Pentru aceasta rulăm comanda de mai jos:+Un exemple courant est que nous voulons extraire les informations sur l'​état de la mémoire système du fichier ​''​%%/​proc/​meminfo%%''​. ​Pour cela, on va exécute la commande ci-dessous:
  
 <code bash> <code bash>
Line 616: Line 600:
 MemAvailable: ​    ​874420 kB MemAvailable: ​    ​874420 kB
 </​code>​ </​code>​
-În exemplul de mai sus folosim ​''​%%cat%%'' ​pentru a oferi ca intrare conținutul fișierului ​''​%%/​proc/​meminfo%%'' ​utilitarului ​''​%%grep%%''; ​cu utilitarul ​''​%%grep%%'' ​filtrăm conținutul după textul ​''​%%"​Mem"​%%''​. ​Cu alte cuvinteoutputul comenzii ​''​%%cat /​proc/​meminfo%%'', ​adică conținutul fișierului ​''​%%/​proc/​meminfo%%'' ​este textul pe care utilitarul ​''​%%grep%%'' ​îl prelucrează.+Dans l'​exemple ci-dessus, nous utilisons ​''​ %% cat %% '' ​pour saisir le contenu du fichier ​''​ %% / proc / meminfo %% '' ​dans l'​utilitaire ​''​ %% grep %% ''; ​avec l'​utilitaire ​''​ %% grep %% '' ​nous filtrons le contenu par le texte ''​ %% "​Mem"​ %% ''​. ​En d'​autres termesla sortie de la commande ​''​ %% cat / proc / meminfo %% '', ​c'​est-à-dire le contenu du fichier ​''​ %% / proc / meminfo %% ''​, est le texte que l'​utilitaire ​'' ​Processus ​%% grep %% ''​.
  
 <note warning> <note warning>
-Folosind simbolul ​pipe (''​|''​) ​putem inlantui comenzi astfel incat outputul comenzii precedente devine ​input pentru comanda urmatoare.+En utilisant le symbole de tube/pipe (''​ | ''​), nous pouvons enchaîner les commandes afin que le output de la commande précédente devienne ​input pour la commande suivante.
 </​note>​ </​note>​
  
-**Exercițiu**: Plecând ​de la exemplul de mai susextrageți din fișierul ​''​%%/​proc/​cpuinfo%%'' ​dimensiunea memoriei ​cache a procesorului vostrufiltrați conținutul după textul ​''​%%"​cache"​%%''​.+**Exercice**: À partir ​de l'​exemple ci-dessusextraire du fichier ​''​%%/​proc/​cpuinfo%%'' ​la dimension du memoire ​cache du votre processeurfiltrer le contenu apres le texte''​%%"​cache"​%%''​.
  
-=== Afișarea parțială a unui fișier ​===+=== Affichage partiel d'un fichier ​===
  
-Am văzut că utilitarul ​''​%%cat%%'' ​afișează întreg conținutul unui fișierExistă scenarii în care suntem interesați doar de începutul sau sfârșitul unui conținutPentru aceste cazuri putem folosi utilitarele:+Nous avons vu que l'​utilitaire ​''​ %% cat %% '' ​affiche l'​intégralité du contenu d'un fichierIl existe des scénarios où nous ne nous intéressons qu'au début ou à la fin d'un contenuPour ces cas, nous pouvons utiliser les utilitaires:
  
   * ''​%%head%%''​ - afișează primele **10** linii din conținut   * ''​%%head%%''​ - afișează primele **10** linii din conținut
   * ''​%%tail%%''​ - afișează ultimele **10** linii din conținut   * ''​%%tail%%''​ - afișează ultimele **10** linii din conținut
  
-Valoarea ​**10** ​este valoarea implicită a ambelor utilitaredar putem specifica ​un alt număr ​de linii.+La valeur ​** 10 ** est la valeur par défaut des deux utilitairesmais nous pouvons spécifier ​un autre nombre ​de lignes.
  
-Exemplu:+Exemple:
 <code bash> <code bash>
 student@sde:​~$ cat sde-workspace/​tp01/​tv-shows/​young-sheldon/​shelly | head -1 student@sde:​~$ cat sde-workspace/​tp01/​tv-shows/​young-sheldon/​shelly | head -1
Line 639: Line 623:
 </​code>​ </​code>​
  
-**Exercițiu**: Afisati primii ​10 utilizatori din sistem ​(lista utilizatorilor ​se gaseste in directorul ​''/​etc/​passwd''​).+** Exercice ​**: Afficher les 10 premiers utilisateurs du système ​(la liste des utilisateurs ​se trouve dans le répertoire ​''​ / etc / passwd ''​).
  
-===== Căutarea în fișiere ​=====+===== Recherche dans les fichiers ​=====
  
-Așa cum am văzut până în acest punct din cartemajoritatea comenzilor ​Linux afișează o gamă largă de informații pe care apoi utilizatorul ​(adică noi) le filtrează pentru a extrage ceea ce îl intreseazăLa începutul acestei secțiuniam folosit utilitarul ​''​%%grep%%'' ​ca să filtrăm rezultatul unei comenzi.+Comme nous avons vu jusqu'​à présent dans le livrela plupart des commandes ​Linux affichent un large volume d'​informations que l'​utilisateur ​(c'​est-à-dire nousva le filtre ensuite pour extraire ​ce qui l'​intéresseAu début de cette sectionnous avons utilisé l'​utilitaire ​''​ %% grep %% '' ​pour filtrer le résultat d'une commande.
  
-Comanda ​''​%%grep%%'' ​este una dintre cele mai folosite în linie de comandăSintaxa ​de folosire a ''​%%grep%%'' ​este următoarea:+La commande ​''​ %% grep %% '' ​est l'une des plus utilisées dans la ligne de commandeLa syntaxe d'​utilisation ​de ''​ %% grep %% '' ​est la suivante:
  
 <code bash> <code bash>
Line 651: Line 635:
        grep [OPTIONS] PATTERN [FILE...]        grep [OPTIONS] PATTERN [FILE...]
 </​code>​ </​code>​
-''​%%grep%%'' ​caută ​**PATTERN** ​în lista de fișiere primită ca argument ​și afișează liniile care conțin ​**PATTERN**-ul căutatAtunci când nu primește nici un fișiercitește text de la tastatură ​(intrarea ​standard) ​și afișează liniile care conțin ​**PATTERN**-ul căutat.+''​%%grep%%'' ​cherche ​**PATTERN** ​dans la liste des fichiers reçus en argument ​et affiche les lignes qui les contiennent le **PATTERN** ​chercheLorsqu'​aucun fichier n'est reçulisez le texte du clavier ​(entrée ​standard) ​et affichez les lignes qui contiennent le **PATTERN** ​cherche.
  
-Până acum noi am utilizat ​''​%%grep%%'' ​după modelul de mai jos:+Nous avons eu utilise ​''​%%grep%%'' ​apres le modele suivante:
  
 <code bash> <code bash>
Line 659: Line 643:
 My name is Sheldon My name is Sheldon
 </​code>​ </​code>​
-În exemplul de mai susoperatorul ​''​%%|%%'' ​trimite textul afișat de comanda ​''​%%cat%%'' ​către intrarea ​standard ​a comenzii ​''​%%grep%%''​.+Dans l'​exemple ci-dessusl'​opérateur ​''​ %% | %% '' ​envoie le texte affiché par la commande ​''​ %% cat %% '' ​à l'​entrée ​standard ​de la commande ​''​ %% grep %% ''​.
  
 <code bash> <code bash>
Line 665: Line 649:
 My name is Sheldon My name is Sheldon
 </​code>​ </​code>​
-Observăm modul de folosire: ''​%%grep PATTERN ​cale/către/fișier%%''​.+Le mode d'​utilisation: ''​%%grep PATTERN ​path/vers/fichier%%''​.
  
  
- +===== 6. L'​utilitaire ​cut ===== 
- +Nous nous souvenons ​de fichier ​''/​etc/​passwd'' ​qui contient des informations sur tous les utilisateurs du système ​
- +
-===== 6. Utilitarul ​cut ===== +
-Ne amintim ​de fișierul ​''/​etc/​passwd'' ​conține informații despre toți utilizatorii din sistem+
  
 <code bash> <code bash>
Line 682: Line 663:
 </​code>​ </​code>​
  
-În Linux există filtrul ​de text ''​cut'' ​prin care putem extrage doar anumite informații dintr-un ​output.  +En Linux il y a le filtre ​de texte ''​cut'' ​grâce auquel nous ne pouvons extraire qcertaines informations d' ​output. 
-Să zicem că vrem să extragem doar numele utilizatorilorfără informațiile legate de grupuri sau home directory.+Disons que nous voulons uniquement extraire les noms d'​utilisateursans informations sur les groupes ou les répertoires personnels(home directory).
  
  
Line 695: Line 676:
  
  
-Argumentul ​''​-f1'' ​specifică faptul că vrem prima coloanăiar argumentul ​''​-d:'' ​specifică delimitatorul  +L'​argument ​''​-f1'' ​spécifie que nous voulons la première colonneet l'​argument ​''​-d:'' ​spécifie le délimiteurde ​coloane, în cazul nostru '':''​.
-de coloane, în cazul nostru '':''​.+
  
  
-  - Pornind ​de la comanda de mai susafișați numele utilizatorilor sortați alfabetic. (Hint: ''​man sort''​) +  - En commanecent ​de la commande au dessusafficher les noms d'​utilisateurs trie par ordre alphabétique. (Hint: ''​man sort''​) 
-  - Folosind utilitarul ​''​wc'', ​obțineți numărul de utilizatori din sistem. (Hint: ''​man wc''​)+  - En utilisant l'​utilitaire ​''​wc'', ​ vous obtenez le numero des utilisatuers  
 + du system. (Hint: ''​man wc''​)
  
  
Line 706: Line 687:
 ===== 7. Shell scripting ===== ===== 7. Shell scripting =====
  
-Un script shell este un fișier text care conține comenzi și construcții specifice ​shell-ului. Un script shell începe cu construcția ​''#​!/​bin/​bash'', ​denumită ​//​shebang// ​care indică interpretorul scriptuluiîn cazul de față interpretorul este chiar shell-ul Bash. Dacă nu este specificat nici un shell prin shebang atunci implicit va fi luat shell-ul implicit (setat în ''/​etc/​passwd''​) asignat utilizatorului logat.+Un script shell est un fichier texte contenant des commandes et des constructions spécifiques au shell. Un script shell commence par la construction ​''#​!/​bin/​bash'', ​nomee //​shebang// ​indiquant l'​interprète du scriptdans ce cas, l'​interprète est  le shell Bash. Dacă nu este specificat nici un shell prin shebang atunci implicit va fi luat shell-ul implicit (setat în ''/​etc/​passwd''​) asignat utilizatorului logat.
  
-Spre exemplu, one-liners ​pe care le-am tot scris până acum ar putea fi puse într-un shell script ​șimai multdacă sunt comenzi lungi și nu încap pe o linie le putem "sparge" ​în mai multe linii folosind separatorul ​''​\'':​+Par exemple, one-liners ​que on a écrit jusqu'​à présent pourrait être mis dans un shell script ​eten plussi ce sont des commandes longues et ne tiennent pas sur une seule ligne, nous pouvons les "diviser" ​en plusieurs lignes en utilisant le séparateur ​''​\'':​
  
 <code bash> <code bash>
Line 723: Line 704:
  
 <note important>​ <note important>​
-**ATENȚIE!** În construcția de mai sus după ''​\'' ​trebuie să nu mai existe nici un caracter ​(nici măcar spațiu alb/trailing whitespaces)+**ATTENTION!** Dans la construction ci-dessus après ​''​ \ ''​, il ne doit past etre aucun caractère ​(ni l'​espace blanc / trailing whitespaces)
 </​note>​ </​note>​
  
-Scriptul conține comenzi uzuale folosite în shell și alte comenzi care se regăsesc mai adesea în scripturi: ''​while'',​ ''​if'',​ ''​for''​. ​Acestea nu sunt instrucțiunici sunt tot comenzi ​shell; ​pot fi folosite, dacă sintaxa este corectă și în linia de comandă.+Le script contien des commandes usuales utilise en shell  et de autres ​ commandes ​ qui pn peut le trouve souvent dans les scripts: ''​while'',​ ''​if'',​ ''​for''​. ​Ces ne sont pas des instructionsil y a encore des commandes ​shell; ​peut être utilisé si la syntaxe est également correcte sur la ligne de commande.
  
-=== Argumente din linia de comandă ​===+=== Arguments ​de ligne de commande ​===
  
-Un script ​moștenește variabilele ​de mediu ale shell-ului părinte precum ​''​HOME'',​ ''​BASH'',​ ''​IFS'',​ ''​USER''​. ​În script ​le putem folosi astfel+Un script ​hérité les variabiles ​de l'​envireonement du shell aprent comme ''​HOME'',​ ''​BASH'',​ ''​IFS'',​ ''​USER''​. ​Dans le script, nous pouvons les utiliser comme ceci
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Line 737: Line 718:
 </​code>​ </​code>​
  
-Pe lângă aceste variabilescriptul poate primi o serie de argumente din linia de comandăFolosind următoarele variabileputem referi argumentele primite de script ​din linia de comandă+En plus de ces variablesle script peut recevoir un certain nombre d'​arguments ​de la ligne de commandeEn utilisant les variables suivantesnous pouvons nous référer aux arguments reçus par le script ​depuis la ligne de commande
  
-   * ''​$*'' ​este un string (''​$1,​ $2 ... $n''​) ​format din toate argumentele primite ​de script  +   * ''​$*'' ​est un string (''​$1,​ $2 ... $n''​) ​composé ​de tous les arguments reçus par le script  
-   * ''​$@'' ​este o listă formată din argumentele scriptului ​ +   * ''​$@'' ​est une liste d'​arguments de script ​ 
-   * ''​$1,​ $2 ... $n'' ​reprezintă fiecare parametru din script  +   * ''​$1,​ $2 ... $n'' ​représente chaque paramètre du script  
-   * ''​$0'' ​este numele scriptului ​ +   * ''​$0'' ​est le nom du script ​ 
-   * ''​$#'' ​este numărul ​de argumente primite din linia de comandă ​+   * ''​$#'' ​est le nombre d'​arguments reçus ​de la ligne de commande  ​
  
-Spre exemplusă luăm următorul ​script ''​arguments.sh'':​+Par exempleprenons le script ​suivant ​''​arguments.sh'':​
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Line 756: Line 737:
 </​code>​ </​code>​
  
-Să apelăm scriptul cu argumente+Appelons le script avec arguments
 <code bash> <code bash>
 student@uso:​~$ bash arguments.sh banane cirese caise castraveti student@uso:​~$ bash arguments.sh banane cirese caise castraveti
Line 767: Line 748:
  
  
-=====8. ​Execuția comenzilor ​=====+=====8. ​Exécution des commandes ​=====
  
-==== Încheierea execuției unei comenzi ​====+==== Le fin de l'​exécution d'une commande ​====
  
-Atunci când rulăm o comandă aceasta își poate încheia execuția în două moduricu **succes** sau cu **eșec**. Atunci când își încheie execuțiaorice proces întoarce ​un cod de eroarecare este un număr:+Lorsque nous exécutons une commande, elle peut terminer son exécution de deux manièresavec ** succès ​** ou avec ** échec ​**. Quand il fini son executiontout les processus vont retourne ​un code d'​erreurqui va etre un numero:
  
-  * Dacă numărul întors are valoarea ​''​%%0%%'', ​procesul și-încheiat execuția cu succes. +  * Si le numero a la veleur ​''​%%0%%'', ​le proccesus ​fini l'​execution avec succes. 
-  * Dacă numărul întors are orice altă valoare, procesul și-încheiat execuția cu eroareiar codul întors poate fi folosit pentru ​afla mai multe informații despre eroarea pe care a întors-o procesulÎn pagina ​''​%%man%%'' ​a utilitarului ​''​%%ls%%'' ​este specificat:<code bash>+  * Si le numéro renvoyé ​une autre valeurle processus ​terminé son exécution par erreur et le code renvoyé peut être utilisé pour en savoir plus en ce qui concerne l'​erreur renvoyée par le processusDans la page ''​ %% man %% '' ​de l'​utilitaire ​''​ %% ls %% '' ​est spécifiée:<code bash>
 Exit status: Exit status:
        ​0 ​     if OK,        ​0 ​     if OK,
Line 783: Line 764:
 </​code>​ </​code>​
  
-Pentru ​vedea codul cu care și-a încheiat execuția o comandă folosim sintaxa ​''​%%$?​%%''​. ​Urmărim exemplul de mai jos:+Pour voir le code avec lequel une commande ​terminé son exécution, nous utilisons la syntaxe ​''​%%$?​%%''​. ​Voir l'​exemple ci-dessus:
  
 <code bash> <code bash>
Line 795: Line 776:
 2 2
 </​code>​ </​code>​
-Observăm că în cazul fișierului inexistetcomanda ​''​%%ls non-existent%%''​ a întors valoarea ​''​%%2%%'', ​așa cum era specificat și în pagina ​de manual.+On observe que dans le cas quand le fichier est inexistentla commande ​''​%%ls non-existent%%''​ a retourne la valeur ​''​%%2%%'', ​comme est spécifié dans la page de manuel.
  
-=== Înlănțuirea comenzilor în funcție ​de succes sau eșec ===+=== Chaînage des commandes en fonction du succès ou de l'​échec ​===
  
-De multe ori vrem să executăm o succesiune ​de comenzi pentru a realiza o sarcinăDe exempluatunci când vrem să instalăm o aplicație o rulăm trei comenzi:+Plusieurs fois, nous voulons exécuter une séquence ​de commandes pour accomplir une tâchePar exemple, lorsque nous voulons installer une applicationnous l'​exécutons trois commandes:
  
-  * O să actualizăm indexul surselor de pachete folosind ​''​%%apt update%%''​ +  * Nous mettrons à jour l'​index source du package en utilisant ​''​%%apt update%%''​ 
-  * O să instalăm pachetul care conține aplicația folosind ​''​%%apt install%%''​ +  * Nous installerons le package contenant l'​application en utilisant ​''​%%apt install%%''​ 
-  * O să rulăm aplicația pentru ​valida că instalarea a fost cu succes. +  * Nous exécuterons l'​application pour valider que l'​installation ​réussi.
- +
-Preferăm să înlănțuim cele trei comenzi într-una singură pentru că astfel putem să pornim tot acest proces, să plecăm de la calculator, iar când ne întoarcem avem tot sistemul pregătit.+
  
 +Nous préférons enchaîner les trois commandes en une seule parce que de cette façon, nous pouvons démarrer tout ce processus, quitter l'​ordinateur,​ et lorsque nous revenons, nous avons tout le système prêt.
 Pentru a înlănțui comenzi în terminalul bash avem trei operatori disponibili:​ Pentru a înlănțui comenzi în terminalul bash avem trei operatori disponibili:​
  
-Operatorul ​''​%%;​%%''​ - este folosit pentru separarea comenzilor Urmăm exemplul de mai jos:+L'​operateur ​''​%%;​%%''​ - est utilise pour separer les commandes. On va suive l'​exemple ci-dessous:
 <code bash> <code bash>
 student@uso:​~$ mkdir demo; cd demo; touch Hello; ls student@uso:​~$ mkdir demo; cd demo; touch Hello; ls
Line 815: Line 795:
 </​code>​ </​code>​
  
-În exemplul de mai sus am creat directorul ​''​%%demo%%'', ​am navigat în interiorul săuam creat fișierul ​''​%%Hello%%'' ​și am afișat conținutul directoruluiAm făcut toate acestea înlănțuind comenzile ​''​%%mkdir%%'',​ ''​%%cd%%'',​ ''​%%touch%%'' ​și ''​%%ls%%'' ​cu ajutorul operatorului ​''​%%;​%%''​.+Dans l'​exemple ci-dessus, on a créé le répertoire ​''​ %% demo %% '', ​navigué à l'​intérieurcréé le fichier ​''​ %% Hello %% '' ​et affiché le contenu du répertoireOn a fait tout cela en concaténant les commandes ​''​ %% mkdir %% '',​ ''​ %% cd %% '',​ ''​ %% touch %% '' ​et ''​ %% ls %% '' ​à l'aide de l'​opérateur ​''​ %%; %% ''​.
  
-Operatorul ​''​%%;​%%'' ​este folosit pentru separarea comenzilordar nu ține cont dacă comenzile anterioare au fost executate cu succes sau nuUrmăm exemplul de mai jos:+L'​opérateur ​''​ %%; %% '' ​est utilisé pour séparer les commandesmais ne prend pas en compte si les commandes précédentes ont été exécutées avec succès ou nonOn va suive l'​exemple ci-dessous:
 <code bash> <code bash>
 student@uso:​~$ mkdir operators/​demo;​ cd operators/​demo student@uso:​~$ mkdir operators/​demo;​ cd operators/​demo
Line 824: Line 804:
 </​code>​ </​code>​
  
-În exemplul de mai suscomanda ​''​%%mkdir%%''​ a eșuat deoarece nu găsit directorul ​''​%%operators%%'' ​în care să creeze directorul ​''​%%demo%%''​. ​Cu toate acesteaoperatorul ​''​%%;​%%'' ​doar separă comenzile între eleașa că și comanda ​''​%%cd operators/​demo%%''​ a fost executată, și și aceasta ​eșuat deoarece nu există calea ''​%%operators/demo%%''​.+Dans l'​exemple ci-dessusla commande ​''​ %%mkdir%% ''​ a échoué car elle n'pas pu trouver le répertoire ​''​ %%operators%% '' ​pour créer le répertoire ​''​ %% demo %% ''​. ​Cependantl'​opérateur ​''​ %%; %% '' ​sépare uniquement les commandes les unes des autresdonc la commande ​''​ %%cd operators/​demo %% ''​ a également été exécutée et échoué car il n'y a pas de chemin ​''​ %% opérateurs/démo %% ''​.
  
-Folosim operatorul ​''​%%;​%%'' ​pentru a înlănțui comenzi care sunt independente unele de alteleși deci execuția lor nu depinde de succesul unei comenzi precedente.+On va utilise l'​operateur ​''​%%;​%%'' ​pour enchaîner des commandes indépendantes les unes des autresafin que leur exécution ne dépende pas du succès d'une commandeprecedente.
  
-Operatorul binar ''​%%&&​%%''​ (și logic) - execută ​doua comandă doar dacă precedenta s-a executat cu succesExemplul anterior devine:+L'​operateur binnaire ​''​%%&&​%%''​ (et logiq) - exécute la deuxième commande uniquement si la précédente ​été exécutée avec succèsL'​exemple précédent devient:
 <code bash> <code bash>
 student@uso:​~$ mkdir operators/​demo && cd operators/​demo student@uso:​~$ mkdir operators/​demo && cd operators/​demo
Line 834: Line 814:
 </​code>​ </​code>​
  
-Observăm că din moment ce comanda ​''​%%mkdir%%'' ​a eșuatcomanda ​''​%%cd%%'' ​nu mai fost executată.+Nous remarquons que depuis l'​échec de la commande ​''​ %% mkdir %% '', ​la commande ​''​ %% cd %% '' ​n'pas été exécutée.
  
-Operatorul binar ''​%%||%%''​ (sau logic) - execută ​doua comandă doar dacă prima s-a terminat cu eșecUrmărim exemplul de mai jos:+L'​operateur ​''​%%||%%''​ (ou logique) - exécute la deuxième commande uniquement si la première ​échouéOn va suive l'​exemple ci-dessous:
 <code bash> <code bash>
 student@uso:​~$ (ls -d operators || mkdir operators) && ls -d operators student@uso:​~$ (ls -d operators || mkdir operators) && ls -d operators
Line 845: Line 825:
 operators operators
 </​code>​ </​code>​
-În exemplul de mai sus, prima comandă ''​%%ls%%''​ a eșuat, așa că a fost executată comanda ''​%%mkdir%%''​ și apoi a fost executată ultima comandă ''​%%ls%%''​. La cea de-a doua rulare, a fost executată cu succes prima comandă ''​%%ls%%'',​ așa că comanda ''​%%mkdir%%''​ nu a mai fost executată, și apoi a fost executată ultima comandă ''​%%ls%%''​. 
  
-Pentru ​rezolva scenariul ​de la care am plecat inițialputem rula:+Dans l'​exemple ci-dessus, la première commande ''​%%ls%%'' ​échoué, donc la commande a été exécutée ''​%%mkdir%%''​ puis la dernière commande a été exécutée ''​%%ls%%''​. Lors de la deuxième exécution, la première commande ''​%%ls%%''​ a été exécutée avec succès, donc la commande ''​%% mkdir%% ''​ n'a plus été exécutée, puis la dernière commande a été exécutée ''​%% ls %%''​. 
 + 
 +Pour résoudre le scénario à partir duquel nous avons commencénous pouvons exécuter:
  
 <code bash> <code bash>
 sudo apt update && sudo apt install -y cowsay && cowsay "​Howdy"​ sudo apt update && sudo apt install -y cowsay && cowsay "​Howdy"​
 </​code>​ </​code>​
-Comanda de mai sus va actualiza indexul pachetelor sursăva instala pachetul ​''​%%cowsay%%'' ​și va rula comanda ​''​%%cowsay%%'' ​pentru a valida instalareaO astfel de înlănțuire ​de comenzi este numită ​**oneliner**.+La commande ci-dessus mettra à jour l'​index du package sourceinstallera le package ​''​ %% cowsay %% '' ​et exécutera la commande ​''​ %% cowsay %% '' ​pour valider l'​installationUne telle chaîne ​de commandes est appelée ​** oneliner **.
  
-=== Exerciții ​===+=== Exercices ​===
  
-  - Scrieți ​un oneliner ​cu ajutorul căruia creați directorul ​''​%%~/​make-folder%%'' ​și apoi copiați conținutul directorului ​~/​sde-repository/​tv-shows/​young-sheldon ​în el+  -  ​Écrivez ​un oneliner ​avec lequel vous créez le répertoire''​%%~/​make-folder%%'' ​puis copiez le contenu du répertoire ​~/​sde-repository/​tv-shows/​young-sheldon ​dedans
-  - Actualizați onelinerul anterior astfel încât după copiere să pornească afiseze mesajul: "​operation done".+  - Mettez à jour l'​ancien oneliner telle que après la copie il doit être affiche le message: "​operation done".
  
sde2/laboratoare/01.1615224566.txt.gz · Last modified: 2021/03/08 19:29 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0