UNIX / LINUX. Page 1 sur 63

Dimension: px
Commencer à balayer dès la page:

Download "UNIX / LINUX. Page 1 sur 63"

Transcription

1 UNIX / LINUX Page 1 sur 63

2 Table des matières LE BOURNE SHELL - Cours/TP N l PRESENTATION Que fait le shell? Les scripts Un premier script CREER ET UTILISER DES VARIABLES Création d une variable utilisateur Affichage d'une variable avec la commande echo Saisie au clavier avec la commande read Affectation du résultat d'une commande à une variable 10 l ère possibilité 10 2 ème possibilité (Bash et K-Shell) Autres commandes 11 La commande unset 11 La commande readonly 11 Création d'un tableau avec la commande set (seulement le K-Shell!! ) LES VARIABLES PREDEFINIES (ÉCRIRE EN MAJUSCULE) Quelques variables système Comment modifier la variable PATH La commande env La commande set LES VARIABLES INTERNES AU SHELL La variable? Les paramètres de position ou arguments d'un script La commande shift 16 Page 2 sur 63

3 1.4.4 Initialisation des arguments à l intérieur d un script Les variables $,! et EXERCICES 17 LE BOURNE SHELL - Cours/TP N LA COMMANDE TEST Test sur les chaînes de caractères Comparaison arithmétique (sur les entiers) Tests sur les fichiers Autre écriture de la commande test Association de test LES COMMANDES EXECUTION CONDITIONNELLE La commande && La commande La commande if la commande exit [n] 27 LE BOURNE SHELL Cours TP N COMPLEMENTS SUR L OPERATEUR $ 30 Extraction d une sous chaîne LA COMMANDE case Syntaxe Exemples Exercices LA BOUCLE for Syntaxe Examples Exercices LA BOUCLE while 37 Page 3 sur 63

4 3.4.1 Syntaxe Exemple LA BOUCLE until Syntaxe Exemple CREATION DE MENUS (K-Shell et bash) Syntaxe Exemple INTERRUPTION DES BOUCLES LA COMMANDE expr LA COMMANDE let (bash et K-shell) AUTRE POSSIBILITE POUR LES CALCULS ARITHMETIQUE (K-Shell et bash2) LES FONCTIONS EXERCICES 47 TP Gestion des processus 49 TP Gestion des utilisateurs 51 TP initiation au shell 53 Commandes Linux Aide Mémoire 57 Page 4 sur 63

5 LE BOURNE SHELL - Cours/TP N l 1.1. PRESENTATION Le terme de shell désigne l interpréteur de commandes d'unix. Le shell est un programme automatiquement lancé par le système à la connexion (login) de chaque utilisateur. Chaque personne connectée dispose de son propre shell. On rappelle que le système Unix est multitâches et multi utilisateurs ; chaque shell représente un processus et il y a au minimum autant de processus shell qui s'exécutent que d'utilisateurs connectés. Le processus shell d'un utilisateur se termine normalement lorsqu'il se déconnecte Que fait le shell? - Le shell affiche le prompt indiquant à l'utilisateur que le système est prêt. - L'utilisateur tape des caractères sur le clavier puis les valide par un appui sur la touche Entrée, ce qui correspond à une ligne de commande. Le shell analyse alors la syntaxe de la ligne tapée, vérifie sa validité puis lance l'exécution de la commande demandée. - Si la ligne semble correcte mais incomplète, il affiche le prompt secondaire qui est le signe supérieur > indiquant ainsi qu'il attend la suite. - Il affiche un message d'erreur s'il détecte une erreur de syntaxe. De plus, le shell offre toutes les possibilités d'un langage de programmation. Le shell permet de définir des variables, il dispose des instructions nécessaires pour effectuer des saisis, des tests ; des boucles... Il existe plusieurs shells. Le Bourne Shell qui fait l'objet de ce cours est le plus répandu et le plus ancien. Les autres shells sont le C-Shell, le Korn Shell, et le Bash (Bourne Another shell) lequel englobe le Bourne Shell et une partie des fonctionnalités du K-Shell. Ecrire un programme en shell peut s'effectuer de 2 manières : on tape les instructions en ligne de commande ou on les place dans un fichier texte dont on lancera par la suite l'exécution. Page 5 sur 63

6 1.1.2 Les scripts Un script est un fichier texte contenant un programme constitué de commandes Unix et d'instructions qui respectent la syntaxe du langage shell. Un script est créé avec un éditeur de texte. Ce script doit alors être rendu exécutable (droit x) si ce droit ne lui a pas été donné lors de sa création. Un script est rendu exécutable grâce à la commande : chmod +x NomFichierScript. On l'exécute alors comme une commande Unix en tapant NomFichierScript ou en tapant./ NomFichierScript si le chemin de recherche ne contient pas le répertoire courant. Un script peut être aussi exécuté avec la commande sh NomFichierScript. Un script peut contenir des commentaires, une ligne commentaire doit toujours débuter avec le signe dièse #. Remarque : il existe 2 types de commande sur un système Unix : Les commandes qui sont des fichiers exécutables (fichiers binaires) créés par exemple après une compilation. Les commandes qui sont des scripts, c.a.d. des fichiers textes écrits en langage shell Un premier script Utiliser un éditeur de texte, créer un fichier s1 contenant les lignes suivantes : Rendre s1 exécutable par chmod +x sl Lancer son exécution par./s1 echo Test 1er script echo Contenu du répertoire courant : ls -l echo Fin du script Ce script très simple se limite à contenir quelques instructions d'unix. Page 6 sur 63

7 1.2 CREER ET UTILISER DES VARIABLES L'utilisateur peut créer des variables. Ces variables sont non typées et il est inutile de les déclarer avant de les utiliser. Une variable utilisateur créée pendant une session est détruite lorsque l'utilisateur se déconnecte Création d une variable utilisateur La variable var contient le texte Bonjour var= Bonjour Il ne faut pas d'espace de part et d'autre du signe =. num=42 La variables num contient le caractère 2 (et non la valeur numérique 2!). Si le texte contient plusieurs mots séparés par des espaces, il faut mettre le texte entre guillemets ou entre apostrophes. nom="jean Aimar" La variable ch contient la chaîne de caractères Jean Aimar. La commande ch=" Jean Aimar " est équivalente à ch=' Jean Aimar'. Page 7 sur 63

8 1.2.2 Affichage d'une variable avec la commande echo On récupère le contenu d'une variable en faisant précéder son nom du signe $. var=bonjour echo Svar Bonjour num=42 echo $num 42 ch="attention espace" echo $ch Attention espace L'affichage de plusieurs variables est possible. a=monsieur echo Bonjour $a Bonjour Monsieur echo "Bonjour $a" Bonjour Monsieur b= bonjour écho $b $a bonjour Monsieur echo '$a $b' $a$b Comme le montre le dernier exemple, il faut mettre la chaîne entre apostrophes pour éviter l'interprétation des caractères spéciaux du shell, ici le caractère $. Les caractères spéciaux $, \, et " conservent leur signification quand la chaîne est placée entre guillemets. On peut afficher des guillemets si on les place entre apostrophes. On peut, dans une chaine placée entre guillemets, afficher un caractère spécial du shell en le faisant précéder d'un antislash. Page 8 sur 63

9 echo echo "\"" a=monsieur echo 'Bonjour $a' Bonjour $a a=l b=2 c=$a+$b echo $c 1+2 On constate que l'addition n'a pas été effectuée, c'est normal car a et b contiennent les caractères 1 et 2 et non pas les chiffres 1 et 2, il y ici «concaténation» des chaînes à l'affichage. La commande echo -n arg affiche son argument sans retour au début de la ligne suivante. La commande echo -e toto \\t titi affiche toto titi séparés par une tabulation horizontale. Faire man echo pour connaître les possibilités de la commande echo Saisie au clavier avec la commande read La commande read permet à l'utilisateur d'effectuer des saisies (au clavier) et de les affecter à des variables. Soit un script saisiel : echo Taper quelque chose: read val echo $val chmod +x saisie1./saisie1 Taper quelque chose : Page 9 sur 63

10 bonjour bonjour On peut ainsi initialiser plusieurs variables Soit un script saisie2 : echo Taper trois mots read vall val2 val3 chmod +x saisie 2 echo Tapé : $val1 $vai2 $val3./saisie2 Taper trois mots bonjour les blaireaux Tapé : bonjour les blaireaux Affectation du résultat d'une commande à une variable On appelle aussi cela substitution de commande. l ère possibilité Le résultat de la commande date est affecté à une variable today. today= `date` (accent grave!) echo $today Tue Nov 26 16:01:09 EST 1992 La variable today contient le résultat de la commande date au moment où today est créée. La commande doit être placée entre 2 apostrophes inversées ( ) obtenu habituellement au clavier par AltGr 7. Page 10 sur 63

11 users= `who wc -1` echo $users 3 La variable users contient le nombre d'utilisateurs connectés à l'instant où cette variable users est créée. La commande suivante est aussi valable : echo `who wc -l` Cette commande affiche le nombre d'utilisateurs connectés au moment où elle est exécutée. 2 ème possibilité (Bash et K-Shell) La commande est placée entre parenthèses et précédée du signe $ var=$(pwd) echo $var /home/jean/essai Autres commandes La commande unset La commande unset nom_variable permet de supprimer la variable dont le nom est donné en argument. La commande readonly La commande readonly est nom_variable permet de protéger la variable dont le nom donné en argument. Cette variable ne pourra plus être supprimée par la commande unset et son contenu ne pourra pas être modifié. Une variable protégée sera toujours «visible» dans le shell où elle a été définie. Elle est détruite avec la mort de ce shell. La commande readonly sans paramètre liste les variables protégées. Page 11 sur 63

12 Création d'un tableau avec la commande set (seulement le K-Shell!! ) set -A NomTabieau val1 val2 val3... Exemple : set -A tab aaa bbb cccc dddd eee Affichage du 3 ème élément du tableau, les éléments sont indicés à partir de 0 : écho ${tab[2]} cccc Modification du 1 er élément : tab[0]=new La liste de tous les éléments est donnée par ${nom_tableau[*]}. Le nombre d'éléments est donné par ${#nom_tableau[*]}. Longueur d'une chaîne de caractères var=toto echo ${#var} LES VARIABLES PREDEFINIES (ÉCRIRE EN MAJUSCULE) Les variables sont dites prédéfinies car elles sont créées par le système et leur nom est connu. Ces variables appelées aussi variables système dont le nom est prédéfini sont utilisables à tout moment, leur nom est par convention en lettre majuscule. Les variables systèmes permettent essentiellement de fixer l'environnement de travail de Page 12 sur 63

13 chaque utilisateur. Certains programmes d'utilisation courante ont besoin des variables système pour fonctionner correctement. Les variables communes à tous les utilisateurs sont en général initialisées par le système dans le fichier /etc/profile. Les variables propres à chaque utilisateur sont elles initialisées dans un fichier de configuration de nom.bash_profile ou.profile ou.bash_rc situé dans le répertoire de connexion de chaque utilisateur. Tous ces fichiers sont lus par le shell lors de la connexion de l'utilisateur. Chaque utilisateur peut créer ses propres variables (chapitre 2) et les initialiser dans son fichier.bash_profile ou.bash_rc ou.profil situé dans son répertoire de connexion. L'utilisateur lui-même peut y modifier les variables système mais cela doit être fait avec circonspection Quelques variables système HOME : cette variable précise le répertoire d'accueil (connexion) au moment du login. PATH : précise les répertoires de recherche pour les commandes. Exemple : PATH=/usr/biE:/bin:.:/usr/java/bin indique que la commande sera recherchée dans /usr/bin, puis dans /bin, puis dans le répertoire courant symbolisé par le point ( :.: est équivalent à :: ) et, enfin, dans /usr/java/bin. Le signe : est le séparateur dans la liste des répertoires. PSI : défini le «prompt» d'unix, habituellement le signe $ pour les utilisateurs. PS2 : précise le «prompt» secondaire d'unix, affiché à chaque fois que la touche «Entrée» a été appuyée alors que la ligne de commande est incomplète, habituellement le signe >. SHELL : contient par défaut le nom du shell de login. TERM : spécifie le type de terminal utilisé, utile notamment à l'éditeur vi. Page 13 sur 63

14 LOGNAME : initialisé avec le nom de l'utilisateur lors de la connexion. MAIL : nom complet du fichier boîte aux lettres dans lequel sera déposé le courrier. CDPATH : répertoires à examiner lors de la commande cd. IFS : défini les caractères séparateurs de champs pour l'analyse d'une ligne de commande par le shell ( espace, tabulation et retour à la ligne) Comment modifier la variable PATH La modification consiste à ajouter un nouveau chemin de recherche tout en gardant les précédents. Plusieurs situations sont possibles et à chacune correspond en général plusieurs solutions. Prenons le cas d'un système Linux où un utilisateur jean crée dans son répertoire de connexion un répertoire bin destiné à contenir ses propres commandes. Il veut maintenant ajouter le chemin /home/jean/bin à la variable PATH. Il faut écrire pour cela : PATH=$PATH:/home/jean/bin On réinitialise ainsi la variable PATH en concatenant le contenu de l'ancien PATH et la chaîne /home/jean/bin. Cette instruction peut être placée dans le fichier /home/jean/.bashjprofile validant ainsi ce nouveau chemin à chaque session La commande env La commande env (comme environnement) affiche les variables système accessibles à l'utilisateur La commande set La commande set sans argument affiche l'ensemble des variables (système et utilisateur) accessibles par l'utilisateur plus d'autres éléments. Page 14 sur 63

15 1.4 LES VARIABLES INTERNES AU SHELL Leur valeur est gérée par le shell La variable? Elle contient le code de retour de la dernière commande exécutée. Le code de retour d'une commande qui s'est convenablement exécutée vaut toujours 0 ; dans le cas contraire, sa valeur est différente de 0 mais non exactement définie pour tous les Unix. Supposons un fichier de nom faux qui n'existe pas et un fichier vrai qui lui existe.. cat faux cat : faux : Aucun fichier ou répertoire de ce type echo $? 1 cat vrai je suis un fichier qui, existe echo $? Les paramètres de position ou arguments d'un script La forme générale d'une commande est cmd arg1 arg2 arg3... où cmd est le nom d'une commande; par exemple 1s -1 /usr où le 1 er argument est -1 et le 2 ème /usr. Comme pour une commande Unix, un script peut recevoir et traiter des arguments. La variable $0 représente le nom de la commande (ici ls), la variable $1 le 1er argument (ici - I), la variable $2 le 2 eme argument (ici /usr) et ainsi de suite s'il y avait des arguments supplémentaires. Les paramètres de position sont les arguments d'un script qu'un utilisateur devra fournir sur la ligne de commande. Soit le script s3 très simple dont Page 15 sur 63

16 l'exécution est lancée avec 3 arguments../s3 jean pierre paul s3 un :jean deux : pierre echo $0 echo un : $1 echo deux : $2 echo trois : $3 echo Nombre : $# echo $* trois : paul Nombre : 3 jean pierre paul La variable # représente le nombre d'arguments transmis sur la ligne de commande. La variable * est une chaîne de caractères constituée de tous les.arguments tapés sur la ligne de commande. 4.3 La commande shift Cette commande entraîne un décalage des arguments, le contenu de $1 est remplacé par celui de $2, celui de $2 est remplacé par celui de $3 et ainsi de suite. Soit le script s4 qui reçoit 3 arguments../s4 jean pierre paul Avant shift 1 : jean 2 : pierre 3 : paul echo Avant shift echo 1: $1 2 : $2 3 $3 Shift echo Après shift echo 1: $1 2 : $2 Après shift 1 : pierre 2 : paul Le 2 ème argument pierre se retrouve en $1, le 3 ème paul en $2. $0 n'est pas modifié, il contient toujours le nom du script. Page 16 sur 63

17 Avant shift $0 $1 $2 $3 $4 Après shift $0 $1 $2 $: L'ancienne valeur de $1 est perdue. $0 n'est pas modifié, il contient toujours le nom du script Initialisation des arguments à l intérieur d un script La commande set permet d'initialiser les paramètres de position à l'intérieur d'un script comme le montre le script s5../s5 AAA Bbb CC set AAA Bbb CC echo $1 $2 $3 echo $# 3 Il est aussi possible d'initialiser les paramètres de position avec les résultats d'une commande en écrivant une ligne du type set `commande` ou set $(commande) Les variables $,! et - La variable $ contient le numéro du processus en cours d'exécution. Le système affecte automatiquement un numéro à chaque processus. La commande echo $$ affiche, Le N du processus courant. Taper cette instruction en ligne de commande affiche le N du processus shell. > La variable! contient le numéro du dernier processus lancé en arrière plan. > La variable - contient la liste des options du shell. 1.5.EXERCICES 5.1 Tester les exemples du cours donné ci-dessus pour voir leur fonctionnement et vérifier les résultats obtenus. 5.2 Taper la commande env et relever le contenu des variables PSI, PS2, PATH et HOME. Page 17 sur 63

18 Vérifier avec la commande echo le contenu de chacune de ces variables. 5.3 Affecter la chaîne «Il dit» à une variable vl et la chaîne «bonjour» à une variable v2. Vérifier les contenus de vl et v2 avec echo. Taper la commande set et vérifier que les variables vl et v2 sont bien présentes. Afficher la chaîne «Il dit bonjour». Supprimer v2. Taper écho $vl $v2, que peut-on observer? Taper set. Conclure. 5.4 Donner une solution pour afficher avec la commande écho le texte suivant. Il dit " Tu prends ces $100?" et tout se passa bien. 5.5 Changer le prompt PS1 pour avoir le signe %. Revenir au prompt normal. 5.6 Affecter à une variable ch la chaîne /usr. Taper : 1s $ch cd $ch pwd Revenir dans son répertoire de connexion. 5.7 Ecrire un script qui demande la lecture des 4 variables puis qui affiche ces variables. 5.8 Ecrire un script qui reçoit 4 arguments, les affiche ainsi que leur nombre, puis qui effectue un décalage, affiche les variables restantes et leur nombre, et ainsi de suite jusqu'à qu'il n'y ait plus de variable. 5.9 Que se passe t'il si on essaye de décaler plus d'arguments qu'il n'en existe à l'aide de la commande shift (voir avec l'exercice 5.8)? 5.10 Ecrire un script qui affiche «Ouel fichier voulez vous afficher?», effectue la saisie du nom du fichier concerné, puis affiche le fichier avec et enfin affiche le code de retour après cette commande. Tester ce script dans les 2 cas de fonctionnement possibles. Page 18 sur 63

19 5.11 Tester le mécanisme de substitution d'une commande avec les variables suivantes : Monecho=`echo bonjour` dir=`ls l` Tester l'utilisation de ces variables. Faire des tests en utilisant la 2 eme possibilité de substitution présentée dans le cours Utiliser la commande set pour initialiser les arguments d'un script au résultat de la commande date; puis afficher chacun des arguments ainsi obtenus La commande printf permet également d'afficher à l'écran. Utiliser l'aide man printf et effectuer quelques essais de cette commande. IMPORTANT : un script shell doit en toute rigueur commencer par une ligne contenant uniquement #!/bin/bash pour indiquer quel est l'interpréteur de commandes utilisé pour exécuter le script. Page 19 sur 63

20 LE BOURNE SHELL - Cours/TP N LA COMMANDE TEST La syntaxe générale de l'instruction est test expression. La commande test permet d'évaluer une expression se rapportant à 3 types possibles de données : Des chaînes de caractères. Des valeurs numériques. Des fichiers. Un test vrai retourne la valeur 0 (récupérée dans $?) Test sur les chaînes de caractères test s1 = s2 vrai si s1 et s2 sont identiques ; par exemple : test $ch = "oui" test s1!= s2 vrai si s1 et s2 sont différentes ; par exemple : test $chl!= $ch2 test si test -n s1 test -z si vrai si s1 n'est pas une chaîne nulle (chaîne non vide) ; par exemple : test $ch vrai si la longueur de s1 n'est pas nulle (chaîne non vide). vrai si la longueur de s1 est nulle (chaîne vide). Attention à l'espace de part et d'autre du signe = Page 20 sur 63

21 echo $var test "$var" echo $? 1 test-n "$var" echo $? 1 test-z "$var" écho $? 0 var=titi test "$var" = titi écho $? 0 test"$var" = tutu écho $? 1 Attention : Il faut en toute rigueur, même si cela ne semble pas nécessaire, mettre entre guillemets (double quote) l'expression $NomVariable quand on veut analyser la chaîne decaractères contenue par cette variable. Les guillemets sont nécessaires dans le cas où la variable rencontrée est vide Comparaison arithmétique (sur les entiers) Ces tests comportent toujours 3 paramètres : le 1 er et le 3 ème contiennent les variables/valeurs à comparer, le 2 ème définit le type de la comparaison. Les types de comparaison sont les suivants : test n1 -eq n2 vrai si n1 et n2 sont égaux ; par exemple test $n -eq 10. test n1 -ne n2 vrai si n1 et n2 sont différents ; par exemple test $x -ne $y Page 21 sur 63

22 test n1 -gt n2 vrai si n1 est supérieur à n2. test n1 -ge n2 vrai si n1 est supérieur ou égal à n2. test n1 -lt n2 vrai si n1 est inférieur à n2. test n1 -le n2 vrai si n1 est inférieur ou égal à n2. chiffre=10 test "$chiffre" -gt 9 écho $? 1 test "$chiffre" -gt 8 écho $? 0 Le shell considère les nombres n1 et n2 comme des chaînes de caractères mais comme chaque nombre possède son code ASCII, la comparaison de nombres devient une comparaison de chaînes Tests sur les fichiers La syntaxe générale de la commande est la suivante : test -condition nom_fichier test -f nom_fichier vrai si nom_fichier est un fichier ordinaire. test -d nom_fichier vrai si nom_fichier est un répertoire. test -c nom_fichier vrai si nom_fichier est un fichier en mode caractère. test -b nom_fichier vrai si nom_fichier est un fichier en mode bloc. test -p nom_fichier vrai si nom_fichier est un tube nommé. test -r nom_fichier vrai si on a l'autorisation en lecture sur nom_fichier. test -w nom_fichier vrai si on a l'autorisation en écriture sur nom_fichier. test -x nom_fichier vrai si on a l'autorisation d'exécution sur nom_fichier. test -s nom_fichier vrai si le fichier nom_fichier n'est pas vide (taille >0). Page 22 sur 63

23 ls-1 -rw-rw-rw- 1 P3 group 1150 Mai 13 23:15 essai -rw-rw-rw- 1 P3 group 0 Mai 13 23:15 b drwx-r-x-- 2 p3 group 1024 Mai 15:12:40 recettes test -f essai echo $? 0 test -x essai echo $? 1 a=recettes test -d $a eho $? 0 test -s b eho $? Autre écriture de la commande test La commande test expression peut être remplacée par [ expression ], ne pas oublier l'espace entre chaque crochet et expression. Exemples : test -n "$ch1" est équivalent de [ -n "$chl " ] test "$nb" -eq 10 est équivalent de [ "$nb" -eq 10 ] espace espace espace espace Page 23 sur 63

24 2.1.5 Association de test Divers tests peuvent être combinés sur une même ligne de commande pour effectuer un ET ou un OU logique. > L'option -a réalise un ET entre 2 tests. Le test suivant est vrai si les chaînes chl et ch2 sont vides. test z "$chl" -a -z "$ch2" ou [ -z "$chl" -a -z "$ch2" ] > L'option -o réalise un OU entre 2 tests. La ligne suivante teste si f2 est un fichier dans le cas où fl n'est pas un fichier. test -f f1 -o -f f2 ou [ -f fl -o -f f2 ] > L'opérateur! est utilisé pour retourner la négation d'une condition. Le test suivant est vrai si dir n'est pas un répertoire. test! -d dir 2.2. LES COMMANDES EXECUTION CONDITIONNELLE La commande && La syntaxe générale est la suivante : instruction1 && instruction2 && instruction3... Si la commande instruction1 réussit (retourne ainsi une valeur vraie) alors la commande instruction2 est exécutée, si instruction2 réussit alors instruction3 est exécutée... grep include exo.c && cat exo.c Si le fichier exo.c contient la chaîne include alors on visualise exo.c. L'opérateur && permet d'exécuter une suite de commandes, chacune n'étant exécutée que si la précédente l'a été de façon satisfaisante. Page 24 sur 63

25 2.2.2 La commande La syntaxe générale est la suivante : instruction1 instruction2 Instruction3... Si la commande instruction1 échoue (retourne ainur fausse) alors la commande instruction2 est exécutée, si instruction2 échoue alors instruction3 est exécutée... grep include exo.c cat exo.c Si le fichier exo.c ne contient pas la chaîne include alors on visualise exo.c. L'opérateur permet d'exécuter une suite de commandes jusqu'au succès de l'une d'elles, après quoi les instructions suivantes ne sont plus exécutées La commande if La syntaxe de base est la suivante if expression évaluable then liste de commandes [ else liste de commandes ] Expression évaluable peut être une expression construite avec la commande test ou bien une expression construite avec une commande qui retourne un résultat vrai ou faux. fi La section else marquée entre crochets [ ] est optionnelle. echo Aimez vous le shell? read var if test "$var" = oui Soit le script s6 ci-contre :./s6 Aimez-vous le shell? fi then eco $var!,tant mieux. else echo Partez en vacances! Page 25 sur 63

26 oui oui!, tant mieux../s6 Aimez-vous le shell? bof Partez en vacances! Les autres syntaxes possibles sont : if expression évaluable then fi commandes Pour réaliser plusieurs conditions imbriquées on peut utiliser la forme suivante : If If then... then... else if... elif... then... then... else... else fi fi fi La commande elif remplace avantageusement else if, il n'y a pas de fi pour terminer un elif ".... ~ ~~ Soit le script s7 ci contre :./s7 Aimez-vous le shell? Non Partez en vacances! echo Aimez-vous le shell? read var if test "$var" = oui then echo $var tant mieux. elif test "$var" = bof then écho Persistez;! else echo Partez en vacances! fi Page 26 sur 63

27 2.2.4 la commande exit [n] Elle permet de mettre fin à un script et de retourner une valeur. Retourne 0 si la valeur n n'est pas précisée. if [ -f.bash_profile ] Elle permet de mettre fin à un script et de retourner une valeur. fi then echo Profil existant; ; exit 0 else echo Profil ; exit 2 inconnu Retourne 0 si la valeur n n'est pas précisée. Soit le script s8 qui donne un exemple très simple d'utilisation d'exit : 2.3. EXERCICES Quand on ne veut pas afficher le résultat d'une commande à l'écran, on doit la rediriger vers le fichier spécial /dev/null. Le rôle essentiel du fichier /dev/null est de recevoir des redirections de commandes dont l'affichage n'a pas d'importance mais dont le résultat vrai ou faux est essentiel Tester avec soin les exemples du cours Ecrire un script qui attend une lettre tapée au clavier puis qui affiche : Légume si la lettre 1 est tapé. Viande si v est tapé. Pain si p est tapé. Poisson dans tous les autres cas Reprendre l'exercice ci-dessus afin qu'il fonctionne aussi avec des lettres majuscules Ecrire un script qui reçoit un nombre comme argument et qui affiche : Trop petit si le nombre est inférieur à 10. Correct si le nombre est dans l'intervalle [10 20]. Trop grand si le nombre est supérieur à 20. Page 27 sur 63

28 2.3.5 Ecrire un script qui reçoit 1 argument, ce script doit déterminer et afficher si l'argument donné est soit un fichier, soit un répertoire, soit ne correspond à rien de cela Ecrire un script qui reçoit 2 arguments, un nom de fichier en 1 er, un répertoire(chemin de recherche) en 2 nd, puis qui vérifie si le fichier donné en 1 er existe dans le répertoire donné en 2 nd. La recherche doit s'effectuer dans le répertoire courant si le 2 nd argument est omis On montre ici une manière différente mais très utile pour construire l'expression évaluée derrière le if: expression évaluable est ici une expression construite avec une commande qui retourne un résultat vrai (0) ou faux ( 0). Le scripts suivant reçoit un argument et vérifie si cet argument est bien le nom d'un objet (fichier, répertoire...) situé dans le répertoire courant. a) Tester ce script. if ls grep $1 then echo $1 existe b) Montrer que ce script présente un défaut else echo $1 n\ existe pas fondamental d'élaboration du nom de l'objet fi testé. Pour cela, créer 1 fichier exo et tester ce script avec l'argument ex, puis avec l'argument xo. Conclure. c) On supprime ce défaut en remplaçant $1 par " $l ". espace entre $1 et le " fermant Vérifier le fonctionnement. d) Améliorer ce script en supprimant l'affichage intempestif non désiré. e) Que se passe-t-il si on ne donne pas d'argument? Proposer une solution pour corriger ce problème Ecrire un script qui reçoit comme argument le nom d'un utilisateur puis qui recherche si cet utilisateur est connecté. Les messages affichés indiqueront bien si l'utilisateur est connecté ou non. Ce script doit impérativement vérifier qu'un argument a été transmis et signalé une erreur si ce n'est pas le cas Le fichier /etc/passwd contient la liste des utilisateurs reconnus par le système (utilisateurs autorisés à se connecter). Ce fichier est accessible en lecture. La structure de chaque ligne de ce fichier est la suivante : NomUtilisateur :Password :UDI :GID :Iibre :répertoire de connexion :shell Page 28 sur 63

29 Le séparateur de champs est le caractère : (2 points), il y a une ligne par utilisateur. NomUtilisateur : Nom de l'utilisateur. Password : Mot de passe codé de l'utilisateur ou x. UID : Numéro d'identification de l'utilisateur (User IDentifier). GID : Numéro d'identification du groupe auquel appartient l'utilisateur. Libre : zone de commentaire. Répertoire de connexion : répertoire d'accueil de l'utilisateur lors de sa connexion. Shell : Nom complet du shell lancé à la connexion ( /bin/sh ou /bin/bash ou...). Copier le fichier /etc/passwd dans votre répertoire. Visualiser ce fichier. Ecrire un script qui reçoit un nom comme argument et vérifie si ce nom est celui de l'un des utilisateurs autorisés. Page 29 sur 63

30 LE BOURNE SHELL Cours TP N 3 3.1COMPLEMENTS SUR L OPERATEUR $ Extraction d une sous chaîne. On définit une variable adresse. [root@iris ~]# adresse=toto.tutu@pipeau.bulle.fr Longueur de la variable adresse : [root@iris ~]# echo ${#adresse} 30 On ôte de la variable la partie la plus courte située derrière le [root@iris ~]# echo ${adresse%@*} toto.tutu@tata On ôte de la variable la partie la plus longue située derrière le [root@iris ~]# echo ${adresse%%@*} toto.tutu On ôte de la variable la partie la plus courte située devant le caractère point (.). [root@iris ~]# echo $ {adresse#*.} Page 30 sur 63

31 On ôte de la variable la partie la plus longue située devant le caractère point (.). ~]# echo $ {adresse##*.} On teste si une variable est vide on lui affecte une valeur si c est le cas [root@iris ~]# var=existe [root@iris ~]# echo $ {echo ${var:-vide} existe [root@iris ~]# var1= [root@iris ~]# echo ${var1 :-vide} 3.2. LA COMMANDE case Syntaxe Elle permet d effectuer un choix multiple, sa syntaxe est la suivante : case variable in modèle11 [ modèle12 ]) suite 1 de commandes ; ; modèle 21 [ modèle22 ]) suite 2 de commandes ; ; *) suite de commandes ; ; esac Page 31 sur 63

32 Les règles de mises en correspondance de la variable avec chacun des modèles respectent les mêmes règles que celles de correspondance des fichiers. Ou, plus exactement, les modèles modèle11, modèle12,, modèle21, sont construits avec les mêmes règles que celles utilisées pour construire les noms de fichiers. La commande case essaye de trouver une correspondance entre la variable et les divers modèles indiqués modèle11, modèle12,, modèle21, Quand la correspondance est trouvée, la liste de commandes associée est executée. Le modèle * au cas pas défaut quand aucune correspondance n a été trouvée avec les modèles précédents. La dernière commande de chaque suite de commandes exécutée doit impérativement se terminer par un double point virgule. Rappel des règles de construction des noms de fichiers : * correspond à n importe quelle chaîne de caractères.? correspond à un caractère quelconque. [ ] correspond à un des caractères de la liste mise entre mes crochets, par exemple : [azer] : soit a, soit z, soit e, soit r. [a-d] : soit a, soit b, soit c, soit d : on précise ici un intervalle. [!a-d] : tous les caractères sauf ceux indiqués dans les crochets. Page 32 sur 63

33 3.2.2 Exemples Voici un 1 er script s9 proposant un choix, la personne interrogée tape la 1 ère lettre de la réponse. echo "Manger Boire ou Dormir?" echo Taper la 1 ère lettre read rep case $rep in M) echo On va manger./s9 Manger Boire ou Dormir? Taper la 1 ère lettre B On va boire script s9 echo J\ ai faim ;; B) echo On va boire ;; D) echo On va dormir ;; *) echo "Vous ne voulez rien?" esac On peut améliorer le programme ci-contre en laissant le choix à l utilisateur de taper la 1 ère lettre en majuscule ou en minuscule. On propose ici les 2 solutions possibles. Script s10 Script s11 echo "Manger Boire ou Dormir?" echo Taper la 1 ère lettre read rep case $rep in [Mm]) echo On va manger Echo J\ ai faim ;; [Bb]) echo On va boire ;; [Dd]) echo On va dormir ;; *) echo "Vous ne voulez rien?" esac echo "Manger Boire ou Dormir?" echo Taper la 1 ère lettre read rep case $rep in M m) echo On va manger echo J\ ai faim ;; B b) echo On va boire ;; D d) echo On va dormir ;; *) echo "Vous ne voulez rien?" esac Page 33 sur 63

34 3.2.3 Exercices 2.31 Tester les 3exemples du cours Modifier l exemple du cours pour accepter en plus les réponses Manger, manger pour le 1 er cas, Boire, boire pour le 2 ème cas et enfin Dormir et dormir pour le dernier cas Ecrire un script attend un nombre et qui affiche : La réponse est 1 si le nombre est 1. La réponse est 2 si le nombre est 2. La réponse est 3 si le nombre est 3. La réponse est incorrecte dans tous les autres cas Ecrire un script qui effectue la saisie d une chaîne au clavier et qui affiche un message différent suivant que : La chaîne commence par un chiffre. La chaîne commence par une voyelle majuscule. La chaîne commence par une voyelle minuscule. La chaîne commence par tout autre caractère. Page 34 sur 63

35 3.3 LA BOUCLE for Syntaxe La syntaxe est la suivante : for variable in ListeDeValeurs do suite de commandes done La liste des valeurs peut être une suite de chaînes de caractères mais le plus souvent est le résultat d une expression issue d une expansion des noms de fichiers. Le corps de la boucle situé entre do et done est exécuté pour chaque valeur de la liste donnée. La boucle for est normalement parcourue autant de fois qu il y a de valeurs dans ListeDeValeurs, variable prenant la 1 ère valeur de la liste pour le 1 er parcours, la 2 ème valeur de la liste pour le 2 ème parcours et ainsi de suite. Si in ListeDeValeurs est omis alors les arguments du script constituent la liste de valeurs : for i do. done Si on travaille sur les fichiers, on peut utiliser les règles de construction des noms de fichiers Voici le squelette d un script qui effectuerait un traitement pour chaque fichier contenu dans le répertoire courant. La variable fich contient alors le nom complet du nouveau fichier pour chaque itération. Voici une modification du squelette précédent qui effectuerait un traitement pour chaque fichier d extension.c situé dans le répertoire courant. for fich in * do done for fich in *.c do done Page 35 sur 63

36 3.3.2 Examples Soit le script s12 suivant :./s12 pop pip for var in pop pip top hop do echo $var done top tip hop 3.3 Exercices 3.31 Tester l exemple donné dans le cours Ecrire un script qui affiche les noms de tous les répertoires courant. L affichage sera du type : Répertoire : «nom_du_répertoire» 3.33 Modifier le scipt ci-dessus afin qu il affiche pour un répertoire : Répertoire : «nom_du_répertoire» et pour un fichier trouvé : Ficher : «nom_du_fichier» Ecrire un script permettant de vérifier si plusieurs utilisateurs sont actuellement connectés. Le nom de chaque utilisateur sera donné en argument, par exemple./234 alain roger pierre Créer les fichiers t1, t2, t3, t4 (leur contenu importe peu). Proposer un script qui copie ces ces fichiers t1, t2, t3, t4 dans respectivement p1, p2, p3 et p4. Il faut que le ce script fonctionne quelque soit le nombre de fichiers t*. Modifier le script précédent afin de lui donner en argument le préfixe commun aux fichiers sources puis celui commun aux fichiers destinations ( exemple../235 t p ). Page 36 sur 63

37 3.4 LA BOUCLE while Syntaxe Le corps de la boucle est exécuté tant que la condition est vraie. La syntaxe est la suivante : while liste de commandes do Done Exemple Le script ci-contre s13 attend un nom de fichier, on reste dans la boucle tant que le nom donné n est pas un nom de fichier. while [! f "$nom" ] do echo Entrer un nom de fichier read nom done 3.5. LA BOUCLE until cat $nom Syntaxe Le corps de la boucle est exécuté jusqu à que la condition soit vraie. La syntaxe est la suivante : until liste de commandes do done Page 37 sur 63

38 3.5.2 Exemple Le script ci-contre s14 attend un nom de fichier, on reste dans la boucle jusqu à que le nom donné soit un nom de fichier until [ -f «$nom ] do echo Entrer un nom de fichier read nom 3.6 CREATION DE MENUS (K-Shell et bash) done cat $nom Syntaxe La commande select permet de créer des menus simples. select variable in ListeDeChoix do Suite de commandes done La ListeDeChoix est affichée avec un choix par ligne, un N est placé devant chaque choix et la variable PS3 est affichée (prompt ternaire). Le shell attend alors une saisie qui doit être un des N affichés. La Suite de Commandes est exécutée si l entrée n est pas nulle (appui sur ), la variable REPLY contient le N tapé et variable est initialisé à l élément de ListeDeChoix dont l indice correspond au N sélectionné. Page 38 sur 63

39 3.6.2 Exemple PS3= «Lequel choississez vous?» Soit le script s15 ci-contre qui attend un choix, l utilisateur doit donner le N correspondant à la personne sélectionnée. select name in Alain Jacques Paul Antoine do if [ -n "$name" ] Le menu est affiché à nouveau si l utilisateur tape sans donner un N../s15 1) Alain done fi then echo $REPLY choisi et $name break 2) Jacques 3) Paul 4) Antoine L untilisateur tape3 Lequel choisissez vous? 3 3 choisi et Paul Si l utilisateur tape une valeur différente de 1, 2, 3 ou 4 le menu est affiché à nouveau grâce au test if [ -n "$name" ] qui permet de vérifier que $name n est pas nul donc que l entier sélectionné est un indice faisant correspondre à un élément dans la liste. Page 39 sur 63

40 3.7. INTERRUPTION DES BOUCLES La commande break permet d interrompre une boucle for, while ou until. Syntaxe for do if condition then break fi Done La boucle for est interrompue si la condition est vraie. La commande continue interrompt en cours et l exécution de la suivante est démarrée. Syntaxe for do if condition then continue fi suitecommandes done Si la condition est vraie alors l itération en cours est interrompue et on passe à la suivante (suitecommandes n est pas exécutée). Page 40 sur 63

41 3.8 LA COMMANDE expr La commande expr permet d évaluer numériquement une expression et de retourner le résultat sur la sortie standard par défaut (l écran). expr expr 2 /* 3 (le signe \ dévalide l interprétation du caractère * par le shell) 6 a=10 expr $a espace Attention aux espaces séparant les expressions ou les caractères significatifs : expr $x + 3 Il est très utile dans un script de pouvoir affecter le résultat du calcul dans une variable, comme le montre le script s /s16 Taper un nombre Les opérateurs arithmétiques autorisés sont : + pour l addition, - pour la soustraction, * pour la multiplication, / pour la division et % pour le reste de la division. Voici le script s17 plus sophistiqué qui calcule n pour n variant de 0 à N. echo Taper un nombre read n s= expr $n + 5 echo $s echo Taper un nombre read N X=0 Som=0 while [ $X -lt $N ] do X= expr $X + 1 Som= expr $Som + $X done echo Somme=$Som Page 41 sur 63

42 La commande expr permet d effectuer des évaluations d expression, voici les possibilités offertes. expr $a &b : retourne $a si $a différent de 0 sinon retourne $b. expr $a & $b : retourne $a si $a et $b ne sont pas nuls sinon retourne 0. expr $a op $b : op est un opérateur de comparaison qui prend une des valeurs suivantes <, <=, =, ==, >=, >,!=. Compare $a et $b et retourne 1 si le test est vrai sinon 0. La commande expr permet de travailler sur des chaînes de caractères grâce à l opérateur :. expr tomatetos : to 2 expr tomatetos : ".*" 9 expr tomatetos : to\(.*\)tos mate echo $LOGNAME hugo expr $LOGNAME :.* 4 Le critère.* renvoie la longueur de la chaîne de caractères. Page 42 sur 63

43 3.9. LA COMMANDE let (bash et K-shell) Elle représente une alternative intéressante à l utilisation de expr pour les calculs arithmétiques. Exemple : a=2 let b=a*5 echo $b 10 Les opérateurs autorisés sont les classiques *, /, %, +, AUTRE POSSIBILITE POUR LES CALCULS espace ARITHMETIQUE (K-Shell et bash2) a=15 Exemples de script élémentaires s18./s18 Sup if (( a>12 )) then echosup else echo Inf fi Le script suivant s19 reçoit 2 arguments, il calcule le produit Des 2 nombres, affiche si le résultat est compris dans l intervalle [10, 20], puis calcule (1 er argument) puissance (2 ème argument). s19 #!/bin/bash x=$1 y=$2 res=$ ( ( x * y ) ) echo $res if ( ( res <= 10 ) ) then echo INF elif ( ( ( res >= 10 ) && ( res <=20 ) ) ) Page 43 sur 63 then echo Dans l\ intervalle else echo SUP fi

44 Opérateurs autorisés La liste des opérateurs ci-dessous est constituée ci-dessous est constituée par des groupes de précédence identique. Les niveaux sont classés en ordre de précédence décroissante. - + plus ou moin unaire! ~ négations logique et binaire ** exponentiation * / % multiplication, division, reste + - addition, soustraction < < > > décalage arithmétique à gauche et à droite <= >= < > Comparaisons ==! = égalité et différence & ^ ET binaire OU exclusif binaire OU binaire && ET logique OU logique expr?expr:expr évaluation conditionnelle = *= /= %= += -= <<= >>= &= ^= = assignations. Page 44 sur 63

45 3.11 LES FONCTIONS Le langage shell accepte l écriture des fonctions. La syntaxe de base est la suivante : NomFonction () { Instructions } Ou Function NomFonction (){ } Instruction L exemple ci-contre présente une fonction chdir() qui reçoit un paramètre, teste si cet argument est un répertoire et se place dedans si c est le cas. chdir() { if [ -d $1 ] then cd $1 ls -1 else echo $1 n\ est pas un repertoire connu fi } chdir() { if [ -d $1 ] then cd $1 Cette fonction chdir() est utilisée dans un script s20. ls -1 else echo $1 n\ est pas un repertoire connu fi./s20 Quel est le répertoire à vérifier? /usr drwxr-xr-x 8 root..x11r6 drwxr-xr-x 8 root bin } echo Quel est le répertoire à vérifier? read rep chdir $red drwxr-xr-x 8 root doc Page 45 sur 63

46 drwxr-xr-x 8 root etc ---- Il faut faire attention au passage de l argument à la fonction lors de son appel. Les fonctions peuvent être placées dans un fichier à part des fichiers contenant les scripts qui les appellent. Chdir() { Le fichier mafonction contient la fonction précédente. Voici le script s21 qui l utilise Le nom du fichier contenant les fonctions doit être précisé en respectant la syntaxe suivante : on tape un point, un espace puis le nom du fichier. if [ -d $1 ] then cd $1 ls -1. mafonction else echo $1 n\ est pas un répertoire connu echo Quel fi est le répertoire à vérifier? } read rep chdir $rep Le script s22 suivant effectue le calcul du cube d un nombre à l aide d une fonction. #!/bin/bash cube ( ) { #cube=$ ( ( $1 * $1 * $1 ) ) Cube=$ ( ( $1 * * 3 ) ) } La variable d un cube est commune à la fonction et au script appelant. Les variables locales d une fonction peuvent être déclarées avec la commande local. Autrement, les variables et leurs valeurs sont partagées entre la fonction et son appelant. Une fonction peut retourner une valeur grâce à l instruction return n. Si n est omis, la valeur envoyée est celle de la dernière commande exécutée. Si la commande interne return est exécutée dans une fonction, celle-ci se termine et l exécution echo Entrer un nombre reprend avec la commande suivant l appel de fonction. Quand une fonction se termine, les paramètres read n positionnels et le paramètre spécial # reprennent les valeurs qu ils avaient avant l appel de fonction. cube $n echo $cube Page 46 sur 63

47 3.12 EXERCICES 11.1 Tester les exemples du chapitre Tester les scripts s9, s10 et s11 du chapitre 2. Faire les exercices du chapitre 12.3 Tester le script s12 du chapitre 3. Faire les exercices du chapitre 3.3 page 4 et Tester les scripts s13 page 5, s14 page 6, s15 page 6 et s16 page Ecrire un script effectuant la lecture du clavier jusqu à que la réponse soit oui ou non Ecrire un script qui calcule la surface et le périmètre d un rectangle dont la largeur et la longueur sont données en argument, les calculs seront ensuite effectués en utilisant expr Ecrire un script qui calcule la factorielle d un nombre donné en argument et qui calcule le résultat en utilisant expr Tester les scripts s18 et s19 page Reprendre les exercices 12.6 et 12.7 en utilisant le mode d évaluation indiqué au chapitre On demande de créer une commande del dont la syntaxe est la suivante : Del fich1 [ fich2 ] Cette commande doit effacer les fichiers donnés en argument, mais ceux-ci seront auparavant sauvegardés dans le répertoire $HOME/poub avec l extension.sav. Le script devra vérifier que les arguments sont correctement donnés et que le répertoire $HOME/.poub existe bien. Le script créera le répertoire $HOME/poub au cas où celui-ci n a pas été déjà créé, c'est-à-dire lors de l utilisation de ce script. Page 47 sur 63

48 Quelle solution proposez-vous pour rendre cette commande accessible à tous les utilisateurs du système? Tester les exemples sur les fonctions page 10 et On veut pouvoir choisir parmi 4 types de terminaux pour diverses connexions au système. Les 4 types sont : Televideo 925, VT100, Televideo 950, Wyse50. Il n y a que l utilisateur qui sache le type de son terminal, la variable TERM doit prendre la valeur tvi925 pour un terminal Televideo 925, vt100 pour un VT100, tvi950 pour un Televideo 950 et enfin wyse50 pour un Wyse 50. Ecrire le script qui propose un menu et permette à l utilisateur de positionner la variable TERM. On vérifiera le résultat en affichant la variable TERM à la fin du script Proposer un script tree qui affiche l arborescence (les répertoires et sous répertoires). Le paramètre donné indiquera le répertoire de départ pour l analyse (utilisation de la récursivité). Par défaut, la recherche s effectuera dans le répertoire courant si l argument est omis. Page 48 sur 63

49 TP Gestion des processus Exercice 1 Tester la commande ps puis ps axl. Relever le PID de votre shelle et le PID du père de ce shell. Quel est le rôle des options a, x et l? Quel est le rôle de l'option f? tester cette option. Tester l'option u. Exercice 2 Teser avec soin la commande pstree. Exercice 3 Tester avec soin la commande top. Essayer ses commandes. Exercice 4 Lister les signaux du système. Exercice 5 Taper la comande sleep 200& et vérifier le PID du processus lancé avec ps. Tuer ce processus. Exercice 6 Tuer votre processus shell avec la commande kill Exercice 7 (une initiation au script est obligatoire) Taper le script s7 suivant : echo pid = $$ n=1000; x=0 while ((x -lt n)) do let x=x+1 z=0 while (( z -lt 100)) do let z=z+1 sleep 1 Page 49 sur 63

50 echo $z > fich done done Quelle est la durée d'exécution de ce script? Exécuter en avant plan ce script : chmod +x s7;./s7 Faire un cat de fich Stopper maintenant el processus. Redémarrer le en arrière plan. Replacer le en avant plan. Tuer le. Exercice 8 Lancer s7. Faire Ctrl-c. Justifier ce qui s'est passé. Exercice 9 Tuer le processus de la question 8 avec le signal SIGKILL. Exercice 10 Modifier le script s7 afin de le rendre insensible aux signaux SIGINT, SIGQUIT et SIGTERM. Vérifier le fonctionnement en envoyant au processus correspond t ces 3 signaux. Page 50 sur 63

51 TP Gestion des utilisateurs Exercice 1 A l'aide du manuel de useradd préciser le rôle des option -d, -g, -G, -m et -u quelle est l'utilité de la commande id, faire des tests Exercice 2 Créer 2 utilisateurs jean et paul de la manère la plus simple possible. Donner leur un mot de passe. Vérifier leur connexion au système. Quel est leur répertoire de login? que contient il? Justifier. Observer les lignes correspondantes dans /etc/passwd et /etc/group. Noter le gestion des valeurs de uid et de gid par la système. Exercice 3 utiliser la commande su sous ses diverse forme (man). Passer de root a jean, puis à paul puis à root... Exercice 4 Créer l'utilisateur pierre avec comme seule contrainte d'être membre du groupe paul. Vérifier sa connexion. Quel est son répertoire de login. Observer les ligne créeés dans /etc/group et /etc/passwd. Exercice 5 Effectuer et vérifier le fonctionnement des étapes suivante : interdire la connexion de jean, autoriser à jean de se connecter à nouveau, modifier le mot e passe de jean, tester ce nouveau mot de passe. Exercice 6 Créer un groupe admin et le répertoire /home/admin donner le répertoire /home/admin/ au groupe admin créer 2 utilisateurs eric et lucien appartenant à ce groupe dont les répertoires de login sont /home/admin/eric et /home/admin/lucien vérifierr leur connexion, les répertoires de conexions, à qui appartiennent ces répertoires? observer les lignes correspondantes dans /etc/.passwd/ et /etc/group Exercice 7 On veut que lucien soit en plus membre du groupe paul. Taper la commande nécessaire. Observer les modifications apportées dans le fichier /etc/group Page 51 sur 63

52 Observer le résultat de la commande groups lucien Vérifier la possibilité pour lucien de changer de groupe Créer un utilisateur john avec son groupe par défaut john mais appartenent aussi au groupe paul. Observer les modifications des fichiers /etc/passwd et /etc/group. Page 52 sur 63

53 TP initiation au shell Exercice 1 Exécuter les commandes suivantes et analyser les résultats produits: date cal cal cal pwd ls ls -l ls -al ls /usr/include ls -l /usr/include ls -l /usr/include ls -l /usr/include more ls -l /usr/include less ls -l /usr/include wc -l cd /usr/include ls cd who whoami who am i man who date; who; pwd ulimit man ulimit alias Page 53 sur 63

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

TP 1 Prise en main de l environnement Unix

TP 1 Prise en main de l environnement Unix Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session

Plus en détail

«Astrophysique et instrumentations associées» Cours UNIX. 2006 Benoît Semelin

«Astrophysique et instrumentations associées» Cours UNIX. 2006 Benoît Semelin M2 «Astrophysique et instrumentations associées» Cours UNIX 2006 Benoît Semelin Les OS OS = Operating System : Programme de base qui assure la gestion du matériel (clavier, écran, disque dur...), du système

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Environnements informatiques

Environnements informatiques Environnements informatiques Premiers pas sous Linux (seconde partie) 26 septembre 2008 blansche@dpt-info.u-strasbg.fr 1 /12 Administration sous Linux 2 /12 Démarrage Démarrage de Linux Niveaux de démarrage

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Outils pour la pratique

Outils pour la pratique Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

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

Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique Année 2007 Cours Unix-Shell par Karam ALLALI Ecole Spéciale d Informatique Table des matières 1 Introduction. 5 1.1 Historique.................................... 6 1.2 Système d exploitation.............................

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix Ce TP est destiné à vous familiariser avec les fichiers sous l'environnement UNIX. Fortement axé sur la pratique, il aborde la création, la manipulation et la suppression des répertoires et fichiers. 1

Plus en détail

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min) TP n 2 : Installation et administration du serveur ProFTP Objectifs du TP Comprendre le fonctionnement du protocole FTP Installation et compilation d un paquet source Configuration, lancement et administration

Plus en détail

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

TP1 : Initiation à l algorithmique (1 séance) Université de Versailles Vanessa Vitse IUT de Vélizy - Algorithmique 2006/2007 TP1 : Initiation à l algorithmique (1 séance) 1 Prise en main de l environnement Unix : rappels et compléments Le but de la

Plus en détail

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

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

Premiers pas en Linux

Premiers pas en Linux Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité

Plus en détail

Shell Bash Niveau débutant

Shell Bash Niveau débutant Niveau débutant Introduction Les distributions actuelles de GNU/Linux offrent à l utilisateur un environnement graphique équivalant aux systèmes d exploitation propriétaires du marché. Mais cette ergonomie

Plus en détail

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

Aide-Mémoire unix. 9 février 2009 Aide-Mémoire unix Nicolas Kielbasiewicz 9 février 2009 Le système d exploitation unix est de plus en plus présent aujourd hui. Comme tous les projets Open Source, on le trouve sous différentes formes :

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

PLAN Introduction à UNIX Patrick Fuchs Dynamique des Structures et Interactions des Macromolécules Biologiques Université Paris Diderot patrick.fuchs@univ-paris-diderot.fr 2 PLAN Système d'exploitation

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM

sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM Sommaire 1. Problématique des accès aux serveurs Besoins Linagora Recherche d'une solution 2. Présentation de sshgate

Plus en détail

Module : Informatique Générale 1. Les commandes MS-DOS

Module : Informatique Générale 1. Les commandes MS-DOS 1 Les commandes MS-DOS I. Introduction Le DOS est le système d'exploitation le plus connu, sa version la plus commercialisée est celle de Microsoft, baptisée MS-DOS (Microsoft Disk Operating Système).MS-DOS

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 2 : Language de commandes, Scripts Shell D après un cours de Julien Forget (Univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

TP 4 de familiarisation avec Unix

TP 4 de familiarisation avec Unix TP 4 de familiarisation avec Unix Réseau Filtres (suite) Variables Scripts Vincent Berry - vberry@lirmm.fr IMPORTANT : la prise de notes est une pratique très importante et pourtant négligée, elle est

Plus en détail

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

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Système d Exploitation I Programme : Filière SMI S3 Pr. El Mostafa DAOUDI Département de Mathématiques et d Informatique

Plus en détail

Guide d'installation de la base de données ORACLE 10g (10.2.0.1) pour linux FEDORA CORE 4.

Guide d'installation de la base de données ORACLE 10g (10.2.0.1) pour linux FEDORA CORE 4. Guide d'installation de la base de données ORACLE 10g (10.2.0.1) pour linux FEDORA CORE 4. 1 - Quelques informations à propos de ce guide Ce guide décrit comment installer la base de données Oracle 10g

Plus en détail

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

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base... Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 Gestion des utilisateurs et des groupes...4 Introduction...4 Les fichiers de base...4 Quelques commandes d'administration...5

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Sauvegarde sous MAC avec serveur Samba

Sauvegarde sous MAC avec serveur Samba Sauvegarde sous MAC avec serveur Samba Possédant un serveur SAMBA sous Debian, je me suis intéressé à la sauvegarde des données d'un mac sous OSX. Malgré mes recherches je n'ai pas trouvé de logiciels

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Cloner un disque dur

Cloner un disque dur Cloner un disque dur Préambule: J'ai testé beaucoup d'outils disponibles sur le Web, pour cloner des disques dur et/ou des partitions, dans de nombreux cas et sur de nombreuses machines, et avec de nombreux

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

Plus en détail

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

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux Contents 1 Premiers pas en Linux 1 1.1 Bref historique Linux....................... 1 1.2 Généralités............................. 1 1.3 Arborescence sous Linux...................... 2 1.4 Commandes fondamentales....................

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

Bon ben voilà c est fait!

Bon ben voilà c est fait! Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

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

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille PRESENTATION RESSOURCES Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) Introduction, Objectifs et Intentions Le BTS SN (Systèmes Numériques) intègre la formation

Plus en détail

La Comptabilité UNIX System V Acctcom

La Comptabilité UNIX System V Acctcom Introdution La Comptabilité UNIX System V Acctcom (Groupe GLACE) Hervé Schauer schauer@enst.fr Acctcom est le système de comptabilité (accounting) d Unix System V. Il a été conçu pour permettre une facturation

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Programme awk------introduction rapide

Programme awk------introduction rapide Programme awk------introduction rapide Introduction Historique Le nom de awk vient de ses trois concepteurs : Alfred V. Aho, Peter J. Weinberger et Brian W. Kernighan. La version originale fut créée en

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Les commandes relatives aux réseaux

Les commandes relatives aux réseaux SHELL Les commandes relatives aux réseaux L'accès aux ou via les réseaux est devenu vital, aussi, les commandes traditionnelles de connexion et de transfert de fichiers ont été remplacées par des commandes

Plus en détail

Introduction à l Administration Systèmes et Réseaux

Introduction à l Administration Systèmes et Réseaux Cours ASR année 2014-2015 GB4, 2 nd semestre 2013-2014 Polytech Nice Notes de cours Gilles Bernot Introduction à l Administration Systèmes et Réseaux Avertissement au lecteur : Ce polycopié n est pas un

Plus en détail

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

Premiers pas. Shell? Les processus vu comme des filtres. commandes Les vu d exécution du Les s Formation continue Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr Licence trimestre 3 2008-09 Les vu d exécution du Les s Très schématiquement

Plus en détail

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2 Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Live box et Nas Synology

Live box et Nas Synology Live box et Nas Synology Création : OpenOffice.org Version 2.3 Auteur : PHI Création : 18/01/2008: Version : 32 Modification : 24/03/2008 Fichier : E:\Mes documents\tuto NAS LB\tuto ftp.odt Imprimer moi

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Atelier La notion de session utilisateur sous Linux

Atelier La notion de session utilisateur sous Linux Chapitre 6 Atelier La notion de session utilisateur sous Linux I Présentation Nous allons voir la notion de session et d utilisateur sous linux, ainsi que quelques commandes de base afin de mieux comprendre

Plus en détail

LINUX REMPLAÇANT WINDOWS NT

LINUX REMPLAÇANT WINDOWS NT 189 Cette installation fonctionne chez moi à Veyre. Vous pouvez consulter et télécharger les fichiers à : http://perso.wanadoo.fr/gerard.blanchet/ veyre/ Mais c'est tout à fait adapté à un établissement

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA Nom : Prénom : Classe et groupe : 1P 3 SEN TRI Télécom & Réseaux Linux Ubuntu Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA 04/11/2010 TP 1. Objectif : Configurer un serveur SAMBA sous Linux

Plus en détail

ISPConfig Documentation

ISPConfig Documentation ISPConfig Documentation ISPConfig Documentation I Table des Matières III Manuel Client...1 1 Général...1 1.1 Connexion et Mot de Passe...1 1.2 Interface Client...1 1.3 Privilèges pour les Clients dans

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

Guide d'utilisation du portail d'authentification Cerbère à usage des professionnels et des particuliers

Guide d'utilisation du portail d'authentification Cerbère à usage des professionnels et des particuliers RAPPORTS Secrétariat Général Service des Politiques Supports et des Systèmes d'information Centre de prestations et d'ingénierie Informatiques Département Opérationnel Sud-Ouest PNE Sécurité 10/11/2011

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Projet Administration Réseaux

Projet Administration Réseaux EL KHATIT Zouhair, L3 ASR N : 20072486 Projet Administration Réseaux Thème : SFTP & SCPOnly I- SFTP (Secure File Transfer Protocol) : Introduction: Le SFTP permet de transférer des fichiers par une connexion

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL Au cours de ce TP, vous allez installer un serveur de courrier sur un réseau local. Les étapes par lesquelles vous allez passer sont les suivantes

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Introduction au Système d Exploitation Unix/Linux

Introduction au Système d Exploitation Unix/Linux 1 iere partie: Système de Gestion de Fichier B. Jacob IC2/LIUM 17 septembre 2013 Plan 1 Notions de fichier 2 Notions de répertoire 3 Organisation des répertoires 4 Identification d un fichier dans l arborescence

Plus en détail

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1. Présentation Excel 7 Fonctions plus complexes dans Excel Partie 1 Sandra Michelet Département Informatique Pédagogique Université Stendhal, Grenoble III Fonctions Si(), Et(), Ou() et fonctions imbriquées

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

Cyberclasse L'interface web pas à pas

Cyberclasse L'interface web pas à pas Cyberclasse L'interface web pas à pas Version 1.4.18 Janvier 2008 Remarque préliminaire : les fonctionnalités décrites dans ce guide sont celles testées dans les écoles pilotes du projet Cyberclasse; il

Plus en détail

PROCEDURE D'INSTALLATION OPENREPORTS

PROCEDURE D'INSTALLATION OPENREPORTS PROCEDURE D'INSTALLATION OPENREPORTS Table des matières Prérequis...2 1 Installation linux...2 2 Installation JAVA...3 2.1 Installation de la jdk...3 2.2 Configuration de l'environnement...3 3 Installation

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Administration du site (Back Office)

Administration du site (Back Office) Administration du site (Back Office) A quoi sert une interface d'administration? Une interface d'administration est une composante essentielle de l'infrastructure d'un site internet. Il s'agit d'une interface

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

Objet : Guide d'installation et de maintenance pour My IC Phone 8082 connecté à un OmniPCX Office R810 Communication Technique TC1619 Ed 01 Date : 17/02/2012 Produit : Alcatel-Lucent OmniPCX Office Nb. de pages: 14 Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX

Plus en détail

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

Première partie. Qu est-ce qu un script? Unix : shell scripts ASR1 - Systèmes d exploitation Première partie Semestre 1, année 2012-2013 Département d informatique HCM IUT Bordeaux 1 Qu est-ce qu un script? 1 Dialogue en ligne de commande 2 Interprète

Plus en détail

Création d'un questionnaire (sondage)

Création d'un questionnaire (sondage) Création d'un questionnaire (sondage) Le but de ce petit tuto est d'avoir les séquences pas à pas pour la création d'un questionnaire de façon à ne pas devoir rechercher la manière de procéder si l'outil

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

MEDIAplus elearning. version 6.6

MEDIAplus elearning. version 6.6 MEDIAplus elearning version 6.6 L'interface d administration MEDIAplus Sommaire 1. L'interface d administration MEDIAplus... 5 2. Principes de l administration MEDIAplus... 8 2.1. Organisations et administrateurs...

Plus en détail