Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Participez dès aujourdhui au répertoire des SSII sur technologies Microsoft Guide pour la mise à jour du profil Société pour être visible sur
Portée des variables VBA & Excel
J'ADE 2005 J’aide Au Développement des Evaluations Animateurs TICE
UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X protocoles - langages de programmation protocoles -
Synchronisation des processus père - fils
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Outils de développements
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Systèmes d’exploitation
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
Unix Raymond Ripp.
Les commandes Unix.
La sauvegarde des fichiers Dominique Dupont Suzanne Isacchi Maurice Chapelle Georges Planté-Longchamp.
CPI/BTS 2 Programmation Web Introduction au PHP
Cours de programmation
Python La structure alternative
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les instructions PHP pour l'accès à une base de données MySql
Outils de Programmation
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
FICHIERS : Définition : Algorithme général:
CHAINE DE CARACTERES : Définition :
Manipulation de formulaires en Javascript
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie I 2014.
Systèmes dexploitation et programmation de systèmes -GPA435- Cours #5: Éléments de programmation (Partie 2) Enseignant: Jean-Philippe Roberge Jean-Philippe.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
LAL Service Informatique Stage Informatique 1 Le système Unix l Multitâche, multi-utilisateur, partage des ressources l Universel : machines, portabilité.
Structure et Services « STS » Menu Structures : Divisions
Plan cours La notion de pointeur et d’adresse mémoire.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes,
Utilisation avancée de linux
FORMATION Unix/Linux CHAPITRE 1: LES PREMIERS PAS.
Shell Equipe ID Bioinformatics Training Course June 2014.
PHP 5° PARTIE : LES COOKIES
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),
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Utilisation avancée de linux Réseau Démarrage et arrêt.
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
Unix Raymond Ripp.
Variables et environnement utilisateur W. Barhoumi.
AFPA CRETEIL 14-1 Windows NT Environnement des utilisateurs Chapitre 14.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Module : Langage XML (21h)
Le Korn Shell. 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande.
Elaboré par Ahmed BESSAIDI
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
HTML Création et mise en page de formulaire
Scripts et fonctions Instructions de contrôle
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
AFPA CRETEIL 5-1 Windows NT Administration des utilisateurs Chapitre 5.
Principes et variables
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
KOSMOS 1 Outils transversaux Module 7 1.L’annuaire 2.La recherche d’informations 3.La réservation de ressources.
Elaboré par Ahmed BESSAIDI
Transcription de la présentation:

Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell

Master 1ère année Sécurité des Systèmes d’Information 2 Shell Pourquoi la programmation Shell ?  Une connaissance fonctionnelle de la programmation shell est essentielle à quiconque souhaite devenir efficace en administration de système, même pour ceux qui ne pensent pas avoir à écrire un script un jour.  Pensez qu'au démarrage de la machine Linux, des scripts shell du répertoire /etc/rc.d sont exécutés pour restaurer la configuration du système et permettre la mise en fonctionnement des services. Une compréhension détaillée de ces scripts de démarrage est importante pour analyser le comportement d'un système, et éventuellement le modifier.

Master 1ère année Sécurité des Systèmes d’Information 3 Shell  Par convention les scripts shell se terminent généralement (pas obligatoirement) par :  «.sh » pour le Bourne Shell et le Bourne Again Shell,  «.ksh » pour le Korn Shell,  «.csh » pour le C Shell,  «.tcl » pour le Tcl/Tk. Commencer un programme

Master 1ère année Sécurité des Systèmes d’Information 4 Shell  La première ligne a une importance particulière car elle permet de préciser quel shell va exécuter le script  #!/bin/sh  Exemple. #!/bin/sh # # Premier script # echo Hello World # Premier script

Master 1ère année Sécurité des Systèmes d’Information 5 Shell  La commande exit permet de mettre fin à un script.  Par défaut la valeur retournée est 0 (pas d'erreur) mais n'importe quelle autre valeur de 0 à 255 peut être précisée. On récupère la valeur de sortie par la variable $?.  On utilise plusieurs codes (1, 2, 3, etc…) différents de 0 pour indiquer un niveau d’erreur. Sortie de script

Master 1ère année Sécurité des Systèmes d’Information 6 Shell  Exemple: #!/bin/sh # # Deuxième exemple de script shell # ERREURGRAVE=2 # erreur ERREURSIMPLE=1 # warning echo "Hello World" TOTO="bon" if [ $TOTO == "erreurgrave" ]; then exit $ERREURGRAVE elif [ $TOTO == "erreursimple" ]; then exit $ERREURSIMPLE fi exit 0 # Deuxième script

Master 1ère année Sécurité des Systèmes d’Information 7 Shell Variables  On en distingue trois types :  Utilisateur  Système  et spéciales.  Le principe est de pouvoir affecter un contenu à un nom de variable, généralement un chaîne de caractères, ou des valeurs numériques.

Master 1ère année Sécurité des Systèmes d’Information 8 Shell Variables: nomenclature  Un nom de variable obéit à certaines règles :  Il peut être composé de lettres minuscules, majuscules, de chiffres, de caractères de soulignement  Le premier caractère ne peut pas être un chiffre  La taille d'un nom est en principe illimité  Les conventions veulent que les variables utilisateur soient en minuscules pour les différencier des variables système. Au choix de l'utilisateur.

Master 1ère année Sécurité des Systèmes d’Information 9 Shell Variables: Déclaration et affectation  Une variable est déclarée dès qu'une valeur lui est affectée. L'affectation est effectuée avec le signe « = », sans espace avant ou après le signe. var=Bonjour  On peut aussi créer des variables vides. Celle-ci existera mais sans contenu. var=

Master 1ère année Sécurité des Systèmes d’Information 10 Shell Variables: Accès et affichage  On accède au contenu d'une variable en plaçant le signe « $ » devant le nom de la variable. Quand le shell rencontre le « $ », il tente d'interpréter le mot suivant comme étant une variable.  Si elle existe, alors le $nom_variable est  remplacé par son contenu,  ou par un texte vide dans le cas contraire.

Master 1ère année Sécurité des Systèmes d’Information 11 Shell Variables: Accès et affichage  Pour afficher la liste des variables on utilise la commande set. Elle affiche les variables utilisateur et les variables système, nom et contenu.  La commande echo permet d'afficher le contenu de variables spécifiques.

Master 1ère année Sécurité des Systèmes d’Information 12 Shell Variables: contenu  Une variable peut contenir des caractères spéciaux, le principal étant l'espace.  Pour cela il faut soit verrouiller les caractères spéciaux un par un, soit les mettre entre guillemets ou apostrophes.  c=Salut\ les\ Copains # Solution lourde  c="Salut les copains" # Solution correcte  c='Salut les copains' # Solution correcte

Master 1ère année Sécurité des Systèmes d’Information 13 Shell Variables: contenu  Une variable peut contenir des caractères spéciaux, le principal étant l'espace.  Pour cela il faut soit verrouiller les caractères spéciaux un par un, soit les mettre entre guillemets ou apostrophes.  c=Salut\ les\ Copains # Solution lourde  c="Salut les copains" # Solution correcte  c='Salut les copains' # Solution correcte

Master 1ère année Sécurité des Systèmes d’Information 14 Shell Variables spéciales Les options du shell$- PID du dernier processus lancé en arrière-plan $! PID du shell actif$$ Code retour de la dernière commande exécutée $? ContenuVariable  Il s'agit de variables accessibles uniquement en lecture et dont le contenu est généralement contextuel.

Master 1ère année Sécurité des Systèmes d’Information 15 Shell Variables spéciales  Exemple: #!/bin/sh TMP=$$.tmp echo contenu > $TMP xterm & PID=$! sleep 5 kill -0 $PID sleep 1 kill -9 $PID

Master 1ère année Sécurité des Systèmes d’Information 16 Shell  export export FICHIER=$HOME/monfichier ou bien FICHIER=$HOME/monfichier export FICHIER Exportation

Master 1ère année Sécurité des Systèmes d’Information 17 Shell  Les accolades de base « {} » permettent d'identifier le nom d'une variable. Imaginons la variable fichier contenant le nom de fichier 'liste'. On veut copier liste1 en liste2. fichier=liste cp $fichier2 $fichier1 Accolades

Master 1ère année Sécurité des Systèmes d’Information 18 Shell  Ça ne fonctionne pas car ce n'est pas $fichier qui est interprété mais $fichier1 et $fichier2 qui n'existent pas. cp ${fichier}2 ${fichier}1  Dans ce cas, cette ligne équivaut à fichier=liste cp liste2 liste1  Les accolades indiquent que fichier est un nom de variable Accolades

Master 1ère année Sécurité des Systèmes d’Information 19 Shell  Les accolades disposent d'une syntaxe particulière. {variable:Remplacement}  Selon la valeur ou la présence de la variable, il est possible de remplacer sa valeur par une autre. Accolades et remplacement conditionnel

Master 1ère année Sécurité des Systèmes d’Information 20 Shell Accolades et remplacement conditionnel le script est interrompu et le message texte s'affiche. Si texte est absent un message d'erreur standard est affiché. {x:?texte} le texte prendra sa place. Dans le cas contraire une chaîne vide prend sa place. {x:+texte} le texte prendra sa place et deviendra la valeur de la variable. {x:=texte} le texte prendra sa place. Sinon c'est le contenu de la variable qui prévaudra. {x:-texte} Si la variable x est vide ou inexistante, SignificationRemplacement

Master 1ère année Sécurité des Systèmes d’Information 21 Shell ~]# echo $nom ~]# echo ${nom:-Jean} Jean ~]# echo $nom ~]# echo ${nom:=Jean} Jean ~]# echo $nom Jean ~]# echo ${nom:+"Valeur définie"} Valeur définie ~]# echo $nom Jean ~]# unset nom ~]# echo $nom ~]# echo ${nom:?Variable absente ou non définie} bash: nom: Variable absente ou non définie ~]# echo ${nom:?Variable absente ou non définie} bash: nom: Variable absente ou non définie ~]# echo $nom ~]# echo ${nom:=Jean} Jean ~]# echo $nom Jean ~]# echo ${nom:?Variable absente ou non définie} Jean ~]# echo $nom Jean ~]# echo ${nom:?Variable absente ou non définie} Jean Accolades et remplacement conditionnel

Master 1ère année Sécurité des Systèmes d’Information 22 Shell  export  Par défaut une variable n'est accessible que depuis le shell où elle a été définie.  La commande export permet d'exporter une variable de manière à ce que son contenu soit visible par les scripts et autres sous- shells. Les variables exportées peuvent être modifiées dans le script, mais ces modifications ne s'appliquent qu'au script ou au sous-shell. Exportation

Master 1ère année Sécurité des Systèmes d’Information 23 Shell  exemple: Exportation

Master 1ère année Sécurité des Systèmes d’Information  En plus des variables que l'utilisateur peux définir lui- même, le shell est lancé avec un certain nombre de variables prédéfinies utiles pour un certain nombre de commandes et accessibles par l'utilisateur.  Le contenu de ces variables système peut être modifié mais il faut alors faire attention car certaines ont une incidence directe sur le comportement du système. Variables système Shell

Master 1ère année Sécurité des Systèmes d’Information Variables système Shell Chemin d'accès aux bibliothèques statiques ou partagées du système. LD_LIBRARY_PATH Chemin d'accès aux pages du manuel MANPATH Définition de la langue à utiliser ainsi que du jeu de caractères. LANG Chemin complet du shell en cours d'exécution. SHELL Prompt String 2, chaîne représentant un prompt secondaire au cas où la saisie doit être complétée. PS2 Prompt String 1, chaîne représentant le prompt standard affiché à l'écran par le shell en attente de saisie de commande. PS1 Liste de répertoires, séparés par des « : » où le shell va rechercher les commandes externes et autres scripts et binaires. La recherche se fait dans l'ordre des répertoires saisis. PATH Chemin d'accès du répertoire utilisateur. Répertoire par défaut en cas de cd. HOME ContenuVariable

Master 1ère année Sécurité des Systèmes d’Information 26 Shell  exemple: bin]# echo $PS1 \W]\$ bin]# echo $PS2 > bin]# PS1='\s-\v\$ ' bash-3.00# \W]\$ ' bin]# bin]# echo $LANG fr_FR.UTF-8 bin]# MANPATH=$MANPATH:/usr/local/man Variables système

Master 1ère année Sécurité des Systèmes d’Information 27 Shell  if... then... else  La structure « if then else fi » est une structure de contrôle conditionnelle. if then else fi Structure de contrôle conditionnelle

Master 1ère année Sécurité des Systèmes d’Information 28 Shell  exemple: Structure de contrôle conditionnelle

Master 1ère année Sécurité des Systèmes d’Information 29 Shell  if... then... else  La structure « if then else fi » est une structure de contrôle conditionnelle. if then else fi Structure de contrôle conditionnelle

Master 1ère année Sécurité des Systèmes d’Information 30 Shell  exemple: Structure de contrôle conditionnelle