BTS SN IR Domaine Cours Shells et scripts shells.

Slides:



Advertisements
Présentations similaires
Utilisation avancée de linux
Advertisements

Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Formation des enseignants Formation MATLAB. Formation des enseignants MATLAB® (pour MATrix LABoratory) est un logiciel scientifique de calcul numérique.
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Emacs Laurent Pierron
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Toulibre : présentation de... par Rémy Sanchez +.
Laurent Pierron TextMate / Mac OS X macromates.com.
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
Cours 7 Programmation de base. Boucles et Tests for( in ) { } while( ) { } Exemple: x=rep(5,0) for (i in 1:5) x[i]=2*i+1 Les fonctions du type apply(),replicate()
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Le Langage JavaScript pour le web
L’ordinateur et ses composants
Ajouter le code dans une page html
I- ANALYSE DU BESOIN / Plan
Environnement de développement des BD
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Environnement du développement de BD ORACLE REPORTS 10g
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Les commandes du système de fichiers
Objectifs Maîtriser : Un environnement de travail
Micro Informatique au Cellier
Semaine #1 INF130 par Frédérick Henri.
Javadoc et débogueur Semaine 03 Version A17.
AO (Architecture des ordinateurs)
Ajouter le code dans une page html
Principes de programmation (suite)
Les objectifs du cours Savoir utiliser un Tableur
L’Instruction de Test Alternatif
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Routage S 7 - Questionnaire N°1
Développement d’applications interactive III
Introduction à Unix au LAL
Unix Raymond Ripp.
Elaboré par Ahmed BESSAIDI
Module 5 : Gestion des disques.
Initiation à l’informatique Généralités et Définitions Université de Tébessa 1 ère Année MI Y. MENASSEL.
Programmation système
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Programmation en C++ C++ de base
Système d’exploitation
Plus de 4000 langages....
Exercice PHP DEUST TMIC
Calcul Scientifique Initiation à SCILB
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Bienvenue sur Coursinfo.fr
Système d’exploitation UNIX
Présentation du système Linux
Les classes et les objets
TP 1 : Fichiers Script et Type de données et de Variables.
Formation MATLAB PRÉSENTER PAR : BOUKHIRA NASREDDINE.
02/02/2019Module Compilation1. Introduction:  petite historique sur flex/lex  définitions de l’outil flex/lex  l’objectif de l’outil flex/lex  Versions.
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Flowchart Itération Cours 04.
Introduction au Système d’exploitation Ms-DOS
STREAMS (et fichiers).
Unix Raymond Ripp.
Python Nicolas THIBAULT
Site web, Ce qu’il faut savoir ?
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
L’apprentissage par la robotique Mr. Zouari Lazhar
Transcription de la présentation:

BTS SN IR Domaine Cours Shells et scripts shells

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

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 ».

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.

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

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) :

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

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.

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

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.)

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

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

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

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

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

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

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

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.

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

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 0 # 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!

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 $?

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

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

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

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

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.

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 : http://eric-sanchis.developpez.com/linux/shell/bash-gabarit/?page=entiers-arithmetique#LXI-2

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

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

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

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

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

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 :

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.

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

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

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

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 ? ? ?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Les Scripts shells Sources Cours d’Informatique et de Réseaux Sources Auteur Lien tutoriel:script_shell Ubuntu-fr https://doc.ubuntu-fr.org/tutoriel/script_shell Programmation Unix 1 Edouard THIEL http://pageperso.lif.univ-mrs.fr/~edouard.thiel/ens/unix/slides-c01.pdf Unix/Linux II - DUT 1 re année Université de Marne La vallée http://www-igm.univ-mlv.fr/~borie/cours/unix/cours2.pdf Eric Sanchis http://eric-sanchis.developpez.com/linux/shell/