La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

03/09/07L3/unix1 Pratique dUnix introduction aux systèmes dexploitation de type Unix Licence L3 (S5) Benjamin Quétier ½ ATER, Université Paris-Sud XI.

Présentations similaires


Présentation au sujet: "03/09/07L3/unix1 Pratique dUnix introduction aux systèmes dexploitation de type Unix Licence L3 (S5) Benjamin Quétier ½ ATER, Université Paris-Sud XI."— Transcription de la présentation:

1 03/09/07L3/unix1 Pratique dUnix introduction aux systèmes dexploitation de type Unix Licence L3 (S5) Benjamin Quétier ½ ATER, Université Paris-Sud XI

2 03/09/07L3/unix2 Organisation du module Objectif : –Cours (3*1h45): Comprendre le fonctionnement dun OS Apprendre les commandes et outils utiles Savoir se débrouiller (i.e. expliquer un problème, chercher la solution) –TP (5*4h): Pratique du système Langage Shell Langage Python Outils pour la programmation Evaluation: –Un partiel sur feuille au TP3 –Dernier TP : moitié TP, moitié examen sur machine (2h) Matériel : Linux/PC (licence) ; Solaris/SUN (miage)

3 03/09/07L3/unix3 Plan du cours 1. Rappel darchitecture 2. Système dexploitation: introduction 3. Présentation des systèmes Unix et affiliés 4. Premier contact 5. Système de fichiers 6. Processus 7. Notion de réseau 8. Programmation sous Unix 9. Outils pour la programmation

4 03/09/07L3/unix4 1. Architecture (rappel)

5 03/09/07L3/unix5 Architecture dun ordinateur (1) Mémoire Stockage Périphériques E/S Bus CPU

6 03/09/07L3/unix6 Architecture dun ordinateur (2) micro-processeur (CPU): unité de contrôle –Registres, Unité arithmétique et logique (ALU), caches,... –Architecture multi-threading, multi-core, multi-processeurs,... Mémoire principale –Mémoire « vive », RAM Mémoire cache Mémoire « secondaire » –Souvent, disques durs. Généralement, daccès séquentiel. Contrôleur de périphériques –Permet daccéder aux périphériques de manière transparente Bus de communication –Bus de données –Bus dadresse –Bus de commande

7 03/09/07L3/unix7 Architecture dun ordinateur (3) Interruptions –Matérielle : périphériques vers processeur –Logicielle : processeur vers processeur Modes noyau et utilisateur –Permet de restreindre les possibilités daction –Mode noyau : aucun contrôle –Mode utilisateur : possibilité réduite => Comment utiliser un ordinateur?

8 03/09/07L3/unix8 2. Système dexploitation

9 03/09/07L3/unix9 Rôle de lOS matériel noyau applications Shell/Interfaces

10 03/09/07L3/unix10 Définitions Système dexploitation ou OS (Operating System) Ensemble de programmes et de librairies Deux fonctions: –Interface standard entre lutilisateur et la machine –Gestion des ressources Gestion mémoire vive Accès aux périphériques Gestion espace disque Gestion des programmes et processus Gestion des droits daccès

11 03/09/07L3/unix11 Classification Par session : –système conversationnels (Unix, Windows, MacOSX, etc) –système transactionnels (billet avion) Par requête : –machine temps réel, garantie de services. Par travaux (batch) : –traitement par lots (machines de calcul; mise a jour BD). Mono-tâche / multi-tâches Mono-utilisateur / Multi-utilisateurs Mono-processeurs / Multi-processeurs Manipulation des données / développement des programmes. Qualité dun OS : –Fiabilité, Efficacité, Facilité demploi, Adaptabilité, Mesurabilité (historique/monitoring).

12 03/09/07L3/unix12 Quelques OS Microsoft Windows XP et Windows NT –Interface graphique, logithèque très complète, facile dutilisation. –Payant, propriétaire, très gourmand en mémoire. Unix –Très stable, multi-utilisateurs par essence –Lourd, parfois payant. Linux –Interface graphique, communauté très active, très bons outils de développement, gratuit et ouvert, logithèque en perpétuelle augmentation. –Derniers matériels pas toujours supportés, manque quelques logiciels. MacOS X (Apple, basé sur BSD) –Interface graphique, très facile dutilisation, très fiable, basé sur UNIX –Payant, propriétaire.

13 03/09/07L3/unix13 3. Unix et Linux

14 03/09/07L3/unix14 Unix : caractéristiques Ecrit à 98% en langage C, portable. Origine dans années 1970 par AT&T et Berkeley Norme POSIX de certification des systèmes UNIX Enormément de versions –LINUX, HP/UX, AIX, SOLARIS, IRIX, MAC OS X, … Caractéristiques: –Multi-tâches –Multi-utilisateurs –Sécurité (fonction et appartenance des fichiers et répertoires) –Indépendance des périphériques (notion de device)

15 03/09/07L3/unix15

16 03/09/07L3/unix16 Historique 1965: Multics (MIT, Bell Labs, General Electrics) 1978: ATT commercialise Unix Système : Luniversité de Berkeley distribue gratuitement BSD (Berkeley Software Distribution) 1983: ATT System V vs. BSD : GNU (Richard Stallman, MIT) 1987: X-Windows (MIT) - première GUI 1991: naissance de LINUX (Linus Torvald) 2001: Mac OS X (basé sur BSD) Aujourdhui : –Linux (soutenu par IBM, Sun, HP, Novell, etc.), nombreuses distributions (mandriva, ubuntu, debian, etc.) –Autres Unix gratuit, voire open-source: OpenBSD, … –Autres Unix propriétaires: Mac OS X, Solaris/Sun, HP/UX, AIX/IBM, …

17 03/09/07L3/unix17 Unix : avantages & inconvénients Avantages –Très fiable –Multi-plateformes –Gestion de tous les services (mail, Web, FTP, compilateurs, administration, etc.) –Logithèque très vaste et comprenant de nbx free/sharewares –Plusieurs interfaces graphiques et shells disponibles. Inconvénients –Trop de standard (=> portage difficile) –Administration lourde et complexe –Le shell fait peur

18 03/09/07L3/unix18 GNU/Linux Pour lutilisateur: –Gratuit et ouvert, disponible en ligne –Facile à installer, convivial, complet dès linstallation –Réactivité de la communauté (pilotes matériel) –Multiples interfaces graphiques utilisateur –Logithèque très complète (et souvent gratuite) Ex.: OpenOffice (equiv. Word/Excel), Gimp (equiv. Photoshop), Oracle (payant, par contre - des alternatives gratuites existent en standard), etc. Pour les entreprises –Distribués aussi par des grandes entreprises : IBM, SGI,... –Spécialisable : clusters, serveurs web, serveurs base de données,... –Très stable => Linux est une véritable alternative aux OS commerciaux

19 03/09/07L3/unix19 4. Premier contact avec Unix

20 03/09/07L3/unix20 Accéder à la machine [Rappel] Unix est un OS multi-utilisateurs. I.e. plusieurs utilisateurs peuvent utiliser le même ordinateur (directement ou via des connexions distantes), parfois en même temps. Cela implique –Didentifier l'utilisateur et lui donner accès a un espace privé; Notion de comptes utilisateurs –De garantir la sécurité des données et du système. Notion de droits daccès

21 03/09/07L3/unix21 1 ère étape : connexion Le premier écran que lon voit sous Unix permet de se connecter (« log in »). Son rôle : identifier lutilisateur et ouvrir sa session. Une authentification = couple (login/password) Exemple de login: login: quetier Password: ******** Généralement votre nom Un mot de passe COMPLIQUÉ!

22 03/09/07L3/unix22 authentification (login/password) (1/3) Préalable obligatoire: avoir un compte Par défaut, il existe toujours un compte spécial: root –root = super-utilisateur –Cest ladministrateur du système, il a tous les droits, il peut effectuer toutes les opérations de maintenance, mises à jour, et installations de produits... –Généralement, vous ne connaissez pas son mot de passe (sauf sil sagit de votre ordinateur installé par vos soin) => Il faut généralement aller voir ladministrateur système pour obtenir un compte utilisateur.

23 03/09/07L3/unix23 authentification (login/password) (2/3) Connexion en 6 étapes: 1Demande du login: login : quetier 2Demande du mot de passe: Password: -m0nm0d3Pa#, 3Cryptage du mot de passe (algorithme MD5 ou autre) : -m0nm0d3Pa#, -> NWI0nnniSjo59

24 03/09/07L3/unix24 4Comparaison de la chaîne cryptée avec le mot de passe crypté mémorisé quelque part sur le disque lors de l'ouverture du compte par root ou du dernier changement de mot de passe fait par lutilisateur. exemple de compte (ligne du fichier /etc/shadow) : quetier:$1$b5O1vEF9$azeqEEncTwTjBywt/N6BN/:13626:0:99 999:7::: 5Comparaison des deux chaînes de caractères, et si elles sont identiques, cest bon ; sinon re-demande de login. 6Un environnement graphique est lancé (KDE, Gnome, etc.) authentification (login/password) (3/3)

25 03/09/07L3/unix25 2 ème étape: accès aux ressources Via linterface graphique – De nombreux outils dadministration existent – Plus facile mais moins proche de la machine Via un terminal – Un terminal donne accès à un shell ; – Le shell est un interpréteur de commandes qui passe son temps à attendre qu'on lui donne quelque chose à faire (via le clavier); – Le shell permet d'accéder directement ou indirectement aux ressources de la machine (disque, périphériques) via des commandes; – Intérêt: plus puissant / modulaire / rapide / universel => Au cours de ce module, on présentera les principes et les commandes

26 03/09/07L3/unix26 Shell –Pendant qu'il attend, le shell affiche un prompt pour montrer qu'il est prêt a recevoir une commande; –Il existe plusieurs shells, parmi les plus connus: sh, csh, ksh, tcsh, bash... Chacun avec leurs points forts et leurs points faibles.

27 03/09/07L3/unix27 Syntaxe dune commande La syntaxe générale d'une commande est de la forme: commande [option(s)] [argument(s)] Une commande permet dagir sur le système, au sens large –ex : administration, lancement de programme,... Une commande peut (ou non) avoir des options et/ou arguments. exemples: ~ % logout … ~ % ls -la …

28 03/09/07L3/unix28 Exemple 1 : uname uname permet dafficher des informations sur la machine Loption « -a » permet de demander un affichage détaillé Exemples: uname -a Linux laptiptop generic #2 SMP Thu Jun 7 20:19:32 UTC 2007 i686 GNU/Linux acces*/users/archi/quetier >uname -a Linux acces #3 SMP Mon May 9 16:09:55 CEST 2005 i686 GNU/Linux lri7-236:thomasherault 09:07$ uname -a Darwin lri7-236.lri.fr Darwin Kernel Version : Wed May 23 16:33:00 PDT 2007; root:xnu ~1/RELEASE_I386 i386 i386

29 03/09/07L3/unix29 Exemple 2 : man prague ~ % man uname Reformatting page. Wait... Done User Commandsuname(1) NAME uname - print name of current system SYNOPSIS uname [ -aimnprsvX ] DESCRIPTION The uname utility prints information about the current system on the standard output. When options are… OPTIONS The following options are supported: -a Print basic information currently available from the system (…) man (=manual) permet dafficher laide sur une commande Exemple: La commande ultime

30 03/09/07L3/unix30 5. Système de fichiers

31 03/09/07L3/unix31 Stockage des fichiers Périphériques de stockage –disques durs, cd-roms, dvd, bandes,... –Permettent de stocker (principalement) des fichiers Disques durs, quest ce que cest? –Un ensemble de blocs de même taille (p.ex. 512 octets) chacun référencé par un numéro –Les disques durs ne connaissent pas la notion de fichiers Un fichier, quest ce que cest? –Suite doctets représentant des données (programme, texte, musique, etc.)

32 03/09/07L3/unix32 Le système de fichiers (1) Rôle principal : –Stocke et organise les fichiers sur les périphériques de stockage –Du point de vue de lutilisateur: organise les fichiers dans des répertoires Métaphore : –organiser des « feuilles » dans des « classeurs » –Un classeur peut contenir une ou plusieurs feuilles ou classeurs Repertoire1 Repertoire2 Repertoire3 fichier2 Repertoire4 fichier1 fichier3 /

33 03/09/07L3/unix33 Le système de fichiers (2) Le système réserve une place pour –Les méta-données : Caractéristiques du système de fichier Caractéristiques de chaque fichier (localisation, type, droits, …) État des blocs (libre ou alloué) Nombre de fichiers –Les données : fichiers et répertoires effectivement stockés Reparties en clusters sur le disque (un cluster regroupe plusieurs blocs) Le système de fichier offre –Des services de base Ouverture, création, écriture, lecture, déplacement, fermeture, suppression, modification des fichiers et répertoires; –Des services supplémentaires Changements des droits, verrouillage, quota, liens, etc. => En pratique, plusieurs systèmes de fichiers sont disponibles (Ext3, FAT32, HFS, etc.)

34 03/09/07L3/unix34 Référencement dans larborescence chemin absolu: –Commence par un « / » –chemin donné à partir de la racine –exemple: /Repertoire1/ répertoire courant: –«. » : endroit ou l'on se trouve répertoire père du répertoire courant: –«.. » : répertoire contenant le répertoire courant –Repertoire1 est le père de Repertoire2 chemin relatif –Toujours p/r au répertoire courant. –Exemple: Depuis Repertoire4,../../Repertoire2 donne le chemin relatif de Repertoire2 –Note: en absolu, cela correspond à /Repertoire1/Repertoire2 Répertoire « home » –« ~ » –c'est l'endroit ou ou le shell est lancé lorsque la phase d'authentification est terminée. Repertoire1 Repertoire2 Repertoire3 fichier2 Repertoire4 fichier1 fichier3 /

35 03/09/07L3/unix35 Commandes : arborescence Changement de répertoire? –Commande cd –exemples: cd ~ cd /Repertoire1/Repertoire2 cd../../ Ou suis-je ? –Commande pwd –exemple: cartan ~ %pwd /users/sys/gemmerle Quy a t'il ici ou la? –Commande ls –exemple: ls ls -la ls /Repertoire1 Repertoire1 Repertoire2 Repertoire3 fichier2 Repertoire4 fichier1 fichier3 /

36 03/09/07L3/unix36 Commandes sur répertoires Manipulation de répertoire –cd : se déplace vers un répertoire cible (change dir.) –pwd : donne lemplacement courant –ls : donne le contenu du répertoire « ls -a » => affiche aussi les fichiers cachés –mkdir : crée un répertoire (make dir.) –rmdir : efface un répertoire vide (remove dir.)

37 03/09/07L3/unix37 Commandes sur fichiers Manipulation de fichiers –cat : liste le contenu dun fichier –rm : efface un fichier (remove) –cp : copie un fichier dun emplacement à un autre (copy) –mv : deplace un fichier dun emplacement à un autre (move) –ln : crée un lien vers un fichier « ln -s repertoireAlier nomdulien »

38 03/09/07L3/unix38 Commandes sur disques df : donne taux doccupation dun disque prague ~ % df -k Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t3d0s % / /dev/dsk/c0t3d0s % /usr /dev/dsk/c0t3d0s % /var /dev/dsk/c0t3d0s % /tmp /dev/dsk/c0t4d0s % /global/new-bin antares2:/global/solaris % /local/biniecn du : place occupée (ATTENTION à lunité) prague /usr % du -k bin include kernel lib bin 6120 include 1770 kernel lib Ou encore, option « -h » : « human readable»

39 03/09/07L3/unix39 Arborescence typique sous Unix binlibetctmpusrdevvarhomelost+found binlibmanincludespooladmlog mailprinter Comment garantir lintégrité de tout ça…? => les droits

40 03/09/07L3/unix40 Droits d'accès (1) Constat –Chaque utilisateur à un répertoire personnel –Le disque contient aussi des données système Comment assurer la protection des données? Notions de droits daccès –Trois niveaux : propriétaire (User) ; groupe (Group) ; autre (Other) –Trois options : lecture (Read), ecriture (Write), exécution (eXecute) –Options spéciales : setUID, setGID, sticky –La commande « ls -l » permet de voir les droits prague ~ % ls -la /etc/passwd -rwxr-xr-- root other 311 Aug /etc/passwd => « Le fichier passwd dans le répertoire /etc peut être lu/modifié/exécuter par le super- utilisateur, lu et exécuté par les membres du groupe other et juste lu par tous les autres utilisateurs. »

41 03/09/07L3/unix41 Droits d'accès (2) -Exemples : -« -rwxrwxrwx » -« drwx______ » -« -rwxr_xr_x » -« -rw_r__r__ » -Interprétation : -type du nœud [1 caractère] -« - » : fichier, « d » : répertoire, « l » : lien -droits du propriétaire / « user » [3 caractères] -read/write/execute -droits du groupe / « group » [3 caractères] -read/write/execute -droits des autres / « other » [3 caractères] -read/write/execute

42 03/09/07L3/unix42 Commandes : Modification des droits (1/2) La commande: chmod (change mode) Première méthode: numérique –on considère « rwx » comme un nombre binaire exemples: –rwx => 7 –r-x => 5 –rw- => 6 –--x => 1 Exemple: –pour mettre les droits rwxr_xr__ sur /etc/passwd : « chmod 754 /etc/passwd »

43 03/09/07L3/unix43 Commandes : Modification des droits (2/2) Deuxième méthode: u: représente le propriétaire (user) g: représente le group o: représente les autres a: représente tout le monde: (u,g et o) +: représente la permission -: représente l'interdiction r: read permission w: write permission x: execute permission pour l'exemple précédent: chmod a+r,u+w,u+x,g-w,g+x,o-w,o-x /etc/passwd Règle générale: –La première méthode pour fixer des droits initiaux, la deuxième pour modifier.

44 03/09/07L3/unix44 Commandes sur les droits dun nœud Chown –changer le propriétaire d'un fichier Chgrp –changer le groupe d'un fichier Newgrp (pas très utile) –passer d'un groupe à un autre lorsque un utilisateur appartient à plusieurs groupes (attention différences entre SYSV et BSD).

45 03/09/07L3/unix45 6. Les Processus

46 03/09/07L3/unix46 Processus (1) Un Unix est une machine généralement pseudo multi-taches - Chaque tache est appelée processus - le processeur s'occupe tour a tour d'exécuter une partie dun processus, durant un temps donné (quantum). Au démarrage de la machine, un processus père de tout le monde est lance: init (numéro 1). A partir des informations contenues sur le disque de boot le processus init lance d'autres processus pour mettre en route les services disponibles sur la machine. Lexique : CPU (Central Processing Unit)

47 03/09/07L3/unix47 Processus « Processus » : –Unix est un système multi-tâche préemptif –Un processus est une abstraction dun programme en cours dexécution Lié à la notion de temps partagé : –Ordonnancement / scheduler ; politique dordonnancement Par tourniquet / priorité / durée variable (quantum diff. selon processus) –Context switching entre processus (sur interruption) –Un processus cest: programme + espace mémoire ( + d'autres ressoussorces) –Un processus à plusieurs états possibles nouveauen exécution prêt stoppé En attente (suspendu) terminé

48 03/09/07L3/unix48 Processus (2) : caractéristiques Un processus est identifié par un numéro unique: –« PID » : Processus IDentifier Il est attribué au lancement du processus Il est unique pour la session Il peut être différent dune session à lautre Exemple : 4134, 14, etc. Arborescence de processus –Notion de filiation entre processus –Le processus « init » est le seul sans père –Un shell est un processus, dont le père est la session –Tous programmes lancés depuis un shell à (par défaut) celui-ci pour père Priorité des processus –La priorité dun processus varie entre -19 (prioritaire) et +20 (non prioritaire) –Cela détermine le temps processeur alloué à chaque processus

49 03/09/07L3/unix49 Processus: lancement –on récupère la main une fois que c'est fini ; ;... ; –les commandes sont exécutées séquentiellement ( ) –la commande est exécutée par un sous-processus –exemple: cd /etc/src (cd /var/yp ; make) pwd -> /etc/src commande & –commande mise en tache de fond (i.e. détachée du terminal qui la lance) –exemple: « emacs & » –On peut faire la même chose avec : « emacs » => ctrl+Z => bg

50 03/09/07L3/unix50 Interface dun processus Tout programme Unix, dès son lancement, possède 3 fichiers ouverts : –Lentrée standard (stdin ou fichier &0) –La sortie standard (stdout ou fichier &1) –La sortie erreur (stderr ou fichier &2) processus stdin stdout stderr

51 03/09/07L3/unix51 Processus: redirections et comm. (1/2) Il est possible de rediriger les E/S depuis/vers des fichiers… –Opérateurs de redirection :, >>, 2> –Exemple : « ls -l > contenudufichier.txt » Opérateurs de redirections : –commande > la sortie standard est redirigée dans (créé ou écrasé) Exemple: « ls -R / > resultat.txt » –commande >> la sortie standard est redirigée et concaténée à –commande l'entrée standard est Exemple : deux manières de faire la même chose $ rm -i montexte.txt rm: remove montexte.txt (yes/no)? Y $ echo y > pipo $ rm -i montexte.txt < pipo

52 03/09/07L3/unix52 Processus: redirections et comm. (2/2) … ou depuis/vers dautres programmes –Notion de « pipes » : | –Commande_1 | commande_2 | …... | commande_i la sortie de la commande_1 est l'entrée de la commande_2… etc. exemple: « ls -R / | more » « ls -l | grep monfichier.txt »

53 03/09/07L3/unix53 Commandes de consultation des processus (1) Commande « uptime » –Statistiques générales sur le fonctionnement du système –Exemple prague ~ % uptime 10:58am up 82 day(s), 1:02, 0 users, load average: 0.02, 0.01, 0.02

54 03/09/07L3/unix54 Commandes de consultation des processus (2) Commande « ps » –Donne les processus qui sont actuellement lancés –Exemple doptions: ps -aux (SunOS 4, Linux) ps -edalf (Solaris, SGI, Linux) –Exemple: Prague ~ %ps -aux F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 8 S root f f5985a70 Sep 14 ? 0:11 /etc/init - 8 S root f f5d0577a Sep 14 ? 0:00 sendmail 8 O root f60c :46:12 pts/0 0:00 ps -edalf 8 S bredeche f72d f6a9ab82 10:46:01 ? 0:00 xterm 8 S bredeche f6f f6f :46:03 pts/0 0:00 sh 8 S gemmerle f6f f6f :46:03 pts/0 0:00 xterm

55 03/09/07L3/unix55 Commandes de consultation des processus (3) Commande « top » –Permet de connaître en temps réel les processus lancés et la charge de la machine –Exemple: top - 16:43:32 up 4:00, 5 users, load average: 0.10, 0.21, 0.21 Tasks: 131 total, 2 running, 129 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3%us, 0.2%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.2%hi, 0.3%si, 0.0%st Mem: k total, k used, k free, k buffers Swap: k total, 0k used, k free, k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5363 root m 12m S :09.59 Xorg 6078 quetier m 8928 S :29.76 sensors-applet quetier R :00.28 top 1 root S :02.30 init 2 root RT S :00.00 migration/0 3 root S :00.12 ksoftirqd/0 4 root RT S :00.00 watchdog/0

56 03/09/07L3/unix56 Commandes daction sur les processus (1) Commande « kill » –envoi un signal a un processus, ce signal peut être: d'arrêt, de reprise, d'autodestruction, de destruction, de mise à jour (si cela a été prévu dans la programmation du processus). –Exemples: kill -s STOP pid kill -s CONT pid kill -s KILL pid …OU… kill -9 pid – Liste des signaux possibles: « kill –l » (lettre l en minuscule)

57 03/09/07L3/unix57 Commandes daction sur les processus (2) Commandes « nice » (et « renice ») –Gestion de la priorité d'un processus –Valeur: Par défaut, 0 Comprise entre -20 et 19 Plus la valeur est petite, plus le processus est prioritaire Seul le super-utilisateur peut mettre des valeurs négatives –Exemple nice -n +5 renice -n +5

58 03/09/07L3/unix58 Quelques processus sous Linux init-+-atalkd |-automount |-crond |-inetd |-rpc.statd |-sendmail |-syslogd |-xdm-+-[xdm---Xsession---.xsession---xterm---. xsession-+-twm | | |-xclock] | | |-xmultibiff] | | `-xterm] | `-xdm---Xsession---.xsession-+-kbgndwm | |-kfm | |-kpanel | |-krootwm | `-kwm |-xfs `-ypbind---ypbind

59 03/09/07L3/unix59 7. Notions de réseaux

60 03/09/07L3/unix60 Adresses IP et Internet De la même manière qu'une adresse postale comporte un pays (par défaut le pays ou la lettre a été postée), une ville, une rue, un numéro. Pour repérer un machine sur internet, il faut un nom de machine et un nom de domaine. Exemples: acces.lri.fr -> domaine=lri.fr ftp.inria.fr -> domaine=inria.fr -> domaine=pagesjaunes.fr

61 03/09/07L3/unix61 Numéros IP (Internet Protocol) Une adresse IPv4 est de la forme: XXX.YYY.ZZZ.TTT où ??? est un nb entre 0 et 255. exemples: acces.lri.fr -> ftp.inria.fr -> > ou ou... Remarques: * une adresse => plusieurs machines * Un domaine => plages d'adresses éventuellement non contiguës

62 03/09/07L3/unix62 Nslookup: exemples nslookup Server: Address: #53 Non-authoritative answer: canonical name = canonical name = Name: Address: Name: Address: Name: Address: Name: Address:

63 03/09/07L3/unix63 Notion de ports et de démons On peut voir les ports comme des oreilles 20 ftp 22 ssh 23 telnet 25 smtp... Démon ftp Démon ssh Demon telnet Démon mail

64 03/09/07L3/unix64 Démon (daemon) Fonctionnement client-serveur: - un serveur qui attend des requêtes d éventuels clients - un client qui émet des requêtes vers un serveur - Un démon est un programme qui tourne en fond de tache (background) qui attend des requêtes. - Un démon est un serveur dans un modèle client-serveur. - On communique avec un démon via le(s) numéro(s) de port(s) qu'il 'écoute'. exemple: httpd qui est de démon serveur de pages WWW 'écoute' le port 80 et répond aux requêtes http qui lui sont soumises (s'il a le droit :)

65 03/09/07L3/unix65 inetd Un démon c'est bien mais ça utilise de la mémoire et du CPU. => inetd c'est un démon dont le rôle est d'activer le service correspondant a un requête donnée. exemple: Sur une machine de faible puissance, il est possible de 'déclencher' l'activation de httpd seulement lorsque qu'une requête WWW est soumise a la machine.

66 03/09/07L3/unix66 /etc/inetd.conf # Configuration file for inetd(1M). See inetd.conf(4). # Ftp and telnet are standard Internet services. ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # Shell, login, exec, comsat and talk are BSD protocols. shell stream tcp nowait root /usr/sbin/tcpd in.rshd login stream tcp nowait root /usr/sbin/tcpd in.rlogind exec stream tcp nowait root /usr/sbin/tcpd in.rexecd # Tftp service is provided primarily for booting. Most sites run this tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot # The rusers service gives out user information. Sites concerned # with security may choose to disable it. rusersd/2-3 tli rpc/datagram_v,circuit_v wait root \ /usr/lib/netsvc/rusers/rpc.rusersd rpc.rusersd

67 03/09/07L3/unix67 Le fichier: /etc/services #ident /07/08 SMI" /* SVr */ # Network services, Internet style ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail tftp 69/udp www 80/tcp http # WorldWideWeb HTTP pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 ntp 123/udp # Network Time Protocol imap2 143/tcp imap # Interim Mail Access Proto v2 imap2 143/udp imap snmp 161/udp # Simple Net Mgmt Proto z /tcp wais # NISO Z39.50 database z /udp wais imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3...

68 03/09/07L3/unix68 netstat -a netstat -a Connexions Internet actives (serveurs et établies) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat tcp 0 0 localhost:2208 *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 localhost:2207 *:* LISTEN tcp6 0 0 *:ssh *:* LISTEN udp 0 0 *:32768 *:* udp 0 0 *:bootpc *:* udp 0 0 *:mdns *:*

69 03/09/07L3/unix69 telnet TELNET est un protocole de communication possible entre deux machines. telnet est une application qui permet de se connecter sur une autre machine. exemple: loria ~ %telnet cartan.iecn.u-nancy.fr Trying Connected to cartan.iecn.u-nancy.fr. Escape character is '^]'. SunOS 5.7 login: gemmerle Password: ********** Last login: Mon Nov 20 10:54:48 from craffe.loria.fr Sun Microsystems Inc. SunOS 5.7 Generic October 1998 cartan ~ %

70 03/09/07L3/unix70 rlogin rlogin est une application qui permet de se connecter sur une autre machine. Elle offre en plus la possibilité de ne pas répéter la procédure d'identification. Mécanismes pour éviter la procédure d'identification: - Au niveau de l'utilisateur: $HOME/.rhosts liste privée d item de la forme: nom de machine/nom de login exemple: cartan ~ %more.rhosts loria.loria.fr - Au niveau de la machine: /etc/hosts.equiv

71 03/09/07L3/unix71 ssh ssh - secure shell client (remote login program) L'idée: - chaque machine a une bi-clés (Clé publique/Clé privée) - échange a l'aide des bi-clés d'une clef de session - codage de la session a l'aide de la clef négociée

72 03/09/07L3/unix72 ftp/sftp (file transfer program) Exemple: loria ~ %ftp cartan.iecn.u-nancy.fr Connected to cartan.iecn.u-nancy.fr. 220 cartan.iecn.u-nancy.fr FTP server (SunOS 5.7) ready. Name (cartan.iecn.u-nancy.fr:gemmerle): gemmerle 331 Password required for gemmerle. Password: 230 User gemmerle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> ? Commands may be abbreviated. Commands are: mget put mkdir pwd exit get mput bye help cd user lcd open ls ftp> get.cshrc local:.cshrc remote:.cshrc 200 PORT command successful. 150 Binary data connection for.cshrc ( ,1403) (2 bytes). 226 Binary Transfer complete. 2 bytes received in secs (0.096 Kbytes/sec) Version sécurisée : SFTP Note: commande bi pour un transfert binaire si vous êtes sous windows.

73 03/09/07L3/unix73 scp : copie sécurisée scp /tmp The authenticity of host 'vs23.lri.fr ( )' can't be established. RSA key fingerprint is bc:ff:c0:36:de:0d:65:c7:3f:c1:5e:0e:d0:3b:b1:23. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'vs23.lri.fr, ' (RSA) to the list of known hosts. Password: passwd 100% KB/s 00:00 scp /tmp/passwd Warning: Permanently added 'vs23' (RSA) to the list of known hosts. Password: passwd 100% KB/s 00:00

74 03/09/07L3/unix74 8. Programmation sous Unix

75 03/09/07L3/unix75 Programmation sous Unix Langages interprétés –Langage de Shell : sh, tcsh, ksh, zsh, bash –Langage de Script : perl, python, … Langages compilés –C / C++ –Java (machine virtuelle) –Etc.

76 03/09/07L3/unix76 sh !# /bin/sh TOTO='bonjour je suis sh' echo $TOTO

77 03/09/07L3/unix77 python –Python est un langage de programmation interprété, multi- paradigme. Il autorise la programmation impérative structurée, orientée objet, et fonctionnelle. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions.

78 03/09/07L3/unix78 9. Outils pour la programmation

79 03/09/07L3/unix79 Quelques outils Editeurs de texte : vi, emacs, jedit, nedit, kate, eclipse, … Make Gestionnaires de versions : svn, subversion Compilateurs : gcc, javac, ocamlc

80 03/09/07L3/unix80 Make : construire un exécutable Make permet de reconstruire automatiquement vos programmes dés que le code source a été modifié. Make est organisé sous forme de règles de la forme : TARGET: DEPEND1 DEPEND2... COMMAND1 COMMAND2 Cet règle permet de construite TARGET (i.e. La cible) en fonction des fichiers dont celle-ci dépend (cf. DEPEND ). Si vous tapez make dans un repertoire contenant un fichier Makefile, alors la première cible définie dans le Makefile sera construite. Vous pouvez choisir la cible à construire en tapant make X (avec X, le nom de votre cible).

81 03/09/07L3/unix81 Make : un exemple simple fichier Makefile all : montexte.ps montexte.html montexte.html : montexte.tex latex2html montexte.tex montexte.dvi : montexte.tex latex $< montexte.ps : montexte.dvi dvips -o $< clean : rm -f montexte.ps montexte.dvi montexte.html : la cible --- $< : la (première) source --- $^ : toutes les sources

82 03/09/07L3/unix82 Make : un exemple # This is an example Makefile. JC = javac JE = java JAVAFLAGS = -server EXEC = monprogramme.class monprogramme.class: monprogramme.java $(JC) monprogramme.java %.class: %.java $(JC) $(JAVAFLAGS) $< run: monprogramme.class java monprogramme hello: echo 'hello!' all: monprog hello clean: rm -f $(EXEC) cleanall: rm -f *.class make monprogramme.class make monprog.class make all make clean make cleanall make hello Gère les dépendances (i.e. nexécute une nouvelle entrée que si nécessaire) Ne pas oublier les tabulations!

83 03/09/07L3/unix83 CVS - système de contrôle de version CVS est un système de gestion des sources permettant à un groupe gens de travailler ensemble sur le même code (de programme). Idée de base : un dépôt centralisé (REPOSITORY) qui contient toutes les informations sur les différentes modifications effectuées par les différentes personnes intervenant sur le projet. Ces « traces » sont stockées de manière efficace de manière à ne pas prendre trop de place (on a un log des modifications, pas des images!) Chacun peut éditer ses copies locales des fichiers partagés; une fois lédition terminée, on peut sauver ceux-ci pour quils soient enregistré au niveau de la copie centrale. Quelques commandes utiles: – setenv CVSROOT XXX, où XXX est un répertoire accessible en ecriture qui va servir à héberger les informations de votre groupe. Tous les membres du groupe doivent référencer CVSROOT sur le même repertoire!

84 03/09/07L3/unix84 CVS : quelques commandes cvs init Initialise votre repertoire local pour recevoir les fichiers du repository. cvs checkout XXX Récupère la dernière copie de XXX (. pour tous les fichiers) en local. cvs add XXX Ajoute un fichier ou répertoire XXX à lensemble des fichiers/répertoires (lerepository) que vous partagez avec le groupe. cvs commit XXX Sauvegarde vos changements dans le repository. Si qqun à entre temps déja enregistré (= commit) une version, vous devez dabord exécuter cvs update. cvs update XXX met à jour votre copie locale du fichier ou du répertoire XXX (en fonction du dernier commit en date). Cette commande permet de savoir si vos propres changements rentrent en conflits avec ceux commités entre temps par un tiers.

85 03/09/07L3/unix85 Successeur de CVS : Subversion Commande « svn » Toutes les options récentes de CVS Commande de renommage de fichiers/répertoires Moteur de gestion de versions plus fiable

86 03/09/07L3/unix86 En cas de problème : Noubliez pas la commande « man » N'oubliez pas non plus google fin du cours L3-Unix (5h) man unix

87 03/09/07L3/unix87 ANNEXES

88 03/09/07L3/unix88 Caractères spéciaux * remplace une chaîne de caractères quelconques ? remplace un caractère quelconque [av] remplace a ou v [a-v] remplace les lettres comprises entre a et v $var variable shell de nom var

89 03/09/07L3/unix89 Montage disque à distance (NFS) Exemple: loria /tmp/toto share -o rw=cartan /tmp/toto cartan mount loria:/tmp/toto /tmp/toto mount: loria:/tmp/toto: Permission denied share -o rw=cartan /tmp/toto mount loria:/tmp/toto /tmp/toto loria:/tmp/toto et cartan:/tmp/toto représentent le même endroit disque Pour annuler la manip: umount /tmp/toto unshare /tmp/toto

90 03/09/07L3/unix90 Partage disque automount install automatic mount points Pour cela automount a besoin de 'maps. La map par défaut est: /etc/auto_master ou /etc/auto.master exemple: cartan ~ %more /etc/auto_master # # Map montage # /local local_map /users users_map => existence des fichiers: /etc/local_map /etc/users_map

91 03/09/07L3/unix91 Les pipes Un pipe est un fichier temporaire, nommé ou non, utilisé par 2 groupe de programmes en même temps : les producteur et les consommateurs. Habituellement, il ny a quun producteur et un consommateur. Le pipe le plus commun dUnix est symbolisé par « | ». Dans tout shell, ce symbole utilise la syntaxe suivante : commande1 | commande2 La sortie standard de la commande1 est écrite dans un pipe sans nom; lentrée standard de la commande2 lit dans ce même pipe.

92 03/09/07L3/unix92 Les pipes : cest quoi ? Cest un fichier FIFO dune longueur maximale variable (de 512 à 16K), avec 2 descripteurs: * Un pour lécriture, garantie atomique; non bloquante tant que la taille maximale nest pas atteinte, * Un pour la lecture, garantie atomique, bloquante si le fichier est vide. En fait, cest bien plus complexe; plusieurs implantations existent…

93 03/09/07L3/unix93 Redirection des E/S (sh) Com X> fichier : * X = 1 ou absent : la sortie standard est écrite dans file; * X = 2 : id avec la sortie erreur. Com X>> fichier : écrit à la fin de fichier. Com <> fichier : les E/S se font dans fichier. Com < fichier : lentrée standard est lue dans fichier. Com << MOT : toutes les lignes suivantes du shell jusquà MOT constitueront un buffer qui peut être lu par com.

94 03/09/07L3/unix94 Mixage des sorties 2>&1 : redirige la sortie erreur sur la sortie standard. Lévaluation est de gauche à droite; pour mettre toutes les sorties dun programme dans le même fichier : com1 >file 2>&1 et non com1 2>&1 >file La commande nohup rend une commande insensible aux signaux de fin du terminal, et détourne ses E/S (utile en tâche de fond). Elle peut être émulée par com1 >&- &1 Cela ferme les 3 E/S de la commande. Nétant plus relié au shell, elle ne meurt pas quand le shell est arreté.

95 03/09/07L3/unix95 Suspension d'exécution d'une tache commande & commande mise en tache de fond (background) exemple: emacs & commande Ctrl Z: la tache est suspendue bg pour la mettre en fond de tache jobs pour connaitre la liste des taches de fond et leur numéro %com la tache dont le nom de commande commence par com est réactivée %numéro pour la reprendre la tache {numéro} %+ pour la reprendre la tache marquée + (courante) %- pour la reprendre la tache marque - (précédent la courante)

96 03/09/07L3/unix96 vi (éditeur standard unix) Disponible sur tous les Unix Deux modes: - mode commande - mode insertion Pour entrer en mode insertion: i ou a Pour sortir du mode insertion: Esc En mode commande, h ( ), j(V), k(^), eff. le caract.. sous le curseur, d efface la ligne, :wq! pour sauver et sortir. un peu barbare…

97 03/09/07L3/unix97 Éditeur: emacs - xemacs (1/3) ;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, first visit that file with C-x C-f, ;; then enter the text in that file's own buffer. --**-XEmacs: *scratch* (Lisp Interaction)----All

98 03/09/07L3/unix98 Éditeur: emacs - xemacs (2/3) A sa naissance, uniquement en mode texte maintenant, il existe en mode graphique On a toujours la possibilité: [x]emacs -nw Cohabitation des modes commande et insertion grâce aux touches Ctrl et Esc Séparation en deux de l'écran: + une grande fenêtre d'édition + une ligne de commande On effectue généralement une commande avec des séquences de touches commençant par Esc ou Ctrl

99 03/09/07L3/unix99 Éditeur: emacs - xemacs (3/3) Pour se déplacer: Ctrl + p pour monter le curseur d'une ligne (previous) Ctrl + n pour descendre le curseur d'une ligne (next) Ctrl + f pour avancer le curseur d'une case (forward) Ctrl + b pour reculer le curseur d'une case (backward) Ctrl + e pour aller a la fin de la ligne Ctrl + a pour aller au début de la ligne Utiles: Ctrl + x Ctrl + s: pour sauver le buffer Ctrl + x Ctrl + c: pour sortir d'emacs Ca peut aider Ctrl + g quand on est planté Ctrl + l pour centrer sur la ligne en cours.

100 03/09/07L3/unix100 Autres éditeurs Il existe beaucoup dautres éditeurs, installés ou installables sur les machines Unix. En particulier, des éditeurs proches de lérgonomie déditeur windows. Par exemple : Nedit, Kedit, jed, …

101 03/09/07L3/unix101 Plusieurs shells : SH, TCSH, KSH, BASH Dans ce qui suit: on utilisera sh, parce que: on le trouve partout; Bash (qui est très utilisé) est compatible avec les scripts SH

102 03/09/07L3/unix102 Variables d'environnement prédéfinies HOME chemin d'accès au répertoire initial de l'utilisateur PATH suite de chemins d'accès aux répertoires des exécutables PS1 invite principale du shell en mode interpréteur PS2 invite secondaire du shell en mode programmation IFS séparateurs de champ des arguments MAIL chemin d'accès à la boite aux lettres utilisateur MAILCHECK intervalle en sec au bout duquel le mail est contrôlé TERM nom du type de terminal

103 03/09/07L3/unix103 Variables utilisateur Déclaration variable=valeur Utilisation variable2=$variable

104 03/09/07L3/unix104 Exportation d'une variable Le problème sur un exemple: echo $TOTO TOTO='bonjour je suis sh' echo $TOTO bonjour je suis sh sh echo $TOTO (TOTO n'a pas été exporte) [Ctrl+D] export TOTO sh echo $TOTO (TOTO a été exporté) bonjour je suis sh

105 03/09/07L3/unix105 Variables de substitution prédéfinies Exemple: toto.sh #! /bin/sh echo "$0 -> nom du script (pathname) " echo "$1,$2,$3,$4 -> arguments (du 1er au n-ieme) " echo "$# -> nombre d'arguments " echo "$* -> liste de tous les arguments " echo "$? -> code retourne par la derniere commande " echo "$$ -> numero de processus de ce shell " **************************************************./toto.sh a ab abc abcd./toto.sh -> nom du script (pathname) a,ab,abc,abcd -> arguments (du 1er au n-ieme) 4 -> nombre d'arguments a ab abc abcd -> liste de tous les arguments 0 -> code retourne par la derniere commande > numero de processus de ce shell

106 03/09/07L3/unix106 Quotage Rôle : le quotage est utilisé pour supprimer les fonctionnalités de certains caractères spéciaux du shell, dont les métacaractères. Méta-caractères: \ $ * ` " ' Caractère d échappement: \ le caractère \ préserve la valeur littérale du caractère qui le suit Simples quotes '...' les caractères inclus entre 2 simples quotes ne sont pas évalués Doubles quotes "..." les caractères inclus entre 2 doubles quotes conservent leur valeur à l'exception de $ ` et \. Exemple TOTO='bonjour echo '$TOTO et ' "$TOTO" $TOTO et bonjour

107 03/09/07L3/unix107 Commandes de test (1/5 ) test sur les fichiers: test -f fichier (existence de fichier) test -d répertoire (existence de répertoire) test -s fichier (existence du fichier et taille > 0) test -r fichier (existence du fichier et accessible lecture) test -w fichier (existence du fichier et accessible écriture) test -x fichier (existence du fichier et exécutable) exemples: test -f /etc/passwd [ -f /etc/passwd ] [ ! -f /etc/passwd ]

108 03/09/07L3/unix108 Commandes de test (2/5 ) test alphanumérique test "$str1" = "chaine1" test "$str1" != "chaine1 " exemples: toto='acd test "acd" = "$toto" -> vrai [ "acd" = "$toto" ] -> vrai

109 03/09/07L3/unix109 Commandes de test (3/5 ) test numérique n1 -eq n2 (égaux) n1 -ne n2 (non égaux) n1 -gt n2 (plus grand que) n1 -lt n2 (plus petit que) n1 -ge n2 (plus grand ou égal que) n1 -le n2 (plus petit ou égal que) exemples: toto=3 [ 5 = "$toto" ] -> faux test 3 = "$toto" -> vrai [ 5 -gt "$toto" ] -> vrai [ 5 -lt "$toto" ] -> faux

110 03/09/07L3/unix110 Commandes de test (4/5 ) Comparaisons booléennes -z chaîne (vrai si la longueur de la chaîne est nulle) -n chaîne (vrai si la longueur de la chaîne est non nulle) Exemples: toto='acd' [ -z $toto ] -> faux [ -n $toto ] -> vrai

111 03/09/07L3/unix111 Commandes de test (5/5 ) Autres opérateurs ! (négation) -a (et) -o (ou) Exemples: toto=3 [ ! 5 -lt "$toto" ] -> vrai [ \( 2 -lt "$toto" \) -a "$toto" -lt 5 ] -> vrai

112 03/09/07L3/unix112 Instructions conditionnelles (1/2) Condition simple: if then... fi exemple 1: toto.sh #! /bin/sh if test "$1" = "a" ; then echo 'je suis dans le cas 1' fi *************** toto.sh a -> je suis dans le cas 1 toto.sh b c -> rien exemple 2: if [ ! -d Tmp ]; then mkdir Tmp ; fi

113 03/09/07L3/unix113 Instructions conditionnelles (2/2) Exemple un peu plus compliqué cat toto.sh #! /bin/sh if test "$1" = "a" ; then echo 'je suis dans le cas: a ?' elif test "$1" = "b" ; then echo 'je suis dans le cas: b ?' else if test "$2" = "a" ; then echo 'je suis dans le cas: ? a' fi toto.sh a je suis dans le cas: a ? toto.sh a b je suis dans le cas: a ? toto.sh b a je suis dans le cas: b ? toto.sh d a je suis dans le cas: ? a toto.sh d b <- rien

114 03/09/07L3/unix114 Arithmétique Commande: expr expr val1 opér val2 opér: +, -, *, /, % Exemples: compteur=`expr $compteur + 1` compteur=`expr $compteur \* 2` Peu performant : nécessite un sous-processus

115 03/09/07L3/unix115 Instructions de boucle (1/3) for variable [ in liste d'arguments ] do liste de commandes done while commande do liste de commandes done

116 03/09/07L3/unix116 Instructions de boucle (2/3) exemple boucle 1 #! /bin/sh for i in a b c do echo $i done./toto.sh a b c

117 03/09/07L3/unix117 Instructions de boucle (3/3) exemple boucle 2 i=0 while test $i -le 5 do i=`expr $i +1` echo $i done./toto.sh

118 03/09/07L3/unix118 Instructions d'aiguillage: case in... esac #! /bin/sh case $1 in 'a') echo "je suis dans le cas: a" ;; 'b') echo "je suis dans le cas: b" ;; 'c') echo "je suis dans le cas: c" ;; *) echo "je suis dans le cas: autres" ;; esac toto.sh a je suis dans le cas: a toto.sh b je suis dans le cas: b toto.sh c je suis dans le cas: c toto.sh d je suis dans le cas: autres toto.sh e je suis dans le cas: autres

119 03/09/07L3/unix119 cd. ; echo $? 0 ************************* mkdir /pouet ; echo $? mkdir: Failed to make directory "/pouet"; Permission denied 2 ************************* cat toto.sh #! /bin/sh case $1 in 'a') exit 1 ;; 'b') exit 2 ;; *) exit 3 ;; esac *************************** toto.sh a ; echo $? 1 toto.sh b ; echo $? 2 toto.sh c ; echo $? 3 Code retourné par la dernière commande

120 03/09/07L3/unix120 Expansion de commande variable=`commande` exemple: MAINTENANT=`date` echo $MAINTENANT Thu Dec 14 17:01:52 MET 2000

121 03/09/07L3/unix121 Expansion de paramètre (1/2) variable=${var:-val} si var est définie ou non nulle alors $var sinon val exemple: TEXTE='abc' echo ${HOME:-TEXTE} /home/nicolas echo ${TEXTE2:-TEXTE} TEXTE echo $TEXTE2 il naffiche rien

122 03/09/07L3/unix122 Expansion de paramètre (2/2) variable=${var:=val} si var est définie ou non nulle alors $var sinon affecte val à var et affiche val. exemple: TEXTE='abc' echo ${HOME:=TEXTE} /home/nicolas echo ${TEXTE2:=TEXTE} TEXTE echo $TEXTE2 TEXTE

123 03/09/07L3/unix123 Entrer une chaîne: read REPONSE cat toto.sh #! /bin/sh echo "Donner un nb d'annee " read REPONSE NBMOIS=`expr $REPONSE \* 12` echo "Ca fait $NBMOIS mois" toto.sh Donner un nb d'annee 5 Ca fait 60 mois

124 03/09/07L3/unix124 Fonctions #!/bin/sh usage() { echo "usage: $1 $2" } main() { if [ $# = 0 ]; then usage `basename $0` "fichier"; exit 1 fi ls -lsa $1 } main $* $ toto.sh usage: toto.sh fichier $ toto.sh /etc/passwd 2 -rw-r--r-- 1 root other 311 Nov /etc/passwd


Télécharger ppt "03/09/07L3/unix1 Pratique dUnix introduction aux systèmes dexploitation de type Unix Licence L3 (S5) Benjamin Quétier ½ ATER, Université Paris-Sud XI."

Présentations similaires


Annonces Google