La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

BTS SN IR Domaine Cours Shells et scripts shells.

Présentations similaires


Présentation au sujet: "BTS SN IR Domaine Cours Shells et scripts shells."— Transcription de la présentation:

1 BTS SN IR Domaine Cours Shells et scripts shells

2 Signification de « shell »…
Le Shell Cours d’Informatique et de Réseaux Signification de « shell »… Le terme anglais « shell » vient à l'origine de la terminologie employée avec les premiers systèmes d'exploitation de type Unix où il avait le sens plus spécifique de shell Unix. Cette appellation est une métaphore Shell = coque en français Cela désignait donc la couche la plus haute des interfaces des systèmes Unix, par opposition à la couche de bas-niveau, appelée « noyau » OS

3 Les Shells Qu’est ce qu’un Shell ? Cours d’Informatique et de Réseaux
« Shell » signifie donc interface système ou coque logicielle. C’est une couche logicielle qui fournit une « interface utilisateur » à un système d'exploitation. Avant l’existence de ces interfaces shells, interagir avec le système était complexe. Il s’agissait de communiquer dans un langage machine et cela impliquait notamment de connaître très précisément le fonctionnement du noyaux du système d’exploitation ainsi que les possibilités de l’architecture matérielle (UC) sur laquelle il était utilisé. Les interfaces graphique ont ensuite pris le relais et ont permis au grand public d’utiliser la micro-informatique à travers de nombreuses utilisations. A l'époque des terminaux, les shells étaient la seule manière d'accéder au système. De nos jours, les shells sont souvent appelés « interpréteurs de commande » puisque la partie la plus visible d’un OS est maintenant devenu son « interface graphique ».

4 Les Shells Qu’est ce qu’un Schell ?
Cours d’Informatique et de Réseaux Qu’est ce qu’un Schell ? Les shells sont bien plus qu’une simple interface en ligne de commande permettant quelques interactions avec le système. Leur concepteurs ont peu à peu fait d’eux de vrais langages de programmation permettant l’utilisation de variables, de boucles itératives, ou encore d’expressions régulières. C’est d’ailleurs eux qu’on privilégie pour combiner ou d’ordonnancer une série de commandes systèmes. Pour l’administrateur système, des shells ouverts dans des fenêtres de terminal restent l'interface préférée pour écrire des scripts shell, scripts permettant d’automatiser bon nombre d’action relatives aux systèmes qu’il administre.

5 Les Shells Quelques shells Cours d’Informatique et de Réseaux
 Un shell est donc un interpréteur de commandes.  Il permet d'accéder aux fonctionnalités internes du système d'exploitation. Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. Quelques shells Shell UNIX / Linux : - Le bourne shell (sh) - Le Korn shell créé par david Korn d’AT&T (ksh) - Le c-shell créé par l’université de Berckeley (csh) - Le restricted shell – version réduite du Bourne shell (rsh) - Le Bourne again shell – version Linux (bash) Shell Windows : - Command.com (interpréteur de commandes d’MS-DOS) - cmd.exe (interpréteur de commandes Windows NT) - Windows PowerShell de Microsoft, ancien nom de code : Monad - Windows Explorer

6 2 modes de fonctionnement sous Unix / Linux
Cours d’Informatique et de Réseaux Les Shells 2 modes de fonctionnement sous Unix / Linux 1) Mode interactif (dans un terminal) : 2) Mode « script » (dans un fichier de commandes) :

7 Shells Unix et langages de scripts
Les Shells Cours d’Informatique et de Réseaux Shells Unix et langages de scripts Shells Unix et lang. de scripts : Le BASH : Pour résumer : Bash = puissant et expressif

8 Les Shells Syntaxe bash Cours d’Informatique et de Réseaux
Découpage sur les ”blancs” (espace, tab, rc) « Les blancs ne sont pas tout à fait blancs… » Caractères réservés : ’ " ‘ () {} [] \ & ~ | $ # ; ... Langage orienté commandes : La syntaxe privilégie la gestion des commandes sur les autres aspects - En C, on appelle des instructions et on évalue des expressions - En bash, on exécute des commandes et on regarde si elles ont réussi.

9 Les Shells Syntaxe bash Cours d’Informatique et de Réseaux
Certaines commandes sont intégrées à bash : les ”builtins” echo "message"  affiche le message à l’écran read toto  lit une ligne au clavier, puis la mémorise dans la variable toto Exemple : $ echo "Quel est votre nom ?" Quel est votre nom ? $ read nom Toto $ echo "Votre nom est $nom" Votre nom est Toto

10 Les Shells Commandes UNIX de base Cours d’Informatique et de Réseaux
La plupart des commandes sont des programmes externes : Au moins 800 (dans /bin, /usr/bin, etc.)

11 Les Shells Cours d’Informatique et de Réseaux Syntaxe bash

12 Les Shells Cours d’Informatique et de Réseaux Syntaxe bash

13 Les Shells Cours d’Informatique et de Réseaux Syntaxe bash

14 Les Scripts shells Nature d’un fichier TP Cours d’Informatique
et de Réseaux Nature d’un fichier TP

15 Les Shells Cours d’Informatique et de Réseaux Les redirections TP

16 Redirections (variantes)
Les Shells Cours d’Informatique et de Réseaux Redirections (variantes) TP

17 Les Shells Cours d’Informatique et de Réseaux Les tubes (pipe) TP

18 Scripts shells Les scripts Cours d’Informatique et de Réseaux
 Un langage de script est généralement exécuté à partir de fichiers contenant le code source du programme qui sera interprété.  Historiquement, ils ont été créés pour raccourcir le processus traditionnel de développement édition-compilation-édition des liens-exécution propre aux langages compilés. Sh ; bash ; ksh ; zsh ; csh ; tcsh … (dits script shell) Command, Cmd, PowerShell (pour windows) Mais aussi : JavaScript ; AppleScript (peut être compilé) ; VBScript ; Lisp ; Scheme (peuvent être compilés) ; GNU Octave ; Matlab ; PHP (peut être compilé) ; AutoIt (peut être compilé) ; Perl (peut être compilé) ; Python (peut être compilé) ; Rebol ; Rexx ; Ruby ; Lua ; Tcl/Tk; KiXtart ; Groovy ; etc.

19 Scripts shells Cours d’Informatique et de Réseaux Les scripts

20 Indique au système le programme utilisé pour exécuter le script
Scripts shells Cours d’Informatique et de Réseaux Premiers script shell TP Exemple 1 : script hello.sh #! /bin/bash # Mon premier script echo "Hello world!" exit # Le script a réussi Exécution : $ chmod +x hello.sh # une seule fois $ ./hello.sh Hello world! Indique au système le programme utilisé pour exécuter le script Ici : /bin/bash En règle générale, les "#" servent à mettre en commentaire le texte Exemple 2 : script list-fic.sh #!/bin/bash echo Mon script qui liste des fichiers : ls –la exit 0 Exécution : $ chmod +x list-fic.sh $ ./hello.sh Hello world!

21 Exemple de code de retour dans un script :
Scripts shells Cours d’Informatique et de Réseaux Codes de terminaison TP Exemple de code de retour dans un script : #!/bin/bash isdirectory() { if [ -d "$1" ] then # 0 = true return 0 else # 1 = false return 1 fi } isdirectory $1 echo $?

22 Scripts shells Le branchement « if » TP Cours d’Informatique
et de Réseaux Le branchement « if » TP

23 Scripts shells Cours d’Informatique et de Réseaux La boucle while TP

24 Scripts shells Cours d’Informatique et de Réseaux La commande test TP

25 Scripts shells Commandes internes TP Cours d’Informatique
et de Réseaux Commandes internes TP Commande interne ou (( )) Syntaxe : (( expr_arith )) Son fonctionnement est le suivant :  expr_arith est évaluée ; si cette évaluation donne une valeur différente de 0, alors le code de retour de la commande interne (( est égal à 0 sinon le code de retour est égal à 1. Il est donc important de distinguer deux aspects de la commande interne (( expr_arith )) : - la valeur de expr_arith issue de son évaluation et - le code de retour de (( expr_arith )). Attention : la valeur de expr_arith n'est pas affichée sur la sortie standard

26 Scripts shells Commandes internes TP Cours d’Informatique
et de Réseaux Commandes internes TP Exemple : $ (( -5 )) => la valeur de l'expression arithmétique est égale à -5 (c.-à-d. différente de 0), donc le code de retour de (( )) est égal à 0 $ echo $?  0 $ (( 0 )) => la valeur de l'expression arithmétique est 0, donc le code de retour de (( )) est égal à 1 $ echo $?  1 Les opérateurs permettant de construire des expressions arithmétiques évaluables par bash sont issus du langage C (ex : = + - > <=) $ declare -i a=2 b $ (( b = a + 7 )) $ Le format d'écriture est libre à l'intérieur de la commande ((. En particulier, plusieurs caractères espace ou tabulation peuvent séparer les deux membres d'une affectation.

27 Pour se perfectionner :
Scripts shells Cours d’Informatique et de Réseaux Commandes internes TP Le code de retour d'une commande interne (( est souvent exploité dans une structure de contrôle if ou while. Le programme shell dix ci-dessous affiche les dix chiffres : #!/bin/bash declare -i i=0 while (( i < 10 )) do echo $i (( i = i + 1 )) # ou (( i++ )) done La commande interne (( expr_arith )) n'affiche pas sur la sortie standard la valeur de l'expression arithmétique expr_arith. Pour obtenir la valeur de l'expression arithmétique, on utilise la syntaxe : $(( expr_arith )) Pour se perfectionner :

28 Scripts shells Inversion de résultat Cours d’Informatique
et de Réseaux Inversion de résultat

29 Scripts shells Cours d’Informatique et de Réseaux Substitution TP

30 Scripts shells Protections avec \ TP Cours d’Informatique
et de Réseaux Protections avec \ TP

31 Scripts shells Cours d’Informatique et de Réseaux Concaténation TP

32 Scripts shells Cours d’Informatique et de Réseaux « Introspection » TP

33 Les variables spéciales
Scripts shells Cours d’Informatique et de Réseaux Les variables spéciales TP Les scripts shell utilisent aussi des variables dites « spéciales ». Parmi elles :

34 Utilisation des arguments
Scripts shells Cours d’Informatique et de Réseaux Utilisation des arguments TP Script exécuté avec des arguments : $ nom_script arg1 arg2 arg3 etc. Utilisation des augments à l’intérieur du script : echo $0  renvoi le nom du script echo $1  renvoi l’argument 1 echo $2  renvoi l’argument 2 echo $3  renvoi l’argument 3 Etc.

35 Scripts shells shift TP Cours d’Informatique et de Réseaux
La commande shift La commande « shift » permet de gérer les arguments passés à un script au niveau de la ligne de commandes. Les actions effectuées sont : - décalage de toutes les chaînes de la variable « * » de « n » positions vers la gauche, - décrémentation de la variable « # » de « n ». Par défaut, « n » est positionné à 1. script_test_shift.sh : #!/bin/bash echo $* echo $# shift 2 ./script_test_shift.sh a1 a2 a3 a4 a1 a2 a3 a4 4 a3 a4 2

36 C’est le but des métacaractères.
Scripts shells Cours d’Informatique et de Réseaux Les méta-caractères Si vous êtes à la recherche d’un fichier qui commence par la lettre a, en faisant ls Vous voudriez voir seulement les fichiers commençant par a. Idem si l’on veut appliquer une commande à certains fichiers mais pas à d’autres. C’est le but des métacaractères. Ils permettent de faire une sélection de fichiers suivant certains critères. Les métacaractères : sont des caractères génériques permettant de désigner un ensemble d’objets s’appliquent aux arguments des commandes qui désignent des noms de fichiers

37 Scripts shells Les méta-caractères TP Cours d’Informatique
et de Réseaux Les méta-caractères TP Le Shell permet de générer une liste de noms de fichier en utilisant les caractères spéciaux suivants : Méta caractère Description * toutes chaînes de caractères, y compris la chaîne vide ex : a*b tous les noms de fichiers commençant par a et finissant par b ? caractère quelconque ex : a?b tous les noms de fichier commençant par a, suivi d’un caractère et finissant par b [. . .] un caractère quelconque ∈ à la liste donnée entre crochets Le - permet de représenter un intervalle. ex : a[a-z0-9A-Z]b désigne tous les noms de fichiers commençant par a suivi d’un caractère alphanumérique et finisant par b [!. . .] une liste de caractères à exclure ex : a[!a-z]b tous les noms de fichiers commençant par a suivi d’un caractère autre qu’un caractère alphabétique en minuscule et finissant par b

38 Si le répertoire courant contient :
Scripts shells Cours d’Informatique et de Réseaux Les méta-caractères TP Si le répertoire courant contient : fich1.bin fich1.txt fich2.txt fich10.txt fichier.txt readme zzz Résultat ls fich1* ls fich*.txt ls fich[0-9]*.txt ls ? ? ?

39 Si le répertoire courant contient :
Scripts shells Cours d’Informatique et de Réseaux Les méta-caractères TP Si le répertoire courant contient : fich1.bin fich1.txt fich2.txt fich10.txt fichier.txt readme zzz Résultat fich1* fich1.bin fich1.txt fich10.txt fich*.txt fich1.txt fich2.txt fich10.txt fichier.txt fich[0-9]*.txt fich1.txt fich2.txt fich10.txt ? ? ? zzz

40 Les expressions régulières
Scripts shells Cours d’Informatique et de Réseaux Les expressions régulières TP

41 Les expressions régulières
Scripts shells Cours d’Informatique et de Réseaux Les expressions régulières TP

42 Scripts shells Cours d’Informatique et de Réseaux La commande grep TP

43 Scripts shells grep – utilisation TP Cours d’Informatique
et de Réseaux grep – utilisation TP

44 Scripts shells La commande « find » TP Cours d’Informatique
et de Réseaux La commande « find » TP

45 Scripts shells La commande « find » TP Cours d’Informatique
et de Réseaux La commande « find » TP

46 Scripts shells La commande « find » TP Cours d’Informatique
et de Réseaux La commande « find » TP

47 Scripts shells La commande « find » TP Cours d’Informatique
et de Réseaux La commande « find » TP

48 Scripts shells La commande « find » TP Cours d’Informatique
et de Réseaux La commande « find » TP

49 Scripts shells La commande « sed » TP Cours d’Informatique
et de Réseaux La commande « sed » TP

50 Scripts shells La commande « sed » TP Cours d’Informatique
et de Réseaux La commande « sed » TP

51 Scripts shells La commande « sed » TP Cours d’Informatique
et de Réseaux La commande « sed » TP

52 Scripts shells La commande « sed » TP Cours d’Informatique
et de Réseaux La commande « sed » TP

53 Scripts shells La commande « sed » TP Cours d’Informatique
et de Réseaux La commande « sed » TP

54 Les Scripts shells Sources Cours d’Informatique et de Réseaux Sources
Auteur Lien tutoriel:script_shell Ubuntu-fr Programmation Unix 1 Edouard THIEL Unix/Linux II - DUT 1 re année Université de Marne La vallée Eric Sanchis


Télécharger ppt "BTS SN IR Domaine Cours Shells et scripts shells."

Présentations similaires


Annonces Google