Processus et scripts. Plan du cours. Le shell

Documents pareils
«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

Introduction aux Systèmes et aux Réseaux

Introduction au Système d Exploitation Unix/Linux

Aide-Mémoire unix. 9 février 2009

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Premiers pas en Linux

Environnements informatiques

Première partie. Qu est-ce qu un script?

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

TP1 - Prise en main de l environnement Unix.

Introduction aux Systèmes et aux Réseaux

INFO-F-404 : Techniques avancées de systèmes d exploitation

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

TP1. Outils Java Eléments de correction

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2


Initiation à la Programmation en Logique avec SISCtus Prolog

1. Structure d'un programme FORTRAN 95

Vue d ensemble de Windows PowerShell

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation système I Les entrées/sorties

Outils pour la pratique

Principe, applications et limites

Cours Programmation Système

Projet Administration Réseaux

Plan du cours. Historique du langage Nouveautés de Java 7

INFO-F-309 Administration des Systèmes. TP7: NFS et NIS. Sébastien Collette Résumé

sshgate Patrick Guiran Chef de projet support

Séance n o 5 : Alternatives, gestion des utilisateurs et des processus

Sauvegarde sous MAC avec serveur Samba

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Le système GNU/Linux IUP NTIC /11/05

D r o i t s D r o i t s Q u i z z : i n t e r n e t t e x t e

EXCEL TUTORIEL 2012/2013

Algorithmique & programmation

Premiers pas. Shell? Les processus vu comme des filtres. commandes

TP 1 Prise en main de l environnement Unix

Gestion d identités PSL Installation IdP Authentic

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Client windows Nagios Event Log

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Cours 14 Les fichiers

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Algorithmique et programmation : les bases (VBA) Corrigé

Introduction à l Administration Systèmes et Réseaux

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

La Comptabilité UNIX System V Acctcom

Nouvelle version de Zonecheck, la 3.0, avec tests DNSSEC

TP1 : Initiation à l algorithmique (1 séance)

Module Communication - Messagerie V6. Infostance. Messagerie

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Nous avons utilisé plusieurs Script :

Silhouette Studio Leçon N 2

Oracle 11g. Installation et administration. Claude Duvallet 1/36

Shell Bash Niveau débutant

LINUX REMPLAÇANT WINDOWS NT

STAGE IREM 0- Premiers pas en Python

Installation de Zabbix

Installation / Sauvegarde Restauration / Mise à jour

Couche application. La couche application est la plus élevée du modèle de référence.

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

PROXY SQUID-SQARD. procédure

Développement d une application Android pour l Association des Paralysés de France

Titre: Version: Dernière modification: Auteur: Statut: Licence:

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

1 Lecture de fichiers

Conventions d écriture et outils de mise au point

Dans l'article précédent, vous avez appris

Share Monitor Manuel de l utilisateur

Technique opératoire de la division (1)

Généralités. Sans copie de sauvegarde sur support externe, vous ne pourrez jamais récupérer vos multiples encodages. 1.1 Sauvegarde des données

TP 4 de familiarisation avec Unix

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Systèmes d exploitation

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Programme awk------introduction rapide

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Le logiciel Netkit Installation et utilisation

ACTIVITÉ DE PROGRAMMATION

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Installer un domaine DNS

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

Configurer une sauvegarde FTP simple et efficace

1 Démarrage de Marionnet

Installation d ORACLE 10g sous Debian Etch


Cette fonctionnalité est paramétrable et accessible dans le module administration via le menu "Dossier / Administration".

C.M. 1 & 2 : Prise en main de Linux

Monter automatiquement des disques distants ou locaux avec automount/autofs

Table des matières. Introduction

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Serveur de sauvegardes incrémental

Transcription:

Processus et scripts Jean-Sébastien Coron Université du Luxembourg Contrôle des processus. Les variables shell Scripts simples. Découpage de chaines. Exécution conditionnelle. Plan du cours Le shell Un shell est un programme qui lit et exécute les commandes de l utilisateur. Un shell permet aussi : De controler les processus. De rediriger l entrée et/ou la sortie. D écrire des scripts. Script shell: Fichier texte contenant une série de commandes. Comme fichier.bat sous MS-DOS. De nombreux shell existent: sh, bash, csh, tcsh. 1 Contrôle des processus Contrôle des processus Le shell permet de contrôler les processus qui s exécutent. Un processus s exécute soit en foreground, soit en background. Foreground. Le processus reçoit les commandes du clavier et renvoie sa sortie à l écran. Un seul processus en foreground par shell. Peut être suspendu avec Ctrl-Z. Relancé en foreground par fg, en background par bg. Définitivement interrompu en tapant Ctrl-C.

Contrôle des processus Exécution d un processus en background: On utilise le caractère &. $ find -name hello.txt & [1] 2812 $ Cherche un fichier nommé hello.txt dans le répertoire courant. Le processus s exécute en tache de fond. 1 représente le numéro du processus s exécutant en background. 2812 représente son PID. jobs permet d avoir la liste de tous les processus en background. Essayez la commande sleep 5. 1) Que fait cette commande? Exécutez cette commande en background. 2) Quelle est la commande à taper? Affichage des processus La commande ps permet d avoir la liste des processus qui $ ps PID TTY TIME CMD s exécutent sur la machine. 2653 con 00:01:03 bash 3672 0 00:00:05 find 3687 0 00:00:00 ps Pour stopper un process, on utilise la commande kill. kill 3672 stoppe l exécution de la commande find. Exécutez sleep 100 en foreground, suspendez cette tache et faites continuer son exécution en background. Affichez la liste des processus en background. Affichez la liste de tous les processus. 3) Quelles sont les commandes à taper et quel est le résultat obtenu pour chacune des commandes? Exécutez sleep 100 en background, et utilisez la commande kill pour faire stopper le processus. 4) Quelle est la commande à taper? Il est possible de combiner plusieurs commandes sur une même ligne de commande en utilisant les opérateurs ;, && et. Essayez de combiner les commandes cat file (pour un fichier file qui n existe pas) et echo bonjour en utilisant chacun des 3 opérateurs. Inversez l ordre des commandes et essayez une nouvelle fois avec les 3 opérateurs. 5) Selon quelles règles les commandes sont-elles exécutées pour chacun des 3 opérateurs? 2

Les variables shell Une variable est une donnée identifiée par un nom. On accède au contenu d une variable en ajoutant $. $ var= hello world $ echo $var hello world Pour qu une variable soit visible en dehors du shell, il faut l exporter vers l environnement. export var. Exemple: la variable PAGER est utilisée par man pour déterminer comment afficher le texte. export PAGER=cat: tout s affiche à la fois. export PAGER=less: page par page. La variable PATH Variable d environnement qui donne la liste des répertoires que le shell recherche pour exécuter des commandes. Si PATH contient /bin/:/usr/bin:/usr/local/bin:. alors pour la commande cat, le shell va chercher /bin/cat, /usr/bin/cat,... Si le PATH contient., alors il cherche aussi dans le répertoire courant. On peut taper macommande au lieu de./macommande. PATH=$PATH:. Evaluation des variables Le shell substitue les valeurs des variables dans un texte avant son évaluation. Pour modifier l évaluation, on peut utiliser ou. Les guillemets : Permet de grouper des mots, supprime le remplacement des méta-caractères, sans supprimer le remplacement des variables. x=hello world world: command not found. x="hello world" est correct. y="phrase=$x"; echo $y phrase=hello world. 3

Les quotes Les quotes Groupent les mots et suppriment toute évaluation. Exemple: $ y=hello $ ls fich1 fich2 $ echo le caractère * $y le caractère fich1 fich2 hello $ echo "le caractère * $y" le caractère * hello $ echo le caractère * $y le caractère * $y Evaluation des commandes Les back-quotes ( ) permettent de substituer le résultat d une commande. $ echo the date is date the date is Tue Nov 17 15:01:44 2004 On peut stocker le résultat d une commande dans une variable. $ x= ls $ echo $x fich1 fich2 Equivalent: $ x=$(ls) Découpage des chemins Les commandes dirname et basename sont utiles pour découper un chemin en répertoire/nom de fichier. $ dirname /vers/mon/rep/fich.txt /vers/mon/rep $ basename /vers/mon/rep/fich.txt fich.txt 2 Les scripts shell Les scripts shell Un script shell est un fichier texte contenant des commandes du shell. Permet l automatisation des taches. 4

Un script simple Soit le script suivant dans le fichier simple #!/bin/bash # commentaire echo Le nombre d argument est $# echo Les arguments sont $* echo Le premier est $1 echo Le numéro du process est $$ echo Entrez un nombre: read nombre echo Le nombre entré est $nombre Pour exécuter le script, il faut rendre le fichier simple exécutable (chmod). Implémentez le script simple décrit dans le cours. Utilisez un pipe pour faire afficher par le script le nombre que vous avez entré est 5 sans que l utilisateur ne tape de nombre au clavier. 6) Quelle est la commande à utiliser? 3 Découpage des chaines Découpage des chaines Les caractères ## permettent d éliminer la plus grande chaîne en correspondance avec le motif, en partant du début. $ x= babar $ echo ${x##*ba} r $ y= hello.txt $ echo ${y##*.} txt Le caractère # élimine la plus courte. $ x= babar $ echo ${x#*ba} bar Découpage des chaînes % élimine la plus courte correspondance en partant de la fin, et %% élimine la plus longue. $ y= hello.tar.gz echo ${y%.*} hello.tar $ y= hello.tar.gz echo ${y%%.*} hello 5

Découpage des chaînes ${string:position} Extrait la sous-chaîne de string à partir de $position. $ y= bonjour echo ${y:3} jour ${string:position:length} Extrait $length caractères de la sous-chaîne de string à partir de $position. $ y= bonjour echo ${y:3:2} jo La commande cut La commande cut Permet de sélectionner certaines parties des lignes d un fichier ou de l entrée standard (si aucun fichier n est précisé). cut [-c] [-f] list [-n] [-d delim] [-s] [file] Options: -c list: spécifie les caractères à sélectionner. -c2-5 sélectionne les caractères 2 à 5 de chaque ligne. La commande cut Options: -f list: sélectionne pour chaque ligne les champs spécifiés, les champs étant délimités par un caractère délimiteur. -f1,5 sélectionne les champs 1 et 5. -d delim: spécifie le caractère délimiteur. -s: supprime les lignes sans caractère délimiteur. list: Liste de nombres séparés par une virgule, avec - pour indiquer un intervalle. 1,2,3,5 ou 1-3,5 Exemples Exemples: $ echo "hello" cut -c 2-4 ell $ echo "he ll o wo" cut -f2,3 -d ll o On souhaite écrire un script taille permettant d afficher la taille d un fichier de la façon suivante: $ ls -l monfich.c -rw-r--r-- 1 guest None 60 Oct 14 11:44 monfich.c 6

$ taille monfich.c 60 La commande cut permet de sélectionner certaines parties des lignes d un fichier ou de l entrée standard (si aucun fichier n est spécifié). Par exemple, la commande cut -c 2-5 fich sélectionne les caractères 2 à 5 de chacune des lignes du fichier fich. $ echo "hello" cut -c 2-4 ell En combinant les commandes ls -l et cut avec un pipe, on peut donc sélectionner dans le résultat de la commande ls -l les caractères correspondants à la taille du fichier. 7) Quelle est la commande à taper pour afficher seulement la taille d un fichier donné (par exemple, toto.c)? Le problème est qu il reste des espaces à éliminer avant le résultat lui-même: au lieu d avoir: $ commande 60 on voudrait avoir: $ commande 60 La commande tr -d permet d éliminer les espaces d une chaîne de caractère en entrée. $ echo "un deux trois" tr -d undeuxtrois 8) Quelle est la commande à taper (combinant ls -l, cut et tr) permettant d obtenir le résultat voulu? 9) Ecrire un script taille prenant en entrée un fichier et affichant sa taille, comme dans l exemple donné au début. 4 Exécution conditionelle Execution conditionnelle Il est possible d exécuter une suite d instruction sous une certaine condition. if [ test ] then commande-si-vrai else commande-si-faux fi Le test peut être une condition sur un fichier, ou une comparaison de chaine ou de valeur. Ne pas oublier les espaces dans if [ test ] then 7

Conditions sur les fichiers [ -s file ]: vrai si le fichier existe et est non vide. [ -f file ]: vrai si c est un fichier ordinaire. [ -d file ]: vrai si c est un répertoire. [ -r file ]: vrai si le fichier est libre en lecture. [ -w file ]: vrai si le fichier est libre en écriture. [ -x file ]: vrai si le fichier est exécutable. Exemple Afficher le contenu d un fichier s il existe. #!/bin/bash if [ -f $1 ] then cat $1 fi Créer un répertoire toto s il n existe pas déjà. #!/bin/bash if [! -d toto ] then mkdir toto fi Ecrire un script existe qui détermine si un fichier existe ou pas. $ existe toto Le fichier toto existe $ existe tata Le fichier tata n existe pas 8