Cours linux

Document Sample
Cours linux Powered By Docstoc
					    Système d’exploitation Linux:
         Aspect utilisateur




                       Adil Rizki
                       arizki@fsts.ac.ma
                       arizki73@yahoo.fr




1           A. Rizki          EMSI 2006                                 Formation 
                              Linux
D’abord c’est quoi Linux?


   Un système d’exploitation au même titre que MS 
    Windows ou Mac OS
   Linux fait partie de la catégorie:logiciel Libre 
   Linux n'est sans doute pas le meilleur système 
    d'exploitation qui soit, Mais …
   Linux fonctionne sur une large gamme d'architectures
   Linux est développé sur un modèle ouvert et réparti




2                 A. Rizki    EMSI 2006                                 Formation 
                              Linux
     Le projet GNU, la Free Software 
     Foundation (FSF) et la licence GPL 


 Fin 1983, Richard Stallman, chercheur dans un 
     laboratoire d'intelligence artificielle aux États­
     Unis, lance le projet GNU, 


                  http://www.gnu.org/home.fr.html




 3                   A. Rizki       EMSI 2006                                 Formation 
                                    Linux
La liberté au sens GNU est définie 
selon quatre principes:
liberté 0: la liberté d'exécuter le programme, pour tous les 
usages
liberté 1: la liberté d'étudier le fonctionnement du 
programme et de l'adapter à vos besoins
liberté 2: la liberté de redistribuer des copies, donc 
d'aider votre prochain
liberté 3: la liberté d'améliorer le programme et de publier 
vos améliorations, pour en faire profiter toute la 
communauté
 Pour les points 1 et 3, l'accès au code source du programme est une condition 
 indispensable.


 4                     A. Rizki          EMSI 2006                                 Formation 
                                         Linux
Les autres licences:


    GPL        General Public License, qui provient du projet 
    GNU Il s'agit d'une licence de logiciel libre et d'un 
    « gauche d’auteur ».

FDL  Free Documentation License      : provient aussi du 
projet GNU.conçue pour les documents sous gauche d'auteur.

    BSD        Berkley Software Distribution: provient du projet BSD 
    (un autre Unix libre)
     X11       Licence du projet X11 à l'origine de l'environnement 
      graphique sous les Unix.



5                      A. Rizki        EMSI 2006                                 Formation 
                                       Linux
… Bien avant Linux


 1969 : Création d'Unics par K. Thompson
 1973 : D. Richie et K. Thompson réécrivent 
  Unix en C
 1978 : Unix BSD 1.0
 1981 : Unix System III
 1982 : SunOS 1.0
 1990 : Solaris 1
 1991 : Linux 1.0 



              A. Rizki     EMSI 2006                                 Formation 
                           Linux
Historique de Linux


   En  1991,  Richard  Stallman  avait  développé  un  grand 
    nombre  de  logiciels,  mais  le  composant  de  base  du 
    projet GNU n'avait pas encore vu le jour. 
   Linus  Torvalds  21  ans,  étudiant  finlandais,  démarra 
    comme hobby l'écriture d'un nouveau noyau de système 
    d'exploitation  de  type  Unix  fonctionnant  sur  plateforme 
    i386.  Il  s'intéressait  à  Minix,  un  petit  système  Unix 
    fonctionnant  aussi  sur  PC,  et  décida  de  développer  un 
    système qui serait meilleur. Il publia la première version 
    0.02  sur  le  forum  de  discussion  comp.os.minix,  en 
    demandant  à  d'autres  développeurs  de  l'aider  afin  de 
    l'améliorer : 

7                   A. Rizki     EMSI 2006                                 Formation 
                                 Linux
Un message de Linus Torvalds:


From: torvalds@klaava.Helsinki.FI (Linus Benedict 
Torvalds) Newsgroups: comp.os.minix 
Subject: Free minix­like kernel sources for 386­AT 
Date: 5 Oct 91 05:41:06 GMT 




 8               A. Rizki    EMSI 2006                                 Formation 
                             Linux
Suite:

Do you pine for the nice days of minix­1.1, when 
men were men and wrote their own device 
drivers? Are you without a nice project and just 
dying to cut your teeth on a OS you can try to 
modify for your needs? Are you finding it 
frustrating when everything works on minix? No 
more all­ nighters to get a nifty program working? 
Then this post might be just for you :­) 


  9             A. Rizki   EMSI 2006                                 Formation 
                           Linux
Suite….

As I mentioned a month(?) ago, I'm working on a 
  free version of a minix­lookalike for AT­386 
  computers. It has finally reached the stage 
  where it's even usable (though may not be 
  depending on what you want), and I am willing 
  to put out the sources for wider distribution. It is 
  just version 0.02 (+1 (very small) patch 
  already), but I've successfully run 
  bash/gcc/gnu­make/gnu­sed/compress etc 
  under it. 
 10             A. Rizki
                                                      A suivre…
                           EMSI 2006                                 Formation 
                           Linux
 Traduction:

Vous regrettez les beaux jours de Minix­1.1, lorsque les 
  hommes étaient des hommes et écrivaient leurs propres 
  pilotes de périphériques ? Vous manquez d'un superbe 
  projet et vous languissez après un système que vous 
  pourriez modifier à votre convenance ? Vous êtes 
  frustrés que tout fonctionne sous Minix ? Plus de nuits 
  blanches passées à tenter de faire fonctionner un 
  programme récalcitrant ? Alors ce message pourrait 
  bien être pour vous 



 11              A. Rizki    EMSI 2006                                 Formation 
                             Linux
Traduction suite:


Comme signalé il y a un mois, je travaille actuellement 
sur une version libre et gratuite d'un système 
ressemblant à Minix pour les ordinateurs AT­386. J'ai 
finalement atteint un stade où il est utilisable (bien qu'il 
puisse ne pas l'être pour vous, selon ce que vous 
désirez), et je compte diffuser les sources pour une 
diffusion plus large. Il s'agit juste de la version 0.02... 
mais j'ai pu exécuter bash, gcc, gnu­make, gnu­sed, 
compress, etc. avec succès sous ce système. 



12               A. Rizki      EMSI 2006                                 Formation 
                               Linux
Besoin de créer un logo:


 En 1996, le besoin d'avoir un logo pour le 
  noyau Linux se faisant sentir, 
 un concours a été lancé.
 le dessin de Larry Ewing (réalisé avec GIMP) 
            fut choisi, et prénommé "Tux" (jeu de 
  mot entre Linux et "tuxedo", costume de type 
  smoking, en anglais ­ ou selon les versions : 
  (T)orvalds (U)ni(X) ­> TUX). 


 13           A. Rizki   EMSI 2006                                 Formation 
                         Linux
Notion de distribution:


   Par  abus  de  langage,  on  désigne  souvent  par 
    « Linux »  l'ensemble  des  logiciels  composant  le 
    système  d'exploitation  (noyau,  utilitaires  GNU,  autres 
    logiciels libres).
    Linux n'est en fait à proprement parler que le noyau de 
    ce système,
     le  reste  des  logiciels  étant  en  grande  partie  issu  du 
    projet  GNU.  C'est  pourquoi  Richard  Stallman  et  les 
    puristes et parlent plutôt de « GNU/Linux ». 



    14               A. Rizki      EMSI 2006                                 Formation 
                                   Linux
Notion de distribution:


     Une distribution est le regroupement:

       (Noyau + Utilitaires et logiciels 
        + Programme d’installation + 
                 Manuel)


                        Distribution

15           A. Rizki        EMSI 2006                                 Formation 
                             Linux
Toute personne peut créer sa 
propre distribution:


 Télécharger Le noyau (Plusieurs sites le proposent)
      –   http://www.linux­kheops.com/doc/dupoux/kernel/index.htm
      –   http://www.infos­du­net.com/telecharger/Linux­Kernel.html
 Télécharger les utilitaires:
      –   http://directory.fsf.org/
 Ajouter un programme d’installation




 16                     A. Rizki        EMSI 2006                                 Formation 
                                        Linux
Les distributions les plus connues:


 Red Hat :la distribution la plus commercialisée dans le 
        monde, notamment pour les serveurs.

 Fedora: est la version de Red Hat qui s’adresse aux 
 particuliers. 
     Slackware: Parmi les prmières distributions. L’installation 
       n’est pas toute simple, mais elle est réputée pour sa 
       maintenance aisée. Bref, c’est une distribution pour les 
       initiés.


17                  A. Rizki    EMSI 2006                                 Formation 
                                Linux
Les distributions les plus connues:


Debian: distribution la plus libre (réalisée par des 
bénévoles, elle comporte des logiciels 100 % libres).  : il n'y 
a pas de société pour la commercialiser et aucun impératif 
marketing. la distribution sort quand les développeurs 
responsables du projet Debian estiment que tout est bon


   Mandriva (ex Mandrake): très facile à installer dispute à 
    Red Hat son statut de leader. Elle est conseillée pour 
    l’utilisateur débutant,. de plus elle est réalisée par une 
    société française, et dispose de bons sites pour le 
    service après­vente. 

18                 A. Rizki     EMSI 2006                                 Formation 
                                Linux
Les distributions les plus connues:


SuSE: C'est également une bonne distribution pour les 
   débutants qui dispose aussi d'un bon site pour le 
support. Cette distribution allemande s'est faite racheter 
         par les américains de Novell en 2003


Ubuntu: Cette nouvelle venue a connu un succès très 
  rapide dans la catégorie des distributions de bureau. 
  Basée sur Debian, elle supporte moins d’architectures 
  (Intel et PPC) mais son bureau est très bien configuré et 
  la reconnaissance du matériel est simplifiée. 

19              A. Rizki     EMSI 2006                                 Formation 
                             Linux
Avant de commencer l’installation:


 Partitionnement
 Nommage des partitions
 Cohabitation avec d’autres systèmes 
  d’exploitation




 20            A. Rizki   EMSI 2006                                 Formation 
                          Linux
Le partitionnement:


 Sécurité des données importantes




      •Système d’exploitation
                              •Sauvegarde des fichiers
      •Logiciels
                               importants
      •Navigation Internet
                                 Partition épargnée


 Risques de contamination

 21                A. Rizki     EMSI 2006                                 Formation 
                                Linux
Le partitionnement:


 Cohabitation de plusieurs systèmes 
  d’exploitation:


      Windows XP                  Linux                     Données
         ntfs                      ext2                        fat32
       Partition 1              Partition 2                 Partition 3



 22                  A. Rizki         EMSI 2006                                 Formation 
                                      Linux
Les types de Partitions:


 Partition primaire (Principale): Nbre Max = 4
      –   Une seule sera marquée comme active
 Partition étendue: Nbre Max = 1
      –   Divisible en plusieurs lecteurs logiques
      –   N’est effective qu’après la création de lecteurs 
          logiques




 23                   A. Rizki     EMSI 2006                                 Formation 
                                   Linux
Exemple de partitionnement:



       Prim 1                      Partition primaire1

       Prim2                       Partition primaire 2

       Lecteur 1
                             Partition étendue
       Lecteur 2

     Disque dur

24             A. Rizki   EMSI 2006                                 Formation 
                          Linux
Outils de partitionnement:

   fdisk : Utilitaire utilisé sous DOS et Linux. Sous DOS 
    l'utilitaire est présenté sous forme de menus, sous linux, 
    sous forme d'un prompt. 
   cfdisk : Utilitaire utilisé sous Linux pour manipuler les 
    partitions. 
   pdisk : Utilitaire utilisé sous Linux pour manipuler des 
    partitions Macintosh sur architecture PowerPC. 
   Norton PartitionMagic : Utilitaire payant de la société 
    Symantec Corporation fonctionnant sous DOS ou 
    Windows. Norton PartitionMagic est notamment reconnu 
    pour pouvoir redimensionner, déplacer ou fusionner une 
    ou des partitions sans perdre les données qu'elle 
    contient. 
    25              A. Rizki     EMSI 2006                                 Formation 
                                 Linux
Outils de partitionnement:

   Gnu Parted : Utilitaire GNU en ligne de commande 
    fonctionnant sur le Linux et permettant d'effectuer 
    diverses opérations impossibles avec des outils 
    standards comme le redimensionnement de partitions 
   QtParted se définit comme « un clone de Partition 
    Magic écrit en C++ . est en fait une interface graphique 
    au programme GNU Parted
   testdisk est un programme qui permet de récupérer une 
    partition dont la table aurait été éffacée. (site officiel de 
    testdisk) 



26                  A. Rizki     EMSI 2006                                 Formation 
                                 Linux
Convention de nommage des 
disques et partitions:
Windows attribue aux lecteurs des lettres en 
fonction des partitions qu’il trouve et qu’il 
reconnaît.

     1.Windows recherche les partitions primaires sur les disque durs et leur 
attribue des lettres dans l’ordre de leur apparition
     2.Il parcourt à nouveau tous les disques et recherche les partitions 
étendues et les lecteurs logiques associés puis leur attribue les lettres 
dans leur ordre d’apparition
     3.Tous les lecteurs qui ne sont pas des disques durs (CD­ROM, ZIP,…) 
se voient attribuer des lettres suivant celles des disques durs.



27                    A. Rizki        EMSI 2006                                 Formation 
                                      Linux
Convention de nommage des disques et 
partitions: (Windows) scénario 1


          Première partition primaire: type connu
                           C:
                 Disque IDE primaire maître 


     1ère part. prim.: type inconnu     2ème part. Prim. : type connu
                                                           D:
                  Disque IDE Primaire esclave



28                   A. Rizki         EMSI 2006                                 Formation 
                                      Linux
Convention de nommage des disques et 
partitions: (Windows) scénario 2


1ère part. prim.: type connu           Partition étendue
           C:                           E:            F:
                                  1er Lect. Logique            2ème Lect. Logique
                                      Type connu                   Type connu
                Disque IDE primaire maître 


     1ère part. prim.: type inconnu       2ème part. Prim. : type connu
                                                             D:
                  Disque IDE Primaire esclave

29                   A. Rizki           EMSI 2006                                 Formation 
                                        Linux
Convention de nommage des disques et 
partitions:


         Sous Linux:
     –      Pour les disques
     2.     Les périphériques IDE (HDD,CD­Rom,…) Primaires maitre ou esclave sont 
            appelés respectivement /dev/hda et /dev/hdb
     3.     Sur l’interface secondaire, ce sont /dev/hdc et /dev/hdd
     –      Pour les partitions:
     5.     Les partition primaires (ou étendues) portent le nom entre /dev/hda1 et  
            /dev/hda4
     6.     Les lecteurs logiques, si’il y’en a, sont nommés /dev/hda5, /dev/hda6, etc. 
            dans leur ordre d’apparition




30                         A. Rizki          EMSI 2006                                 Formation 
                                             Linux
Convention de nommage des disques et 
partitions: (linux) scénario1


            Première partition primaire:
                   /dev/hda1
           Disque IDE primaire maître 
                    /dev/hda 
      1ère part. prim:                2ème part. Prim. :
       /dev/hdb1                            /dev/hdb2
            Disque IDE Primaire esclave 
                     /dev/hdb


31             A. Rizki     EMSI 2006                                 Formation 
                            Linux
Convention de nommage des disques et 
partitions: (linux) scénario2


     1ère part. prim.:              Partition étendue /dev/hda2

        /dev/hda1                  /dev/hda5                  /dev/hda6

                                1er Lect. Logique          2ème Lect. Logique
            Disque IDE primaire maître (/dev/hda) 



           1ère part. prim.:                   2ème part. Prim. :
            /dev/hdb1                                   /dev/hdb2

              Disque IDE Primaire esclave (dev/hdb)

32                   A. Rizki        EMSI 2006                                 Formation 
                                     Linux
Les Linux Live


 Concept:
Un Live CD stocke un ensemble logiciel comprenant au 
  moins un système d'exploitation, qu'un ordinateur 
  adéquat animera après amorçage sans aucune 
  installation préalable
 Historique:
  Le concept de Live CD Linux a été utilisé en premier par 
  Slackware dès 1995, puis fût développé de 1999 a 2002 
  par DemoLinux. Ce n'est cependant qu'avec la Knoppix 
  (réalisée à partir de Debian) que ce type de système a 
  pris son essor, aux alentours de l'année 2003. D'autres 
  distributions Live CD ont rapidement suivi.
 33              A. Rizki    EMSI 2006                                 Formation 
                             Linux
Les Linux Live


 Avantages:
     –   Ils permettent d'avoir une distribution Linux complète 
     –   Leur simplicité d'utilisation, sans passer par la 
         contraignante étape d'installation,
     –   Booter sur une distribution comme Knoppix permet 
         d'accéder de façon élégante au disque dur d'une 
         machine qui ne veut plus booter sur ce dernier. 




34                   A. Rizki     EMSI 2006                                 Formation 
                                  Linux
Les Linux Live


 Inconvénients:
      –   Le CD n'étant pas un support réinscriptible, il n'est 
          pas possible d'y sauvegarder directement les 
          modifications effectuées en cours de session (choix 
          de clavier, personnalisations, documents, nouveaux 
          logiciels...)
      –   La lenteur des accès au CD par rapport au disque 
          dur,
      –   L'occupation de la mémoire vive, qui peut augmenter 
          encore la lenteur du système

 35                   A. Rizki    EMSI 2006                                 Formation 
                                  Linux
Les Lives CD les plus connus:


   Ubuntu live CD Découvrir sans risque l’une des meilleures 
    distributions Linux (avec en prime quelques logiciels libres 
    Windows à l’intérieur) 11 avril 2005
   Knoppix Découvrir Linux sans le moindre risque et avec 
    émerveillement : 4 septembre 2005
   Kaella Knoppix Linux Azur (KLA) LiveCD basé sur Knoppix 
    qui séduira les utilisateurs francophones 5 novembre 2005 
   Mandriva Move Un excellent live cd très complet et 
    entièrement en français 2 avril 2006 
   Slax / AliXe Un live cd issu de la distribution Slackware 28 
    mars 2006 
   Mandows 1.6 Un "live CD" français, complet, basé sur 
    Mandrake 10.0, permettant de sauvegarder des données sur 
    une clé USB: 8 février 2005 
36                  A. Rizki      EMSI 2006                                 Formation 
                                  Linux
Les Lives CD les plus connus:


   Aurox live Un cd­rom amorçable entièrement en 
    français, destiné au grand public et au milieu 
    éducatif : 10 janvier 2006 
   DemoLinux Vous n’avez plus aucune raison de ne 
    pas essayer Linux : 11 mars 2004 




37              A. Rizki   EMSI 2006                                 Formation 
                           Linux
Kaella Knoppix Linux Azur




 Démo




38         A. Rizki   EMSI 2006                                 Formation 
                      Linux
Installation Linux Mandrake 10


 Installation




 39              A. Rizki   EMSI 2006                                 Formation 
                            Linux
Structure d'Unix:




                       Kernel

                       Shell
               Applications
  40        A. Rizki       EMSI 2006                                 Formation 
                           Linux
Structure d'Unix



  Kernel (noyau) : gestion du système de fichier, 
   du processeur, de la mémoire centrale et des 
   périphériques
  Shell : interpréteur de commande (bash, ksh, 
   csh, zsh, etc.)
  Applications : rm, mv, Star Office, Mozilla




  41           A. Rizki   EMSI 2006                                 Formation 
                          Linux
Utilisateurs d'Unix



  Chaque utilisateur possède un compte:



                          Login
  Compte = 
                          +
                     Mot de passe


  42           A. Rizki       EMSI 2006                                 Formation 
                              Linux
Utilisateurs d'Unix


  Un utilisateur possède plusieurs 
   caractéristiques :

       –   Nom: Le superutilisateur a tjs comme nom 
           « root »
       –   Mot de passe
       –   UID (User IDentifier)
       –   un ou plusieurs GID (Group IDentifier)
       –   Un répertoire dans le rép. "home"


  43                 A. Rizki   EMSI 2006                                 Formation 
                                Linux
Fichiers de configuration des comptes:

  /etc/passwd: est un fichier constituée de sept 
    champs séparés par le symbole " : "

   nom:mot_de_passe:UID:GID:information:ré
               pertoire:shell
  •UID est le numéro d'identification de l'utilisateur, 0 pour root
  •GID est le numéro d'identification du groupe de l'utilisateur, 
  •information est un champ libre, 
  •répertoire est le nom absolu du répertoire d'accueil de 
  l'utilisateur, 
  •shell est le nom du shell lancé à la connexion. 
   44                A. Rizki      EMSI 2006                                 Formation 
                                   Linux
Un extrait du fichier /etc/passwd:


root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/bash

daemon:x:2:2:daemon:/sbin:/bin/bash

amal:x:500:100:Amal:/home/amal:/bin/bash

rachid:x:501:100:rachid,drh:/home/rachid:/bin/bash




45             A. Rizki    EMSI 2006                                 Formation 
                           Linux
Le fichier /etc/group :


     nom:mot_de_passe:GID:membres 

•nom est le nom du groupe, 
•mot­de­passe est un mot de passe crypté, 
•GID est le numéro d'identification du groupe, 
•membres correspond à la liste des membres du groupe. 




46               A. Rizki      EMSI 2006                                 Formation 
                               Linux
Un extrait du fichier /etc/group:

 root:x:0:root
 bin:x:1:root,bin,daemon
 daemon:x:2:
 utilisateurs:x:100:amal,rachid


  Un utilisateur a un groupe principal de 
  rattachement. Néanmoins, il peut 
  appartenir à plusieurs autres groupes



 47              A. Rizki     EMSI 2006                                 Formation 
                              Linux
Connexion/Déconnexion

 Connexion:
     –   Login:
     –   Password:
 Déconnexion:
     –   exit
     –   logout
     –   CTRL+d




48                   A. Rizki   EMSI 2006                                 Formation 
                                Linux
Le système de fichiers:

 Ext2fs: 
      –   Ancien système de fichier Linux
      –   suppression sécurisée (les données supprimées sont 
          écrasées physiquement sur le disque) ; 
      –   lectures de blocs et d'entrées de répertoire par 
          anticipation (rapidité) ; 
      –   liens symboliques rapides ; 




 49                  A. Rizki    EMSI 2006                                 Formation 
                                 Linux
Le système de fichiers:

 Ext3fs:
     –   Journalisé (récupération rapide en cas d'arrêt brutal). 
         Utile pour gros disques durs
     –   Quotas disponibles
     –   ACL supportés
     –   Passage d'Ext2fs à ext3fs facile




50                   A. Rizki     EMSI 2006                                 Formation 
                                  Linux
Le système de fichiers:

 ReiserFS:
     –   Journalsé
     –   Excellentes performances en écriture
     –   Quotas (difficilement)
     –   Ne supportes pas les ACL
     –   Pertes de données lorsque le disque est plein




51                  A. Rizki    EMSI 2006                                 Formation 
                                Linux
Types de fichiers:


      –   Fichiers normaux
      –   Fichiers répertoires
      –   Fichiers spéciaux:
           Mode caractère ( imprimante )
           Mode bloc ( disques )



          Sous Linux tout est fichier:



 52                A. Rizki   EMSI 2006                                 Formation 
                              Linux
Structure d'un système de fichiers


                  amorce
               Superbloc
         i­node               infos

         Données


                      fich1       Fic2

 53        A. Rizki           EMSI 2006                                 Formation 
                              Linux
L'arborescence du système linux

                             etc

                            dev

                            usr

     /                      bin

                            tmp
                             lib

                            mnt
                            var
                           proc
54       A. Rizki   EMSI 2006                                 Formation 
                    Linux
L'arborescence du système linux

   / la racine, elle contient les principaux répertoires
   /bin contient les exécutables essentiels au système, 
    employés par tous les utilisateurs
   /boot contient les fichiers permettant à Linux de 
    démarrer (Modules du noyau)
   /dev contient les points d'entrée des périphériques
   /etc contient les commandes et les fichiers nécessaires 
    à l'administateur du système
   /home répertoire personnel des utilisateurs




55                A. Rizki     EMSI 2006                                 Formation 
                               Linux
L'arborescence du système linux

   /lib contient des bibliothèques partagées essentielles au 
    système(programmation)
   /mnt contient les points de montage des partitions 
    temporaires (cd­rom, disquette, ...)
   /opt contient des packages d'applications 
    supplémentaires
   /root répertoire de l'administrateur root
   /sbin contient les binaires système essentiels (par 
    exemple la commande adduser)
   /tmp contient les fichiers temporaires
   /usr contient les programmes
   /var contient des données variables
    56             A. Rizki     EMSI 2006                                 Formation 
                                Linux
              Le système de fichiers
                                               ­ l’arborescence ­
              Répertoire Racine
                                                               /

   le répertoire de login: ~
                                          bin               tmp                 home
   le répertoire courant:  .
   le répertoire supérieur:  ..
   connaître le rép. courant: pwd                                    arizki
   lister le contenu: ls
    (voir “man ls”)

                                             .cshrc                   cours                 docs
   chemin d’accès au fichier tp1.tex:
     –    /home/arizki/cours/tp1.tex                             tp1.tex
     –   ou bien: ~/cours/tp1.ex

         57                A. Rizki      EMSI 2006                                 Formation 
                                         Linux
        Le système de fichiers
                                                             ­ l’arborescence ­

    pwd retourne:
     /home/arizki/cours
                                                                             /
   se déplacer: cd
    [/home/arizki/cours]$ cd ..
                                                                tmp                 home
    [/home/arizki]$
    [/home/arizki]$ cd /tmp
    [/tmp]$                                    buzz                              arizki
           chemin relatif
           chemin absolu 
                                                 .cshrc                   cours                 docs
   créer un répertoire: mkdir
     [/tmp]$ mkdir buzz 
   supprimer un répertoire: rmdir                       tp1.tex
     [/tmp]$ rmdir buzz 
                                         répertoire courant
         58                   A. Rizki       EMSI 2006                                 Formation 
                                             Linux
Le système de fichiers
                                                  ­ fichiers ­


 Manipulation des fichiers
      –   copier :                 cp fic1 fic2
      –   déplacer/renommer : mv fic1 fic2
      –   effacer :           rm fic
      –   afficher le contenu  :   cat fic
      –   trier le contenu :       sort fic

              Voir les pages du “man” !!

 59                A. Rizki   EMSI 2006                                 Formation 
                              Linux
Le système de fichiers
                                                   ­ partitions ­


 le disque est “découpé” en partitions
     –   commandes & applications
     –   comptes utilisateurs
     –   swap
     –   fichiers temp
     –   périphériques (disques, ...)
     –   ...

 accès transparent

60                  A. Rizki    EMSI 2006                                 Formation 
                                Linux
   Le système de fichiers
                                                 ­ partitions ­
 exemple: les comptes utilisateurs

                     arizki
          home       toto
                     marion
                                                         serveur
           montage effectué sur /home 
           de façon transparente 
          home                              postes dans la salle
          usr
    /     etc
          tmp

   61             A. Rizki     EMSI 2006                                 Formation 
                               Linux
Le système de fichiers
                                                  ­ partitions ­


 tous les disques amovibles 
  (disquette, cdrom, clé usb) dans : /mnt
 ex pour utiliser une disquette:
      –   Montage:
                    mount /mnt/floppy
      –   lire/ecrire dans    /mnt/floppy
      –   Démontage:
                    umount /mnt/floppy
 idem pour clés usb


 62                 A. Rizki    EMSI 2006                                 Formation 
                                Linux
Commandes sur les répertoires

    pwd: (Print Working Directory) Affiche le chemin 
     absolu du rép. Courant
    cd : (Change Directory)
     –   cd /home/toto : aller au rép. personnel de toto
     –   cd aller au rép. personnel de l'utilsateur courant
     –   cd.. aller au rep. parent
    Mkdir: (MaKe DIRectory) Crée un nouveau répertoire
     –   mkdir /home/toto/rep1 crée le répertoire "rep1" dans toto
     (il faut avoir les droits nécessaires pour le créer)
    rmdir: (ReMove DIRectory) Supprime un répertoire
     –   rmdir rep1 supprime le rép. "rep1"


63                    A. Rizki       EMSI 2006                                 Formation 
                                     Linux
     Commandes sur les fichiers:

   ls: LiSt files: liste le contenus d'un répertoire
     – ls contenu du rep. courant
     – ls –l contenu en détail
     – ls –a (all : ycompris les fichiers cachés)

 Utiliser le manuel pour plus d’options




     64              A. Rizki   EMSI 2006                                 Formation 
                                Linux
Commandes sur les fichiers:

    cat: Création: Commande à multiple usage
      – cat  nom_fichier affiche le contenu du fichier
      – cat fich1 fich2 Affiche deux fichiers à la fois
      – cat > nom_fichier créer un nouveau fichier si'il 
         n'existe pas sinon son contenu sera écrasé
         fin de saisie par "ctrl+d"
      – cat fich1 > fich2 : envoie fich1 à fich2
        si fich2 existe il sera ecrasé, sinon il sera créé
      – cat fich1 >> fich2 : ajoute le contenu de fich1 à 
         celui de fich2
      – cat >> fich2 ajoute le texte saisie à fich2



65                 A. Rizki     EMSI 2006                                 Formation 
                                Linux
Commandes sur les fichiers:

 cp : (CoPy) copie un fichier dans un autre 
     emplacement
     –   cp source destination
 mv (MoVE) déplace un fichier
     –   mv source destination
 rm (ReMove) supprime un fichier
     –   rm /home/toto/essai.c (il faut disposer des droits 
         suffisants)




66                 A. Rizki     EMSI 2006                                 Formation 
                                Linux
    Commandes sur les fichiers:
                                                                   ­ liens ­
   Liens physiques
     ln <nom_fic> <nouveau_nom_fic> 
     – permet de donner plusieurs noms à un fichier
     – pas pour les répertoires
     – ne traverse pas les partitions
     – un fic est détruit quand TOUS ses liens physiques sont supprimés 
       (≠ raccourcis)

   Liens symboliques
     ln ­s <nom_fic> <nouveau_nom_fic>
     – crée un raccourci
     – traverse les partitions
     – fonctionne aussi pour les répertoires 


   Lister les liens d’un fichier:  ls ­l <nom_fic>


    67                  A. Rizki        EMSI 2006                                 Formation 
                                        Linux
Affichage des fichiers

 more : visualisation par page (descente seule)
 less : visualisation par page (montée et descente)
 head : partie sup. d'un fichier
 tail : Partie inf d'un fichier
 wc : Comptage du nombre de mots, lignes ou 
     caractères
 file : Afficher le type d'un fichier 
 diff : Différences entre deux fichiers 


68                A. Rizki    EMSI 2006                                 Formation 
                              Linux
Filtrer:


 sort : Tri du contenu d'un fichier 
 file : Afficher le type d'un fichier 
 diff : Différences entre deux fichiers 
 grep : Rechercher un mot dans un fichier 




69               A. Rizki     EMSI 2006                                 Formation 
                              Linux
Le système de fichiers


 TP !




70       A. Rizki   EMSI 2006                                 Formation 
                    Linux
     Le système de fichiers                          ­ fichiers ­


   Affichage des caractéristiques: ls ­l
                           groupe
    répertoire racine
­rw­r­­r­­ 1  arizki  staff 58K 16 Jul 09:19  tp1.tex

       nb liens   propriétaire   taille                   date                 nom
                                   group
           type

                    ­rw­r­­r­­
                  user                             others
      71              A. Rizki     EMSI 2006                                 Formation 
                                   Linux
Le système de fichiers
                                                                    ­ fichiers ­

   Accès aux fichiers réglementé 
    (sauf: tous les droits pour root)
   3 types d’utilisateurs:
         –   propriétaire (user)
         –   personnes du mm groupe (group)
         –   les autres (others)
   3 types de permissions
                                        afficher le contenu         afficher le contenu
         –   lecture (r)
         –   écriture (w)                    modifier               créer/supp fichiers
         –   exécution (x)                   exécuter                      traverser

                                             fichier                    répertoire

    72                       A. Rizki            EMSI 2006                                 Formation 
                                                 Linux
     Le système de fichiers
                                                                  ­ fichiers ­
   Changer les permissions: chmod
    chmod <classe op perm, …>|nnn <fic>

    –    classe:
             u : user
                                           –    chaque perm = 1 valeur:
             g : group                                r                    4
             o : others                               w                    2
             a : all                                  x                    1
    –    op:                                          rien                 0
             = : affectation
             ­ : suppr.
                                           –    déf. des permissions (par addition) 
             + : ajout                          pour chaque classe
    –    perm:                            exemples:
             r : lecture                       chmod u=rwx,g=rx,o=r tp1.tex
             w : écriture
                                               chmod a+x script.sh
             x : exécution
                                               chmod 755 script.sh


        73                     A. Rizki           EMSI 2006                                 Formation 
                                                  Linux
Commandes sur les fichiers:
                                                                    ­ Droits d’accès­
 Chmod
     –   Octale: 
           chmod 444 /home/toto/mon_fich
                       r­ ­r­ ­r­ ­
     –   Symbolique: 
           chmod o­r fich
           chmod u=rw g=x fich2




74                       A. Rizki      EMSI 2006                                 Formation 
                                       Linux
Commandes sur les fichiers:
                                                      ­ Droits d’accès­
    Exemples 
2.   chmod u+x fichier signifie .. 
3.   chmod ug+w fichier ... 
4.   chmod go­rwx fichier ... 
5.   chmod [­R] go­rwx /home/toto ... 
6.   chmod u=rwx,g=rw,o=r fichier quelles sont 
     les permissions ? 
7.   chmod u=rwx,g=r fichier (les permissions 
     précédentes du groupe o sont inchangées) 
8.   chmod u=rwx,g=r,o= fichiers ... 

75            A. Rizki   EMSI 2006                                 Formation 
                         Linux
Le masque de création:

1.   Les permissions maximales accordées par 
     un fichier et un répertoire sont resp. 666 
     (­rw­rw­rw­) et 777 (­rwxrwxrwx).

2.   On peut restreindre ces permissions lors de 
     sa création. le rôle de la commande umask 
     de fixer les permissions masquées, 
     autrement dit les droits retranchés aux 
     fichiers et répertoires lors de leur 
     création. 

76            A. Rizki   EMSI 2006                                 Formation 
                         Linux
Le masque de création:
                                                     ­ Exemple ­
1.   Exemple de calcul de permissions effectives, 
     affectées lors de la création d'un répertoire, par un 
     utilisateur dont le masque de protection est 027
     777 = 111 111 111 permissions maxi = rwx rwx rwx ­ 
     027 = 000 010 111 masque de protection = 750 = 
     111 101 000 permissions effectives = rwx r­x ­­­ 
2.   La commande umask 
    umask affiche le masque de l'utilisateur actif
     Quelles sont les valeurs des masques par défaut de 
     root et des autres utilisateurs ? 
    umask ­S affiche les permissions correspondantes 
     au masque, sous forme symbolique. 
    umask masque fixe les permissions ultérieures de 
     création des fichiers de l'utilisateur actif, 
77              A. Rizki     EMSI 2006                                 Formation 
                             Linux
Les fichiers sous Unix : 
                 ­ Changer le propriétaire ­

    Changer le propriétaire : chown
     –   L'option ­R (récursif) permet d'agir 
         sur l'ensemble des sous­répertoires.
         Exemple : chown ­R stage4 /home/stage1 
    Changer le groupe : chgrp
     –   chgrp ­R stage4 /home/stage1 




78               A. Rizki    EMSI 2006                                 Formation 
                             Linux
Droits d'accès:




 TP N°2!




79          A. Rizki   EMSI 2006                                 Formation 
                       Linux
    Les redirections
 Une commande ouvre 
    3 descripteurs de fichiers; par défaut:

                                    stdin(0)                                          stdout(1)
                                                         commande
                 QuickTime™ et un
     décompresseur TIFF (non compressé)
    sont requis pour visionner cette image.




                                                          stderr(2)

   Redirections= remplacer les canaux par défaut, 
    rediriger vers une autre commande ou un fichier



    80                                        A. Rizki     EMSI 2006                                 Formation 
                                                           Linux
Les redirections
<       redirige l’entrée standard
>       redirige la sortie standard
>>      concatène la sortie standard
2>      redirige la sortie d’erreur
&>      redirige la sortie standard et la sortie d’erreur

    exemples:
       ls . > liste             crée/écrase le fichier liste 
                                et y dirige la sortie de ‘ls‘
       date >> liste            ajoute à la fin du fichier liste 
                                la sortie de ‘date‘
       wc ­l < liste            envoie comme entrée 
                                à la commande ‘wc‘ le fichier liste

81                   A. Rizki           EMSI 2006                                 Formation 
                                        Linux
Les redirections

 ls > essai
     –   envoie le résultat de ls dans essai
 ls >> essai2
     –   envoie le résultat de ls dans essai2 avec 
         concaténation
 ls –z   2> essai3
     –   le message d'erreur sera envoyé à essai 3
 cat < essai4
     –   affiche 
 cat < essai4 >> essai1

82                  A. Rizki    EMSI 2006                                 Formation 
                                Linux
Les tubes (pipes)

 Tube: |
 pour “connecter 2 commandes”

        stdin     stdout         stdin    stdout
            commande                commande

                    stderr                      stderr

     ex: combien de fichiers dans le rep. courant ?
        sans pipe:
        ls > temp ; wc ­l < temp ; rm temp
        avec un pipe:
        ls | wc ­l


83                   A. Rizki       EMSI 2006                                 Formation 
                                    Linux
    Initiation au shell
                                              ­ méta caractères ­
 Caractères spéciaux:


  !  ^  *  ?  []  \  ;  &  <  >  |  >>
   L'astérisque ou étoile: *
     –   interprété comme toute suite de caractères alphanumériques
     –   utiliser avec précaution (commande rm par ex...)

   Le point d’interrogation: ?
     –   remplace 1 seul caractère alphanumérique
   [ … ] Remplace l'un des caractères contenus entre les 
    crochets



    84                   A. Rizki       EMSI 2006                                 Formation 
                                        Linux
Initiation au shell
                                        ­ méta caractères ­
 rm a* 
     –   supprimme tous les fichiers dont le nom commence 
         par 'a'
 cp [k­o]*   /home/toto
     –   copie tous les fichiers commençant par l'un des 
         caractères k à o dans /home/toto
 ls R?t 
     –   liste tous les fichiers dont le nom est de 3 lettres 
         commençant par R et se terminant par t



85                  A. Rizki      EMSI 2006                                 Formation 
                                  Linux
Initiation au shell
                                      ­ méta caractères ­
 ls ­l  /etc| more
     –   afficher le contenu du dossier /etc page par page  
         ( tube )

 ls ­l | less


 cat ~/mon_fichier | wc ­l




86                 A. Rizki     EMSI 2006                                 Formation 
                                Linux
    Initiation au shell
                                                 ­ méta caractères ­
   Le point­virgule:  ;
     –   Séparateur de commandes
   Les crochets:  []
     –   Remplace un caractère choisi parmi ceux énumérés entre les 
         crochets 
   L’anti­slash:  \
     –   Inhibe la signification du méta­caractère qui suit

   Interprétation des chaînes de caractères
     –   Texte entre '' (simples quotes): le texte n’est pas interprété 
         mais considéré comme un mot
     –   Texte entre "" (doubles quotes): seuls sont interprétés les 
         métacaractères $, \ et `
     –   Texte entre `` (anti quotes): considéré comme une commande 
         à interpréter, et c’est le résultat qui sera utilisé.




    87                     A. Rizki        EMSI 2006                                 Formation 
                                           Linux
Initiation au shell
                                                     ­ méta caractères ­
    Exemples:
      –   echo *
           Tous les fichiers sauf ceux dont le nom commence par un point
      –   echo *c
           Tous les fichiers dont le nom se termine par un ‘c’
      –   echo .*
           Tous les fichiers dont le nom commence par un point
      –   echo [0­9]*
           Tous les fichiers dont le nom commence par un chiffre




88                        A. Rizki             EMSI 2006                                 Formation 
                                               Linux
    Initiation au shell
                                        ­ méta caractères ­
    Commandes groupées: ( ; )
    1.   ­ pwd
          /
         ­ cd /home/toto ; rm test
         ­ pwd
          /home/toto
    6.   ­ pwd
            /                                       un nouveau shell est 
         ­ (cd /home/toto ; rm test )                lancé. Il disparaitra 
         ­ pwd                                      après la comde " rm 
                                                             test"
           /

    89               A. Rizki    EMSI 2006                                 Formation 
                                 Linux
Initiation au shell
                                    ­ méta caractères ­
 Le backquoting: `commande `
     – echo pwd
       pwd
     echo 'pwd'
       pwd
     echo `pwd`
       /home/toto
     echo il y a `who | wc ­l ` utilisateurs connectés
     echo il y a `ls ­a  | wc –w` fichiers dans `pwd ` 



90               A. Rizki     EMSI 2006                                 Formation 
                              Linux
Les filtres

 grep: recherche des occurrences d'une chaine de 
     caractères.
 wc : compte le nombre de caractères (octets), mots et 
     lignes.
 head: Affiche les 1ères lignes d'un fichier
 tail: affiche les dernières ligne d'un fichier
 more: affiche page / page
 less : affiche page / page 




91                 A. Rizki    EMSI 2006                                 Formation 
                               Linux
Les tubes et redirections

 TP!




92       A. Rizki   EMSI 2006                                 Formation 
                    Linux
L’editeur de texte vi
                                           Commande            Insertion

    Utilsé pour la création et la modification de fichiers 
    vi est un éditeur (en mode console) 
     peu convivial certes, mais ultra puissant
                          I, I, a,A, o,O


         Mode 
                                                    Mode insertion
       commande



                              Echap
93                 A. Rizki      EMSI 2006                                 Formation 
                                 Linux
L’editeur de texte vi
                                                     ­ Appel ­



 Appel de l’editeur:
     –   vi nom_fichier : Pour éditer un fichier
     –   vi –R nom_fichier : pour éditer un fichier en 
       lecture seule
     – vi : Pour ouvrir un nouveau fichier sans nom




94                A. Rizki    EMSI 2006                                 Formation 
                              Linux
L’editeur de texte vi
                                           ­ Renseignements­

 :se ts=n    fixe la tabulation à n caractère 
         ( par défaut = 8)
 :se nu   Affiche les numéros de ligne
 :se nonu    Supprime les numéros de lignes
 :.=    affiche le numéro de la ligne courante
 <ctrl>+g ou :f   affiche l’état du fichier
 : e!  réedite le fichier tel qu’il est sur le disque




95               A. Rizki     EMSI 2006                                 Formation 
                              Linux
L’editeur de texte vi
                                         ­ Déplacements­
 <ctrl> + b    Page précédente  (back)
 <ctrl> + f     Page précédente ( Forward)
 G         Dernière ligne
 nG        Ligne n
 H         Haut de l’écran ( high )
 M         Milieu de l’écran ( Middle )
 L         Bas de l’écran
 n <espace>         n caractères vers la droite
0          Début de la ligne

96            A. Rizki      EMSI 2006                                 Formation 
                            Linux
L’editeur de texte vi
                                           ­ Déplacement­
^    Premier caractère non blanc
 $ dernier caractère de la ligne
   ou k  Ligne précédente
  ou j   Ligne suivante
  ou l    vers la droite
  ou h  vers la gauche
 n <Return>     n lignes vers 
 + ou <Return>         début de la ligne suivante
­               début de la ligne précédente

97             A. Rizki    EMSI 2006                                 Formation 
                           Linux
 L’editeur de texte vi
                                              ­ Recherche­


 /motif <return>   Recherche motif vers l’avant
 ?motif <return> Recherche motif vers l’arrière
 n    Répète la dernière commande de recherche




 98            A. Rizki   EMSI 2006                                 Formation 
                          Linux
L’editeur de texte vi
                                                 ­ Insertion ­
 i ….. <ESC>    Avant le curseur
 I ….. <ESC>        Au début de la ligne courante
 a ….. <ESC>        Après le curseur
 A ….. <ESC>        En fin de la ligne courante
 o ….. <ESC>        Au dessous de la ligne courante
 O ….. <ESC>        Au dessus de la ligne courante




99            A. Rizki      EMSI 2006                                 Formation 
                            Linux
  L’editeur de texte vi
                                   ­ Modif. et Remplacements

 <ctrl>+u Annule le texte inséré de la ligne courante
 <ctrl>+v Insère le caractère spécial qui suit
 <ctrl>+l  Insère un saut de page


 r #   Remplace le caractère courant par #
 R ….<ESC>  Remplace la chaine de caractères 
  courante par la chaine entre R et <ESC>
 ~   Bascule de Majuscule en minuscule et inversement
 .  Répète la dernière commande modifiant le texte



  100             A. Rizki     EMSI 2006                                 Formation 
                               Linux
 L’editeur de texte vi
 ­ Effacements:
  x Effacement du caractère sous le curseur
  3x de 3 caractères à partir de la position du 
       curseur
  dd de la ligne où se trouve le curseur
  4dd de 4 lignes à partir de la ligne du curseur

   ­ Restitution:
•  u Restitution de la dernière modification(undo)
 U La ligne courante avant modification (sauf dd)
 P dernière commande d'éffacement



 101             A. Rizki   EMSI 2006                                 Formation 
                            Linux
L’editeur de texte vi
                                   ­ Mouvements de lignes­
 J joint la ligne courante et la suivante
 r<Return> brise en 2 lignes à partir de la position 
      du curseur
 yy Place la ligne courante dans le tampon de 
      travail
 dd idem avec effacement de la ligne
 10yy Place 10 lignes courante dans le tampon de 
      travail
 10dd idem avec effacement



102                A. Rizki   EMSI 2006                                 Formation 
                              Linux
L’editeur de texte vi
                                                     ­ Décalages­
 >> (ou <<) décalage vers la droite(ou vers la 
      gauche) de toute la ligne de m positions, m étant 
      définit par la commande set sw=m( par défaut m=8)
 n>> (ou <<) décalage des n lignes suivantes
 : n1, n2 >> ( ou n1,n2<<) décalage des lignes n1 
      à n2




103               A. Rizki   EMSI 2006                                 Formation 
                             Linux
L’editeur de texte vi
                                                     ­ Subtitutions­

 :s/old/new/p substitution du 1er "old" de la ligne 
      courante par "new"
 :s/old/new/gp Substitution de tous les old de la 
      ligne courant par new
 i,j s/old/new/p substitution des 1ers old des 
      lignes i à j par new
 i,j s/old/new/gp substitution de tous les old des 
      lignes i à j par new
 :u annule la plus récente substitution réalisée



104                A. Rizki   EMSI 2006                                 Formation 
                              Linux
L’editeur de texte vi
                                        ­ Insertions de fichiers­


 :nr nom_fichier insère le fichier nommé après la 
      ligne n
 :r nom_fichier insère le fichier nommé après la 
      ligne courante




105               A. Rizki   EMSI 2006                                 Formation 
                             Linux
Le shell
                                  ­ Les entrées/sorties ­

Ce sont les voies de communication entre le 
  programme bash et la console : 
• echo, affiche son argument texte la sortie 
  standard.
  l'option ­e pour insérer les caractères spéciaux : \n 
  (saut ligne), \b (retour arrière), \t (tabulation), \a 
  (alarme), \c (fin sans saut de ligne)

echo "Bonjour à tous !" 
echo ­e "Bonjour \nà toutes \net à tous ! " 


106             A. Rizki     EMSI 2006                                 Formation 
                             Linux
    Le shell
                                             ­ Les entrées/sorties ­

    read, permet l'affectation directe par lecture de la 
     valeur, saisie sur l'entrée standard au clavier 
     read var1 var2 ... attend la saisie au clavier 
     d'une liste de valeurs pour les affecter,, 
     respectivement aux variables var1, var2 .. 

      echo "Donnez votre nom et prénom "
      read prenom nom 
      echo "Bonjour $prenom $nom" 



    107            A. Rizki     EMSI 2006                                 Formation 
                                Linux
      Le shell
                                                           ­ Les variables ­

 La liste des variables est obtenue avec set
 Affectation:   variable=valeur


                        Attention: Pas d'espaces
   Les variables sont toujours précédées par $
    Exemples:
                              a=Bon  b=jour
    echo $a$b          echo $asoir                     echo ${a}soir
    Bonjour           Mauvais résultat                             Bonsoir
    set affichera la liste des variables actuelles ainsi que leurs valeurs
    unset pour supprimer une variable
      108                   A. Rizki          EMSI 2006                                 Formation 
                                              Linux
  Le shell
                                              ­ Les variables ­
       Variables d'environnement:
       Ce sont les variables systèmes dont la liste est 
        consultable par la commande env | less 
        Les plus utiles sont $HOME, $PATH, $USER, 
        $PS1, $SHELL, $ENV, $PWD, $CDPATH .. 

Exemple:
[toto@pxx toto]$ moi=Toto
[toto@pxx toto]$ p="Je m'appelle $moi"
[toto@pxx toto]$ echo Aujourd\'hui, quel jour sommes nous ? ; 
read jour
[toto@pxx toto]$ echo aujourd'hui $jour, $p sous le nom $USER,
                       est connecté à la station $HOSTNAME 


  109                A. Rizki    EMSI 2006                                 Formation 
                                 Linux
Le shell
                                           ­ Les variables ­
 Variables d'environnement:
 PATH: chemin de recherche des commandes
 CDPATH: Liste des chemins d’accées pour la 
      commande cd
 HOME: Répertoire d’accueil
 PS1: Prompt (invite)
 SHELL: type de shell utilisé
 HOSTNAME: nom de la machine

env  pour afficher les variables d’environnement

110              A. Rizki     EMSI 2006                                 Formation 
                              Linux
Le shell
                                                    ­ Les alias ­
     Un alias est une abréviation utilisée pour remplacer 
      une commande plus longue
     Les alias sont supprimés après la sortie du shell, il faut 
      donc les mémoriser

         alias : affiche la liste de tous les alias
         alias la=‘ls –al’ : pour remplacer la 
         commande « ls –al » par la




111                 A. Rizki      EMSI 2006                                 Formation 
                                  Linux
Le shell
                                         ­ La fonction shell­
 il est possible de créer des fonction qu’on 
  peut appeler par la suite
 Comme les alias, les fonctions sont 
  supprimées aussi après sortie du shell

 Sortie( )
         {
         clear
         echo déconnexion
         exit
         }
112             A. Rizki    EMSI 2006                                 Formation 
                            Linux
La programmation  shell

 Définition
      –   Le shell c’est aussi un puissant langage de 
          programmation
      –   Un fichier contenant une suite de commandes est 
          appelé script


 Le jeu d’instruction du shell comprend:
      –   les instructions d’entrées/sortie et d’affectation
      –   les instructions itératives et conditionnelles
      –   les mécanismes de tube et de redirection
      –   les appels de programmes exécutables(scripts) 
          avec passage d’arguments

113                  A. Rizki     EMSI 2006                                 Formation 
                                  Linux
La programmation  shell
                                                            ­ Premier script ­
 création:
      –   On utilise l’éditeur vi pour l’éditer
      –   après sauvegarde il faut lui donner le droit x pour 
          tous
 Appel
      –   On peut l’appeler de différentes manières
            sh nom_script
            ./ nom_script
            nom_script (appel direct, mais il faut le mettre dans 
             dossier du PATH)



114                   A. Rizki       EMSI 2006                                 Formation 
                                     Linux
  La programmation  shell

 un script peut etre paramètrable càd appelé 
  avec des arguments(paramètres)
 Les arguments sont stockés dans les 
  variables $1, $2, …, $9
exemple:
création:                       exécution:
e votreargum nt e t $1
 cho           e s                  _s      s
                                nom cript te t
ls–l $1 | more                  résultat:
                                          e s s
                                votreargum nt e t te t
                                 t uite
                                e las ……

  115             A. Rizki   EMSI 2006                                 Formation 
                             Linux
   La programmation  shell
                                                     ­ variables spéciales ­

   $0 est le nom dans lequel le script est appelé
   $# est le nombre de paramètres passés en argument
   $* est la liste des paramètres passés en argument
   $? est le code de retour de la dernière commande (0 : 
    si la commande a été correctement exécutée
   $1, $2, …, $9: représentent les arguments du script

  création:                                 exécution:

vi my_script                          sh my_script  a b c d
echo $0 a été appelé avec $#          my_script a été appelé avec 4 paramètre
paramètres
                                      qui sont : a b c d
echo qui sont : $*
   116                 A. Rizki   EMSI 2006                                 Formation 
                                  Linux
La programmation  shell
                                    ­ Les instructions conditionnelles ­

 L'instruction if:

         if commande 
        then commandes
         fi
      Les commandes sont exécutées si la commande de 
      condition renvoie un code retour nul($?=0)
if grep –i "tarik" /etc/passwd
then echo L\'utilsateur tarik est connu du système
fi

117               A. Rizki       EMSI 2006                                 Formation 
                                 Linux
La programmation  shell
                            ­ Les instructions conditionnelles ­




                                      if commande a
                                      then commandes1
       if commande                    elif commande b
                                      then commandes2
       then commandes1
                                    elif commande b
       else commandes2                then commandes3
                                      .
       fi                             .
                                      .
                                      else 
                                      fi


 118             A. Rizki   EMSI 2006                                 Formation 
                            Linux
La programmation  shell
                                  ­ Les instructions conditionnelles ­

  Exemples:

 if grep –i "tarik" /etc/passwd
 then echo L\'utilsateur tarik est connu du système
 else echo L\'utilsateur tarik n\'est pas connu du système
 fi
 if [ $# = 2 ]
 then echo "bonjour $1 $2 et bonne journée"
 else echo "Syntaxe: $0 nom prénom"
 fi
 119               A. Rizki       EMSI 2006                                 Formation 
                                  Linux
La programmation  shell
                                  ­ Les instructions conditionnelles ­
 Choix multiples
 case valeur in
  expr1) commandes ;;
  expr2) commandes ;;
  ...
 esac 



  read langue 
  case $langue in
  francais) echo Bonjour ;;
  anglais) echo Hello ;;
  espagnol) echo Buenos Dias ;;
  esac 



 120                 A. Rizki     EMSI 2006                                 Formation 
                                  Linux
La programmation  shell
                                    ­ Les instructions conditionnelles ­


  case $USER in  
  root) echo "Mes respects M le $USER" ;;  
       jean | stage?) echo "Salut à $USER ;; 
  toto) echo "Fais pas le zigo$USER \!" ;;
  esac 


  read reponse
  case $reponse in
  [yYoO]*) ...... ;; 
   [nN]*)  .......;;
  esac 




 121                    A. Rizki     EMSI 2006                                 Formation 
                                     Linux
La programmation  shell
                              ­ Les instructions conditionnelles ­


  test expression
               ou 
       [ expression ]

 Elle permet de: 
  reconnaître les caractéristiques des fichiers et des 
    dossiers
  comparer des chaines de caractères
  comparer algébriquement des nombres



 122             A. Rizki     EMSI 2006                                 Formation 
                              Linux
La programmation  shell
                                   ­ Les instructions conditionnelles ­

  Les expressions les plus utilisées sont:
          ­d nom: vraie si le rép. "nom" existe
          ­f nom: vraie si le fichier  "nom" existe
          ­s nom: vraie si le fichier  "nom" existe et est non 
           vide
          ­r nom: vraie si le fichier  "nom" existe et est 
           accessible en lecture
          ­w nom: vraie si le fichier  "nom" existe et est 
           accessible en ecriture
          ­x nom: vraie si le fichier  "nom" existe et est 
           exécutable

 123                  A. Rizki     EMSI 2006                                 Formation 
                                   Linux
La programmation  shell
                                     ­ Les instructions conditionnelles ­

  Les expressions les plus utilisées sont:
          ­z | ­n  chaine: vraie si la chaine de caractères 
           "chaine" existe et est vide / n'est pas vide 
          c1 = | !=  c2: vraie si les deux chaines de 
           caractères c1 et c2 sont identiques| différentes 
          n1 ­eq | ­ne n2: vraie si les deux entiers n1 et n2 
           sont égaux| différent 
          n1 ­lt | ­gt n2: vraie si n1 est strict. inf | strict. sup à 
           n2
          n1 ­le | ­ge n2: vraie si n1 est inf ou égal | sup ou 
           égal à n2

 124                   A. Rizki       EMSI 2006                                 Formation 
                                      Linux
La programmation  shell
                                                ­ Structures itératives ­

  Boucle for:
  for variable [in liste]
  do
  commandes (utilisant liste)
  done 

for nom in jean toto stage1
do 
  echo "$nom, à bientôt" 
done 




  125                  A. Rizki   EMSI 2006                                 Formation 
                                  Linux
La programmation  shell
                                                     ­ Structures itératives ­

  Boucle for:
  for variable 
  do
  commandes (utilisant $variable)
  done 
                  L'exécution donne:
for i
do                my_script le système linux
  echo $i         le
done              système
                  linux



  126                  A. Rizki        EMSI 2006                                 Formation 
                                       Linux
La programmation  shell
                                              ­ Structures itératives ­

 Boucle for:
 for variable in *
 do
 commandes (utilisant $variable)
 done 
 L'etoile (*) concerne les fichiers du rép. Courant
                                 L'exécution donne:
  for f in *
                                 sh my_script
  do 
                                 fich1
    echo $f 
                                 fich2
  done 
                                 fich3


 127                 A. Rizki   EMSI 2006                                 Formation 
                                Linux
La programmation  shell
                                              ­ Structures itératives ­

 Le script lsd contient:
 echo "liste des répertoires sous `pwd`"
 for i in *
 do
 if [ ­d $i ]
 then
      echo $i "      : Répertoire"
 fi
 done



 128              A. Rizki      EMSI 2006                                 Formation 
                                Linux
La programmation  shell
                                           ­ Structures itératives ­

   while liste­commandes
  do commandes
   done 
 La répétition se poursuit TANT QUE la dernière commande de la 
    liste est vraie (c­à­dire renvoie un code de retour nul) 

   until liste­commandes
  do commandes
   done 
 La répétition se poursuit JUSQU'A CE QUE la dernière commande 
    de la liste devienne vraie 


 129               A. Rizki      EMSI 2006                                 Formation 
                                 Linux
La programmation  shell
                                           ­ Structures itératives ­
 exmples:
 1)                            2)le script affich contient:
 while [ $i ­gt 0 ]; do        until [ $1 = fin ]; do
 echo ­n "$i "
  sleep 1                      echo $1
 let $[ i ­= 1 ]               shift
 done                          done
 echo "0"                       appel du script:
                                sh affich 1 2 3 fin 5 6
                                1
                                2
                                3
                                4
 130                A. Rizki     EMSI 2006                                 Formation 
                                 Linux
     Calcul mathématique
     Le shell permet d'effectuer des calculs mathématiques 
      mais uniquement sur des entiers. Il y a deux syntaxes 
      possibles : 
     let $[ expression mathématique ] let $(( expression 
      mathématique )) L'expression mathématique peut faire 
      intervenir n'importe quelle variable (pas forcément 
      précédée du signe $) ainsi que n'importe quel nombre 
      entier décimal (219), hexadécimal (0xDB ou 16#DB), 
      octal (0333 ou 8#333) ou binaire (2#011011011). Tous 
      les opérateurs du langage C sont autorisés (+, ­, *, %, 
      ||, >>, =, +=, ^=, ==, !=, etc...), y compris les 
      parenthèses. 

131                A. Rizki     EMSI 2006                                 Formation 
                                Linux
     On peut aussi utiliser la formulation "commande $[ 
      expression mathématique ]". 
     Dans ce cas, l'expression mathématique est 
      remplacée par sa valeur puis la commande est 
      exécutée. 




132                A. Rizki     EMSI 2006                                 Formation 
                                Linux
     exemple:
     toto> let $[ a = 11 ] 
     toto> let $[ b = 3 ]
      toto> let $[ b += a ]
      toto> echo $b 14
      toto> echo $[ b % a ] 
     3 
     toto> echo $[ a != 0 ] 
     1 
     toto> echo $[ b > 20 ]
      0

133                 A. Rizki    EMSI 2006                                 Formation 
                                Linux