CSC 3102 Le shell bash CSC3102 - Introduction aux systèmes d’exploitation Élisa

CSC 3102 Le shell bash CSC3102 - Introduction aux systèmes d’exploitation Élisabeth Brunet et Gaël Thomas CSC 3102 䡧 Terminal et shell 䡧 Le langage bash 䡧 Les variables 䡧 Les structures algorithmiques 䡧 Arguments d’une commande 䡧 Commandes imbriquées Le shell bash 2 CSC 3102 Le terminal 䡧 Porte d’entrée d’un ordinateur 䡧 Un terminal offre : • un canal pour entrer des données (clavier, souris, écran tactile…) • un canal pour afficher des données (écran, imprimante, haut- parleur…) Le shell bash 3 CSC 3102 Le terminal Un ordinateur n’a pas toujours un terminal intégré Bien que ce soit souvent le cas (smartphone, tablette, ordinateur portable…) Le shell bash 4 CSC 3102 Un terminal peut être virtualisé Le shell bash 5 Terminaux virtuels 䡧 Un terminal virtuel émule le comportement d’un terminal physique dans un autre terminal (virtuel ou physique) CSC 3102 Un processus communique avec l’utilisateur via un terminal 䡧 On dit que le processus est attaché à un (et un seul) terminal Le shell bash 6 Processus Utilisateur (humain ou processus) Terminal d’attache du processus Canal d’entrée Canal de sortie Remarque : lorsqu’un terminal est fermé, tous les processus attachés au terminal sont détruits CSC 3102 Le shell Le shell est un programme permettant d’interagir avec les services fournis par un système d’exploitation Le shell bash 7 Shell en mode graphique (Bureau windows, X-windows…) Shell en mode texte (bash, tcsh, zsh, ksh, cmd.exe…) CSC 3102 䡧 Terminal et shell 䡧 Le langage bash 䡧 Les variables 䡧 Les structures algorithmiques 䡧 Arguments d’une commande 䡧 Commandes imbriquées Le shell bash 8 CSC 3102 Le Bourne-Again Shell (bash) 䡧 Dans ce cours, nous étudions le shell en mode texte bash En mode texte car permet d’écrire des scripts ! 䡧 Attaché à un terminal virtuel en mode texte Le shell bash 9 CSC 3102 Remarque importante Dans la suite du cours, nous utiliserons souvent le terme « shell » pour désigner le « Bourne-Again shell » Mais n’oubliez pas que bash n’est qu’un shell parmi de nombreux autres shells (bash, tcsh, zsh, ksh, cmd.exe…) Le shell bash 10 CSC 3102 Bash 䡧 Interpréteur de commandes • Lit des commandes (à partir du terminal ou d’un fichier) • Exécute les commandes • Écrit les résultats sur son terminal d’attache 䡧 Bash définit un langage, appelé le langage bash • Structures algorithmiques classiques (if, while, for, etc.) • Variables 䡧 Accès rapide aux mécanismes offert par le noyau du système d’exploitation (tube, fichiers, redirections, …) Le shell bash 11 CSC 3102 Un texte bash 䡧 Un texte est formé de mots bash 䡧 Un mot bash est • Formé de caractères séparés par des délimiteurs (délimiteurs : espace, tabulation, retour à la ligne) Exemple : Coucou=42!* est un unique mot • Exceptions : – ; & && | || ( ) ` sont des mots ne nécessitant pas de délimiteurs – Si une chaîne de caractères est entourée de "" ou '', bash considère un unique mot bash est sensible à la casse (c.-à-d., minuscule ≠ majuscule) Le shell bash 12 CSC 3102 Un texte bash 䡧 Un texte est formé de mots Le shell bash 13 Ici nous avons 5 mots " En bash, ceci est un unique "mot" y compris mot milieu" Voici, trois, mots " zip "@é§èçà°-_¨^$%ù£,.:+=' est un autre unique mot' Nous|avons;NEUF&&mots&ici CSC 3102 Un texte bash 䡧 Un texte est formé de mots Le shell bash 14 Ici nous avons 5 mots " En bash, ceci est un unique "mot" y compris mot milieu" Voici, trois, mots " zip "@é§èçà°-_¨^$%ù£,.:+=' est un autre unique mot’ Nous|avons;NEUF&&mots&ici CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 15 $ CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 16 $ echo Salut tout le monde CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 17 $ echo Salut tout le monde CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 18 $ echo Salut tout le monde Salut tout le monde CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 19 $ echo "Salut tout le monde" CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 20 $ echo "Salut tout le monde" CSC 3102 Invocation d’une commande bash 䡧 Invocation d’une commande : var1=val1 var2=val2… cmd arg1 arg2… (tout est optionnel sauf cmd) • Lance la commande cmd avec les arguments arg1, arg2… et les variables var1, var2… affectées aux valeurs val1, val2… Le shell bash 21 $ echo "Salut tout le monde" Salut tout le monde CSC 3102 La première commande à connaître 䡧 man 1 cmd • man pour manuel : donne de l’aide • 1 (optionnel) indique la section d’aide de la commande – 1 : commandes • cmd est la commande dont on veut consulter le manuel Le shell bash 22 $ man ls CSC 3102 La première commande à connaître 䡧 man 1 cmd • man pour manuel : donne de l’aide • 1 (optionnel) indique la section d’aide de la commande – 1 : commandes • cmd est la commande dont on veut consulter le manuel Le shell bash 23 CSC 3102 Caractères spéciaux de bash 䡧 Caractères spéciaux • \ ' ` " > < $ # * ~ ? ;( ) { } (' est appelé quote ou apostrophe alors que ` est appelé antiquote ou accent grave) • Explication de chacun donnée dans la suite du cours 䡧 Désactiver l’interprétation des caractères spéciaux • \ désactive l’interprétation spéciale du caractère suivant • '…' ⇒ désactive l’interprétation dans toute la chaîne • "…" ⇒ seuls sont interprétés les caractères $ \ ` (accent grave) Le shell bash 24 CSC 3102 Script bash 䡧 Programme bash = texte bash dans un fichier texte • Interprétable par bash au lancement par l’utilisateur • Modifiable par un éditeur de texte (p. ex. emacs, vi, mais pas word !) • Un programme bash doit être rendu exécutable avec : chmod u+x mon_script.sh (notion vue dans le CI2 sur le système de fichiers) • Par convention, les noms de script sont suffixés par l’extension « .sh » – p. ex., mon_script.sh 䡧 Invocation du script nommé mon_script.sh avec • ./mon_script.sh • Avec ses arguments : ./mon_script.sh arg1 arg2 Le shell bash 25 ./ indique que le script se trouve dans le répertoire courant (notion vue dans le CI2) CSC 3102 Structure d’un script bash 䡧 Première ligne : #! /bin/bash • #! : indique au système que ce fichier est un ensemble de commandes à exécuter par l’interpréteur dont le chemin suit – par exemple : /bin/sh, /usr/bin/perl, /bin/awk, etc. • /bin/bash lance bash 䡧 Puis séquence structurée de commandes shell 䡧 Sortie implicite du script à la fin du fichier • Sortie explicite avec la commande exit Le shell bash 26 #! /bin/bash commande1 commande2 … mon_script.sh CSC 3102 䡧 Terminal et shell 䡧 Le langage bash 䡧 Les variables 䡧 Les structures algorithmiques 䡧 Arguments d’une commande 䡧 Commandes imbriquées Le shell bash 27 CSC 3102 Variables bash 䡧 Déclaration/affectation avec = (exemple ma_var=valeur) 䡧 Consultation en préfixant du caractère $ (exemple $ma_var) 䡧 Saisie interactive : read var1 var2 ... varn • Lecture d’une ligne saisie par l’utilisateur (jusqu’au retour chariot) • Le premier mot va dans var1 • Le second dans var2 • Tous les mots restants vont dans varn Le shell bash 28 CSC 3102 Variables bash 䡧 Déclaration/affectation avec = : ma_var=valeur 䡧 Consultation en préfixant du caractère $ : $ma_var 䡧 Saisie interactive : read var1 var2 ... varn • Lecture d’une ligne saisie par l’utilisateur (jusqu’au retour chariot) • Le premier mot va dans var1 • Le second dans var2 • Tous les mots restants vont dans varn Le shell bash 29 CSC 3102 Variables uploads/Sante/ ci-bash.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 13, 2022
  • Catégorie Health / Santé
  • Langue French
  • Taille du fichier 3.9065MB