Shell Equipe ID Bioinformatics Training Course June 2014.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X protocoles - langages de programmation protocoles -
UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X Protocoles de communication Protocoles de communication.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Linux de Base Merci à Arnaud dupont.
Outils de développements
Introduction : Compilation et Traduction
FLSI602 Génie Informatique et Réseaux
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,
Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011.
Unix Raymond Ripp.
Les commandes Unix.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
CPI/BTS 2 Programmation Web Introduction au PHP
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Version 2007Administration système Linux Francis Rogard 1 SYSTEME DEXPLOITATION LINUX La ligne de commandes.
Outils de Programmation
Outils de Programmation
Outils de Programmation
Programmation multimédia 3
Perl, un langage de programmation pour les données textuelles
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Les constantes. Les boucles. Les opérateurs relationnels Les opérateurs logiques.
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.
Principes de programmation
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.
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #4: Éléments de programmation (Partie 1) Enseignant: Jean-Philippe.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
IFT 6800 Atelier en Technologies d’information
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.
Formulaires, CGI et PHP David Gross-Amblard (CNAM-Vertigo/Cédric) Transparents originaux : Philippe Rigaux Projet 3I
Programmation logique Le Langage PROLOG
Répéter dans un programme avec une Instruction itérative
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes,
Structures alternative et répétitive
Types de données fondamentaux
Faculté Polytechnique de Mons
L’essentiel du langage C
Animateur : Med HAIJOUBI
Utilisation avancée de linux
PHP & My SQL.
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Prise en main, objets et commandes de base.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
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 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Unix Raymond Ripp.
Variables et environnement utilisateur W. Barhoumi.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
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
Initiation au web dynamique Licence Professionnelle.
Les entrées-sorties élémentaires
Module 133 Développer des applications Web Introduction à PHP.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
PRO-1027 Programmation Scientifique en C
Introduction à l’utilitaire
Principes et variables
Introduction au langage PL/SQL
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Initiation au langage Perl Emmanuel Grenados Corp I&T / TE September 16th, 2008.
Transcription de la présentation:

Shell Equipe ID Bioinformatics Training Course June 2014

zLe shell est le langage de commande standard du système UNIX zBourne shell zKorn shell zC-shell zBash-shell. Shell

$ more example.sh #!/bin/bash #!/bin/bash while true do cat somefile > /dev/null cat somefile > /dev/nullcat echo. echo.echo done File example.sh must have executable rights bash example.sh./example.sh Shell Scripts

Shell Interprété Vrai langage de programmtion : test, itérations, récursion, variables, environnement, alias, variables typées, opérateurs logiques, arithmétiques et binaires, variables locales, gestion des tâches, historique et édition des commandes

Shell : variables Identificateur Identificateur Une suite quelconque de : - lettres minuscules ou majuscules - chiffres - _ (underscore) - ne commençant pas par un chiffre Valeur : toujours une chaine de caractères Valeur : toujours une chaine de caractères Opérateur d’affectation : « = » Opérateur d’affectation : « = » Evaluation d’une variable : Evaluation d’une variable :$variable Affichage de la valeur d’une variable : Affichage de la valeur d’une variable : echo $variable

Shell : compléments syntaxiques Commentaire Commentaire # la fin de la ligne est ignorée Les commandes doivent être séparées par des retours chariot ou des points virgules Les commandes doivent être séparées par des retours chariot ou des points virgules Séparateur implicite du shell = caractère espace Séparateur implicite du shell = caractère espace

Shell : redirection des entrées-sorties Entrée Entrée commande > fichier  commande 1> fichier Associe le fichier au descripteur 1 (implicitement) commande 2> fichier # erreur redirigée vers fichier commande >&2 # stdout associé à stderr commande 2>&1 # stderr associé à stdout Ex : Ex : commande 2>/dev/null 1>&2 commande 1>/dev/null 2>&1

Shell : saisie Commande << EOF Commande << EOF # la commande lit l’entrée standard jusqu’à la reconnaissance d’une ligne constituée de la chaîne EOF Ex: Ex: Cat > compile compile << FIN if [ $# -ne 2 ] ; then exit 1 fi if [ -r $1 ] then cc $1 –o $2 -0 ; size $2 else exit 2 fiFIN

Shell : lecture de la valeur d’une varaible dans un script shell Lecture de la valeur d’une variable : Lecture de la valeur d’une variable : read Variable1 …. Variablen Val1 … Valn Vali est liée à Variablei Protection des variables préalablement Protection des variables préalablement readonly Variable1 …. Variablen

Shell : délimiteurs de chaines de caractères 'chaine' : la chaîne est prise littéralement sans substitution 'chaine' : la chaîne est prise littéralement sans substitution "chaine" : la chaîne est prise littéralement après substitution des caractères $ (évaluation des variables) et \. "chaine" : la chaîne est prise littéralement après substitution des caractères $ (évaluation des variables) et \. ‘commande`: la chaine complète est remplacée par la valeur de la commande (la sortie standard de celle-ci). ‘commande`: la chaine complète est remplacée par la valeur de la commande (la sortie standard de celle-ci).

Shell : délimiteurs de chaines de caractères (exemple) x=toto echo $x toto echo ' $x ' $x echo " $x " totoX=pwd echo $x pwd echo " $x = ‘$x` « echo " $x = ‘$x` « pwd=/usr/vous

Shell : évaluation des variables $var : valeur de var; rien si var indéfinie $var : valeur de var; rien si var indéfinie ${var} : idem ${var} : idem ${var:-val} : valeur de var si définie, val dans le cas contraire; var inchangée ${var:-val} : valeur de var si définie, val dans le cas contraire; var inchangée ${var:=val} : valeur de var si définie, val dans le cas contraire; var devient val si indéfinie ${var:=val} : valeur de var si définie, val dans le cas contraire; var devient val si indéfinie ${var:?message} : valeur de var si définie, sinon la valeur de message est affichée et le shell se termine ${var:?message} : valeur de var si définie, sinon la valeur de message est affichée et le shell se termine ${var:+val} : valeur de var si définie, rien sinon. ${var:+val} : valeur de var si définie, rien sinon.

Shell : visibilité des variables Les variables sont locales à un shell Les variables sont locales à un shell Les variables du père ne sont pas implicitement transmises à ses fils (export) Les variables du père ne sont pas implicitement transmises à ses fils (export) Le fils ne peut pas modifier les variables du père. Le fils ne peut pas modifier les variables du père.

Shell : l’environnement de l’utilisateur Certaines variables sont initialisées au début de la session par le shell lui- même qui exécute deux commandes : Certaines variables sont initialisées au début de la session par le shell lui- même qui exécute deux commandes :/etc/profile $HOME/.profile (ou $HOME/.bashrc) $HOME/.profile (ou $HOME/.bashrc) ENV ENV

Shell : principales variables d’environnement HOME : répertoire initial HOME : répertoire initial PATH : chemin de recherche des exe (login) PATH : chemin de recherche des exe (login) TERM : le type de terminal TERM : le type de terminal MAIL : la boite aux lettres MAIL : la boite aux lettres SHELL : le type de shell SHELL : le type de shell LOGNAME : nom de connexion LOGNAME : nom de connexion HISTSIZE : le nombre de lignes d’historique HISTSIZE : le nombre de lignes d’historique PWD : le répertoire courant PWD : le répertoire courant

Shell : paramètres de procédure La valeur des paramètres est transmise à la procédure de la façon suivante : La valeur des paramètres est transmise à la procédure de la façon suivante : $0 : le nom de la procédure $i : le ième paramètre $* : la liste de tous les paramètres $# : le nombre paramètres fournis à la procédure Opérateurs liés aux paramètres : Opérateurs liés aux paramètres : shift[n] : décale de n positions vers la gauche la liste des paramètres et décrémente $# de n set paramètres : range de nouveaux paramètres dans l’environnement

Shell : paramètres de procédure (exemple) set ‘who am i` echo "Utilisateur : $1 " echo " Terminal : $2 " echo " Connexion : $4 $3 $5 "

Shell : case Le choix multiple : case Le choix multiple : case case in ) ;; ) ;; … esac esac La constante peut-être de la forme : constante1| constante2 | … |constanteN

Shell : case (exemple) # la commande « qui » avec la date en français set ‘who am i` echo "Utilisateur : $1 " echo "Terminal : $2 " case $3 in Jan) m=Janvier;; Feb) m=Fevier;; … Dec) m=Decembre;; esac echo " Connexion : $4 $m $5 "

Shell : for for in … for in … do do done done for for do do done done for in $* do do done done Exemple : #affichage des arguments de la ligne de commande for arg in $* do echo $arg done

Shell : expr La commande expr : La commande expr : effectue des opérations sur les expressions passées en paramètre chaque paramètre est une expression ou un opérateur Opérations arithmétiques entre chaînes numériques : Opérations arithmétiques entre chaînes numériques : + - / * % Opérations de comparaions : Opérations de comparaions : = != = Sélection d’expression Sélection d’expression expr1 | expr2 vaut expr1 si non nul et n’est pas une chaine vide, expr2 sinon expr1 & expr2 vaut expr1 si mes 2 expressions ne sont ni nulles ni vides, 0 sinon

Shell : autres variables Autres variables initialisées par le shell Autres variables initialisées par le shell $$ numéro du processus courant $!Numéro du dernier processus background $?Code retour de la dernière commande exécutée Le code retour d’une liste de commande est le code retour de la dernière commande de la liste Le code retour d’une liste de commande est le code retour de la dernière commande de la liste 0 : OK !=0 : Problème Ce code retour peut être utilisé dans les structures de contrôle à la manière d’un booléen Initialisation explicite du code retour dans uns sipt shell Initialisation explicite du code retour dans uns sipt shell exit : le code retour de la procédure sera celui de la dernière commande exécutée avant exit exit valeur : le code retour de la procédure sera valeur

Shell : if L’alternative : if L’alternative : if if if then then else else fi Exemple : if cc _0 *.c then pack *.c else rm *.o fi

Shell : || et && Exécution conditionnelle : || et && Exécution conditionnelle : || et && Pour éviter l’usage explicite du if Exemple : rm xx ls –l xx || echo Echec ls –l xx && echo Reussite echo Reussi || ls –l xx echo Pas de la && ls –l xx

La commande test La commande test permet : La commande test permet : D’exprimer des conditions sur des fichiers D’effectuer des comparaisons 2 formes 2 formes Test expression [ expression ] Le résultat d’un test est 0 si la condition est remplie et différente sinon. En shell, 0 est équivalent à vrai Le résultat d’un test est 0 si la condition est remplie et différente sinon. En shell, 0 est équivalent à vrai

La commande test Conditions sur des fichiers Conditions sur des fichiers expr option nom option : -f : vrai si nom est un fichier -d : vrai si nom est un répertoire -r : vrai si nom est un fichier lisible -w : vrai si nom est un fichier modifiable -x : vrai si nom est un fichier exécutable Comparaison de chaines Comparaison de chaines string1 = string2égalité string1 != string2inégalité -n stringvraie si longueur de string != 0

La commande test Comparaisons nmériques Comparaisons nmériques n1 -eq n2vrai si n1 = n2 -nevrai si n1 != n2 -nevrai si n1 != n2 -ltvrai si n1 < n2 -ltvrai si n1 < n2 -gtvrai si n1 > n2 -gtvrai si n1 > n2 -ge vrai si n1 >= n2 -ge vrai si n1 >= n2 Connecteurs logiques Connecteurs logiques !: non -a: and -o: or \( … \) : pour associer des expressions

Shell : while et until While : tant que la condition est vraie While : tant que la condition est vraie while while do do Done Until : itération tant que la condition est fausse Until : itération tant que la condition est fausse until until do do done