Travaux Pratiques d introduction à Unix



Documents pareils
TP 1 Prise en main de l environnement Unix

TP1 - Prise en main de l environnement Unix.

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

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

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

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

Introduction aux Systèmes et aux Réseaux

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

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

1 Démarrage de Marionnet

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

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

Groupe Eyrolles, 2003, ISBN : X

Environnements informatiques

Service On Line : Gestion des Incidents

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

TP, première séquence d exercices.

Quelques éléments de compilation en C et makefiles

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

TP 4 de familiarisation avec Unix

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

TP Administration Oracle

Réaliser un inventaire Documentation utilisateur

Bon ben voilà c est fait!

Banque d images SVT. Créer et utiliser une banque d images avec Picasa 2. Version anglaise -Windows 98. Banque photo en SVT : page 1 /14

Sauvegarde sous MAC avec serveur Samba

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Galaxy est une plateforme de traitements (bio)informatiques accessible depuis l'url : (en précisant votre login et mot de passe LDAP «genotoul»).

Séance 0 : Linux + Octave : le compromis idéal

B1-4 Administration de réseaux

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

Publier dans la Base Documentaire

SERVICE CERTIFICATION DES ÉTABLISSEMENTS DE SANTÉ. Guide utilisateur Compte Qualité dans SARA

EXCEL TUTORIEL 2012/2013

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Algorithmique et Programmation, IMA

Personnes ressources Tice. Académie de Rouen

Comment accéder à d Internet Explorer

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

pas à pas prise en main du service sur le web Le Cloud

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

Comment mettre en page votre livre

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

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

FICHIERS ET DOSSIERS

TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows

MANUEL DES NOUVEAUTES

Publier un Carnet Blanc

Projet Administration Réseaux

Organiser le disque dur Dossiers Fichiers

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

Introduction au Système d Exploitation Unix/Linux

Table des matières. Introduction

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Cours Unix 1. Présentation d UNIX. Plan du cours 1

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Comment faire un Mailing A partir d une feuille Calc

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Les différentes méthodes pour se connecter

Cours 1 : Qu est-ce que la programmation?

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Affectation standard Affectation modifiée (exemple)

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Outils pour la pratique

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

GUIDE Excel (version débutante) Version 2013

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Swisscom Webmail - mode d emploi

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

1) Information sur le logiciel et la notice 2) Le tableau de bord 3) Les devis 4) Les factures 5) Les factures d acompte 6) Les avoirs sur facture

Cloner un disque dur

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

Nouvelles fonctionnalités

Live box et Nas Synology

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

à l édition de textes

Java Licence Professionnelle CISII,

Utiliser un tableau de données

Pratique et administration des systèmes

Les Différents types de Requêtes dans Access

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

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

Editer un catalogue avec OpenOffice

Table des matières Hakim Benameurlaine 1

Créer un album photo

TP 1. Prise en main du langage Python

Étude de l application DNS (Domain Name System)

Présentation du langage et premières fonctions

Competence Management System (Système de Gestion de Compétences)

Gestion d identités PSL Installation IdP Authentic

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Cette Leçon va remplir ces attentes spécifiques du curriculum :

Introduction à l informatique

Transcription:

Travaux Pratiques d introduction à Unix Première année DUT Informatique 2013-2014 Délimiteur et variable. Script. TP7 Si le répertoire Unix de votre répertoire personnel ne contient pas de répertoire TP7, créer le. Dans toute cette feuille de TP, les exercices doivent être traités dans ce répertoire. À la fin du TP, tous les scripts que vous aurez écrits seront dans le répertoire bin qui sera crée lors de l exercice 3. Exercice 1. Les variables d environnements On peut avoir accès à la liste de celles-ci avec la commande printenv. 1. En utilisant la commande echo, faire afficher: Le nom de votre répertoire personnel, le nom du répertoire courant, le nom du shell que vous utilisez, la liste des répertoires dans lesquels le système cherche les commandes, le répertoire dans lequel sont stockées les pages de manuel, le prompt (invite de commande). 2. On peut utiliser la commande export ainsi pour affecter une valeur à la variable VAR: > export VAR=valeur Modifier votre prompt pour qu il affiche Bazinga 3. Il manque l intonation Modifier votre prompt pour qu il affiche Bazinga! 4. Modifier votre prompt pour qu il affiche la même chose suivie de votre login (en utilisant la variable d environnement correspondante), suivi de la chaine >. 5. Faire afficher la variable RANDOM. Réessayer. À quoi sert cette variable? 1

Exercice 2. Les délimiteurs et les variables 1. Considérer la variable titi contenant la chaîne de caractères : z ai cru voir un rominet et comparer les trois commandes suivantes : (a) echo "$titi" (b) echo $titi (c) echo `$titi` 2. Se placer dans votre répertoire personnel et considérer la variable lister contenant la chaîne de caractères ls. Comparer les trois commandes suivantes : (a) echo "$lister" (b) echo $lister (c) echo `$lister` 3. Considérer les variables lister, compte, et historique contenant respectivement les chaînes "ls", "wc", et "history". Parmi les commandes suivantes, lesquelles donnent un résultat pertinent : (a) echo `$lister compte` (b) echo `$lister $compte` (c) echo "`$lister` $compte" (d) echo $historique $compte (e) echo `$historique` $compte 4. Que fait la commande seq. 5. Comparer les trois commandes suivantes : for i in seq 1 10; do echo $i; done for i in "seq 1 10"; do echo $i; done for i in `seq 1 10`; do echo $i; done Dans cette partie, var1 et var2 sont deux variables contenant respectivement les deux chaînes abcd et 12 34. 6. Dans la variable v1, mettre le contenu de la variable var1 suivi de l entier 7, et mettre dans la variable v2 le contenu de la variable var2 suivi du caractère D et afficher les. 7. Refaire de même en séparant le contenu des variables et le caractère le suivant par respectivement un espace, un point, le caractère # et un point d interrogation. Exercice 3. Premier script : création d une arborescence Considérons le script suivant permettant de créer une arborescence : #!/bin/sh mkdir bin mkdir test cd test 2

mkdir rep1 rep2 rep3 cd rep1 mkdir rep11 cd rep11 touch fic1 fic2 cd../../rep2 touch fic3 fic4 1. Recopier ce script dans un fichier arborescence.sh qui sera situé dans le répertoire TP7. Exécuter ce script après avoir modifié ces droits. Déplacer le script arborescence.sh dans le répertoire bin. 2. Déplacez vous dans le répertoire rep3 ainsi créé. Exécuter de nouveau le script arborescence.sh sans changer de répertoire courant. Quel est le résultat? La création de cette arborescence dépend explicitement du répertoire courant d où le script est lancé. Nous allons y remédier. 3. Modifier le script pour que le répertoire de création de l arborescence soit toujours /Unix/TP7/ où est votre répertoire personnel. 4. Ce script utilise une commande de déplacement dans un répertoire. Modifier le script pour que le résultat soit le même et sans se déplacer dans le système de fichiers. 5. Modifier le script afin d afficher, à chaque création d un répertoire rep ou d un fichier fic, une phrase selon la situation : création du répertoire : rep création du fichier : fic Exercice 4. La commande param Dans cet exercice, nous allons écrire un script param.sh permettant d effectuer divers traitements sur ses paramètres. 1. Écrire dans le fichier param.sh le code permettant au script de ré-afficher ses arguments: >./param.sh how I met your mother arguments: how I met your mother 2. Modifier le script pour qu il affiche le nombre d arguments: >./param.sh 0 arguments: >./param.sh Winter is coming 3 arguments: Winter is coming 3. Modifier le script pour qu il affiche ensuite une ligne en pointillés suivi des 2 premiers arguments affichés sur des lignes différentes, suivis de : 3

>./param.sh the walking dead 3 arguments: the walking dead the walking 4. Si vous lui donnez moins de 2 arguments, le script affiche des lignes blanches inutiles. Faites-en sorte que ce ne soit pas le cas: >./param.sh Sherlock 1 arguments: Sherlock Sherlock 5. Faire afficher une seconde ligne de pointillés puis chaque argument suivi d un point (sans espace) sur la même ligne. Pour cela vous utiliserez l option -n de la commande echo et vous passerez au shell bash. >./param.sh Orange Is the New Black 5 arguments: Orange Is the New Black Orange Is Orange. Is. the. New. Black. 6. Faire afficher une 3e ligne de pointillés puis chaque argument sur la même ligne avec en plus la chaine wait for it entre le dernier et l avant dernier. L astuce est d utiliser la commande shift 1. >./param.sh This is gonna be legendary 5 arguments: This is gonna be legendary This is This. is. gonna. be. legendary. This is gonna be wait for it legendary Exercice 5. Ma propre commande ls On souhaite créer une commande permettant de lister les fichiers d un dossier avec un affichage "customisé". 4

1. La commande ls affiche par défaut les éléments sur une ligne: >ls arborescence.sh bin myls.sh test Écrire un script myls.sh permettant de lister les éléments (dossiers et fichiers) du répertoire courant en affichant un nom par ligne: >./myls.sh arborescence.sh bin myls.sh test 2. On souhaite maintenant pouvoir distinguer le dossiers des fichiers. Modifier le script pour qu il affiche + rep: devant les nom de dossiers: >./myls.sh arborescence.sh + rep: bin myls.sh + rep: test 3. On voudrait également voire les fichiers contenus dans les dossiers. Modifier le script pour qu il affiche les éléments contenus dans un dossier en les décalant d une tabulation: >./myls.sh arborescence.sh + rep: bin * myls.sh + rep: test rep1 rep2 rep3 Remarque: vous verrez en cours d Algo comment faire pour descendre dans toute l arborescence comme avec l option -R de ls. 4. Que se passe-t-il si un dossier est vide? Corriger le script pour afficher plutôt: + rep: bin ce dossier est vide! 5. On voudrait pouvoir choisir le nom de répertoire que l on affiche. Modifier le script pour pouvoir l appeler de cette façon: 5

./myls.sh test + rep: rep1 rep11 + rep: rep2 fic1 fic2 + rep: rep3 ce dossier est vide! 6. Le script ne fonctionne pas si on l appelle avec un nom de fichier. Le modifier pour que dans ce cas, il affiche le message: usage:./myls.sh dossier 7. Que fait le script si on l appelle sans argument? Le modifier pour que dans ce cas, il affiche aussi le message d usage. 8. Modifier votre script pour pouvoir changer son nom et que le message d usage reste le bon. Exercice 6. Ma propre commande wc La commande wc permet d afficher le nombre de mots, de lignes et de caractères contenus dans un fichier donné en argument. La lecture de ces données n est pas très humain, une suite de trois entiers. 1. Écrire un script mywc qui rend plus lisible ces données. Lors d un appel./mywc fic vous pourriez afficher : Le fichier fic contient : 127 caractère(s) 7 ligne(s) 32 mot(s) 2. Modifier le script mywc pour que, dans le cas où un fichier ordinaire est mis en argument, la commande./mywc fic affiche le nombre de mots, de lignes et de caractères contenu dans le fichier fic dans le format indiqué à la question précédente, et dans le cas où un répertoire est mis en argument, la commande./mywc rep affiche pour chaque fichier ordinaire contenu dans rep le nombre de mots, de lignes et de caractères contenu dans le fichier dans le même format indiqué ci-dessus. Exercice 7. Gestion des scripts Dans cet exercice, nous allons écrire un script pour gérer les scripts de ce TP. 1. Rappeler quelle est la commande permettant de lister tous les fichiers dont le nom commence par "fic" dans l arborescence se trouvant dans le répertoire courant. 2. Afin de pouvoir traiter séparément les lignes affichées par une commande une_commande, on utilise le code suivant (read permet de lire les lignes une par une): 6

une_commande while read line do < commandes utilisant $line > done Utiliser ceci pour écrire un script manager.sh qui affiche "actualisation du fichier" suivi du nom pour chaque fichier obtenu à la question 1: >./manager.sh actualisation du fichier./test/rep1/rep11/fic1 actualisation du fichier./test/rep1/rep11/fic2 actualisation du fichier./test/rep2/fic1 actualisation du fichier./test/rep2/fic2 3. Modifier le script pour qu après chaque affichage, il transforme le fichier correspondant en un script (en rajoutant l extension.sh). 4. Modifier le script pour qu il ajoute le sha-bang dans chacun des nouveaux scripts obtenus. 5. Modifier le script pour qu il ajoute à chaque script une ligne permettant de lui faire afficher "ceci est le script " suivi du nom du script. Au passage, faire en sorte que tous ces scripts aient les permissions permettant de les exécuter: >./manager.sh actualisation de./test/rep1/rep11/fic1 actualisation de./test/rep1/rep11/fic2 actualisation de./test/rep2/fic1 actualisation de./test/rep2/fic2 >./test/rep2/fic2.sh ceci est le script./test/rep2/fic2.sh 6. Terminer votre script en ajoutant de quoi copier tous les scripts (extension.sh) du répertoire dans bin (en faisant en sorte de pouvoir visualiser chaque opération de copie): >./manager.sh actualisation du fichier./test/rep1/rep11/fic1 actualisation du fichier./test/rep1/rep11/fic2 actualisation du fichier./test/rep2/fic3 actualisation du fichier./test/rep2/fic4./arborescence.sh ->./bin/arborescence.sh./manager.sh ->./bin/manager.sh./myls.sh ->./bin/myls.sh./param.sh ->./bin/param.sh./test/rep1/rep11/fic1.sh ->./bin/fic1.sh./test/rep1/rep11/fic2.sh ->./bin/fic2.sh./test/rep2/fic3.sh ->./bin/fic3.sh./test/rep2/fic4.sh ->./bin/fic4.sh 7