Vous êtes sur la page 1sur 90

Le Systme Linux

(Installation, Configuration, Administration)

Habib SMEI
Mail : Habib@habibsmei.com Web : http://www.habibsmei.com

Cours Linux

Habib SMEI

Plan
Chapitre I : Prsentation du systme dexploitation linux
I : Prsentation gnrale I- Historique du systme dexploitation linux II- Les caractristiques de linux III Les diffrentes distributions IV- Les diffrents types dutilisateurs sous linux II : Dmarrage de LINUX I- Ouverture de session II- Connexion en tant que Root III- Cration dun compte utilisateur IV- Fermeture de session III : Commandes de base I- Syntaxe des commandes II- Manuel en ligne : man III- Initiation quelques commandes : Who, finger, date, cal, date, write, mail,

Chapitre II : Installation de linux


IIIIIIIVVVIVIICration d'une disquette d'installation Partitionnement des disques durs Choix des partitions formater Choix des paquetages installer Configuration du matriel Dmarrer avec LILO / GRUB Tlchargement et installation des mises jour

Cours Linux

Habib SMEI

Chapitre III : Le systme de fichiers sous linux I- Les types de fichiers II- Organisation du systme de fichiers sous UNIX III- Caractristiques dun fichier IV- Les commandes de gestion des rpertoires V- Les commandes de gestion des fichiers ordinaires VI- Les droits daccs ou permissions Chapitre IV : Les droits d'accs I- Les types de fichiers II- Identification de lutilisateur III- Dfinition des droits d utilisateur IV- Commandes associes Chapitre V : Le langage de commandes Shell I- Elments de base II- La redirection des entres / sorties III- Utilisation des caractres spciaux IV- Programmation du shell V- Cration de commandes avec arguments VI- La gestion des processus Chapitre VI : La gestion dun rseau I- Installation et configuration dun serveur II- Les commandes rseau III- Les services (DNS, Mail, Web, FTP, Telnet, SSH,) Cours Linux Habib SMEI

Plan

LIENS UTILES
http://fr.redhat.com/ http://www.linux-mandrake.com/fr http://www.slackware.com/index.php http://www.suse.de/fr http://www.fr.debian.org/ http://www.ac-creteil.fr/reseaux/systemes/linux/Welcome.html http://www.baby-linux.net/ http://www.linux-kheops.com/ http://www.freenix.fr/ http://www.linux-center.org/fr http://www.linux-france.org/ http://www.linux.org/ http://www.tootella.org/ http://www.webmin.com/ http://freshmeat.net/ http://rpmfind.net/ http://www.toolinux.com/lininfo/news http://www.pingouin-land.com/ http://www.linux.uhp-nancy.fr/HOWTOFRENCH/INDEX.html http://sunsite.unc.edu/LDP/HOWTO/HOWNTO-INDEX.html http://www.lea-linux.org/ http://samba.linuxbe.org/fr/index.html http://www.linux-doc.org/ http://www.amenti.org/ http://www.ze-linux.com/ http://home.worldnet.fr/~lmsoft/linux/index.shtml http://www.pingoo.org/ http://adiplo.tuxfamily.org/ http://www.linuxmag-france.org/ http://www.linux-pratique.org/ http://www.linuxinfos.org/
Cours Linux Habib SMEI

Prsentation du systme dexploitation linux Gense de Linux :


Unix En 1969, au Laboratoire BELL dpendant de lAT & T (Amrican Tlphone And Tlgraph Company) deux ingnieurs KEN THOMPSON et Dennis Ritchie ont dvelopp un systme dexploitation interactif en assembleur et en mode monoprogrammation. En 1975 sortie de la premire version officielle dUNIX dnomme Version 6 (V6) En 1984 apparition des versions system V chez AT &T et 4.2 BSD Berkley, et depuis UNIX sest standardis travers ses deux versions BSD 4.4 et system V.

Quest-ce que Linux ?


Une version d'UNIX gratuite et librement diffusable dveloppe l'origine par Linus Torvalds l'universit de Helsinki, en Finlande (1990 ) Noyau Unix-like
Mlange/adaptation de diverses technos (Minix, sockets BSD, IPC System V, VFS Sun, ) Ensemble de commandes GNU G.N.U = Gnus Not Unix !

Actuellement plus de 20 millions dutilisateurs dans le monde Plusieurs socits cotes en bourse: Red Hat, Mandrake Soft, VA Linux,

Cours Linux

Habib SMEI

Prsentation du systme dexploitation linux Caractristiques gnrales

Code source disponible (licence GPL : General Public Licence ) Distributions multiples Systme multi-tches et multi-utilisateurs Multi-plateforme (intel x86, Sun Sparc, etc) Gestion du multiprocesseur (option SMP : Symmetric MultiProcessor scalaireparallle mmoire partage )

Compatible POSIX (standard logiciel) Compatibilit de code avec les autres UNIX Gestion des consoles virtuelles Possibilit de cohabitation avec dautres systmes Support dun grand nombre de systmes de fichiers

Cours Linux

Habib SMEI

Prsentation du systme dexploitation linux

Caractristiques gnrales Implmentation complte de la pile TCP/IP Services rseau: SLIP, PPP, NFS, etc Interface graphique: X-Window Le Noyau Linux (kernel) :
Cur du systme Ensemble de routines appeles par des appels systmes Interface entre les programmes utilisateurs et le matriel Gestion des processus Gestion de la mmoire virtuelle Protection entre les processus
Cours Linux Habib SMEI

Prsentation du systme dexploitation linux

Caractristiques gnrales Applications Disponibles:


Bureautique:
StarOffice Koffice (Kword, Kspreadsheet, Kpresenter) AbiWord (traitement de texte) Gnumeric (tableur)

Graphisme:
The Gimp (retouche dimage) Corel PhotoPaint (retouche dimage) Sketch (Dessin vectoriel)

Internet:
Netscape Communicator (4.78 et 6.01) Konqueror Opera 5 Instant Messaging: ICQ, AIM, etc Pan (Lecteur de News)

Serveurs
HTTP, FTP, mail, news, DNS, etc
Cours Linux Habib SMEI

Prsentation du systme dexploitation linux


Les diffrentes distributions
Une distribution : fichiers tlchargeables sur des sites ftp ou sous forme dun ou plusieurs CD-ROM. Une distribution est un ensemble compos du noyau, dapplications et de documentations. RedHat : Convient parfaitement aux dbutants qui bnficient d'interfaces graphiques pour la configuration et l'administration. Les utilisateurs avertis trouvent aussi leur compte dans la cohrence, la qualit et le dynamisme de cette distribution. Debian : Une distribution d'un groupe de bnvoles. Trs complte et conue de faon mticuleuse et efficace, la Debian permet de tout dimensionner selon ses besoins. D'importants intervalles de temps sparent cependant parfois deux mises jour stables et sa prise en main est parfois dlicate, surtout pour les dbutants. Debian possde son propre format de paquetage (.deb). Mandrake : Distribution franaise bien finie. Tout est fait pour le confort de l'utilisateur final. La version GPL tient sur un CD. La version commerciale en comprend cinq et reprsente 2500 packages. Son installation reprend celle de RedHat. Les paquetages sont des .rpm. S.u.S.E : La SuSE est une distribution de choix pour celui qui souhaite installer et utiliser rapidement Linux mais ne souhaite pas s'intresser de trop prs aux dtails de son fonctionnement. Distribution commerciale de grande qualit, incluant de nombreuses applications pr-configures. L'installation et l'administration sont grandement facilites par les outils fournis. Convient la fois aux utilisateurs novices qui auront peu de mal l'installer, et aux utilisateurs expriments qui n'ont pas envie de perdre du temps bidouiller l'installation pour qu'elle fonctionne bien. Slackware : Destine ceux qui souhaitent acqurir en douceur une bonne matrise d'Unix, qui veulent mettre en place un serveur, et ceux pour qui la facilit de dploiement est particulirement importante. Elle compte encore de trs nombreux adeptes parfois convaincus mais semble en perte de vitesse et les mises jour se font rares. Corel Linux : Corel Linux est une distribution base sur Debian faite par Corel (Wordperfect, etc.). Elle s'adresse aux dbutants et se veut trs facile d'installation. Caldera : Ressemble beaucoup RedHat. Les paquetages sont des .rpm. Ds le dpart le noyau est configur pour une utilisation rseau : IPX, SMB, IP, NFS. Trs peu de modifications des fichiers de configuration sont ncessaires. La dtection automatique du matriel fonctionne assez bien. Cours Linux Habib SMEI

Prsentation du systme dexploitation LINUX

Gestion des Utilisateurs


Un utilisateur du systme:
Personne physique Droits daccs au systme Rpertoire personnel Groupe dutilisateur

Un utilisateur particulier: root


Administrateur du systme Possde tous les droits sur le systme, les utilisateurs et les fichiers A nutiliser que pour la configuration et linstallation

Cours Linux

Habib SMEI

10

Prsentation du systme dexploitation LINUX Gestion des Utilisateurs


Identification dun utilisateur: Nom: login Mot de passe: password Rfrencement de tous les utilisateurs dans le fichier /etc/passwd et/ou /etc/shadow Rfrence un groupe: /etc/group Rpertoire personnel: /home/<login> Commandes utilisables par root: adduser : ajouter un utilisateur deluser : supprimer un utilisateur usermode : changer les proprits dun compte Commande utilisable par tous les utilisateurs passwd : changer le mot de passe

Cours Linux

Habib SMEI

11

Prsentation du systme dexploitation LINUX

Gestion des Utilisateurs


Le fichier /etc/passwd Contient toutes les informations sur les comptes utilisateurs du systme Seul root a le droit en criture dessus Chaque utilisateur est rfrenc par une ligne donnant:
Son login Son mot de passe (crypt) Son numro didentification sur le systme Son numro de groupe Un Commentaire (Nom complet en gnral) Son rpertoire personnel de base Son shell par dfaut

Cours Linux

Habib SMEI

12

Prsentation du systme dexploitation LINUX


Dmarrage de Linux : Ouverture de session

Pour commencer l'utilisation du systme, il faut ouvrir une session. Se connecter est quivalent se prsenter au systme. On distingue deux modes de connexion :

En mode texte la console virtuelle : l'aide des touches ctr + Alt + (F1 F6). En mode graphique : l'aide des touches ctr + Alt + F7.
N.B : A la diffrence des autres S.E. le systme Linux utilise des comptes pour grer des privilges, de la scurit, etc. Tous les comptes cres ne sont pas gaux : certains ont moins de droits d'accs aux fichiers et au services que d'autres.

Cours Linux

Habib SMEI

13

Prsentation du systme dexploitation linux


Dmarrage de Linux : Connexion en tant que Root

Le compte root est cre durant l'installation : fournit au super-utilisateur un accs complet au systme (pour l'administration du systme). Les comptes utilisateurs sont cres pour que les tches typiques de l'utilisateur puissent tre effectues sans devoir utiliser le compte root et sans risque d'endommager le systme. Se connecter en tant que root : entrez root l'invite du shell, puis le mot de passe du root que vous avez choisi au moment de l'installation. Aprs avoir dmarrer le systme X-window, vous dcouvrez un bureau GNOME dans GNOME ou un bureau KDE dans KDE.
Remarque : si une invite du shell s'affiche (au lieu du bureau graphique) vous pouvez lancer le systme X-window en tapant startx comme suit : [root@localhost/root] #startx

Cours Linux

Habib SMEI

14

Prsentation du systme dexploitation LINUX


Dmarrage de Linux : Cration dun compte utilisateur Cration dune fentre terminal : Sur le tableau de bord de GNOME et de KDE vous
trouverez des boutons de lancement rapide d'une invite du shell.

Vous pouvez galement trouvez des lanceurs d'invites shell

Dans le menu GNOME : Main Menu System GNOME terminal ou Regular


Xterm.

Dans KDE vous pouvez galement trouver le lanceur dans le menu principal sous
Utilities Konsole ou Terminal. Tout utilisateur doit tre dclar (enregistr) avec : un nom de compte (login name), un mot de passe (password). Pour se connecter, il faut donner son nom de compte et le mot de passe associ. Ce dernier doit tre fiable (pas de prnom, nom, mot courant,). N.B : linux diffrencie les majuscules et les minuscules, et ceci s'applique aussi pour le mot de passe.

Cours Linux

Habib SMEI

15

Prsentation du systme dexploitation LINUX


Dmarrage de Linux : Cration dun compte utilisateur

Depuis une interface graphique : Connectez vous en tant que super-utilisateur (uniquement le superutilisateur a le droit d'ajouter des comptes). Passez au menu principal System User manager entrez toutes les informations relatives au nouveau compte valider Depuis une invite du shell : Connectez vous en tant que super-utilisateur. Entrez la commande useradd suivi d'un espace et du nom de l'utilisateur du compte, puis appuyez sur [entre]. Tapez maintenant passwd suivi d'un espace et du nom de l'utilisateur du compte, puis appuyez sur [entre].

Cours Linux

Habib SMEI

16

Prsentation du systme dexploitation LINUX


Dmarrage de Linux : Fermeture de session

Dans un environnement non graphique, il suffit au prompt de taper logout, ou en utilisant la combinaison des touches ctr + D. Vous vous retrouvez alors avec le prompt de login, un autre utilisateur pourra alors utiliser la machine. Dans un environnement graphique, vous avec une commande Exit, ou Logout, qui a strictement le mme effet. Vous devez veiller vous dconnecter quand vous n'utilisez plus le systme, pour des raisons de scurit, mais aussi tout simplement pour librer le poste de travail.

Cours Linux

Habib SMEI

17

Prsentation du systme dexploitation LINUX

Commandes de base

Architecture Globale: 3 couches


Couche physique : priphriques + BIOS Couche systme : kernel et processus Couche interface : shell + X-Window

Communications entre couches trs rglementes par le kernel

Cours Linux

Habib SMEI

18

Prsentation du systme dexploitation LINUX

Commandes de base
Architecture dun systme GNU/Linux:

Carte graphique (Xfree x.x)

Systme X-Window shell kernel BIOS Priphriques Physiques

Interface Utilisateur Systme

Machine

Cours Linux

Habib SMEI

19

Prsentation du systme dexploitation LINUX


Commandes de base : Syntaxe des commandes

syntaxe : commande [options] [paramtres] La commande est un mot cl en minuscules o toute faute de frappe constitue une erreur de syntaxe. (bien faire attention aux espaces). Une commande peut tre limite un mot cl ou peut tre suivie d'options et/ou de paramtres facultatifs. Les paramtres et les options obissent galement une certaine syntaxe. Pour les options sur toutes les commandes linux, elles sont en rgle gnrale toujours prcdes d'un tiret (-) et suivies d'au moins un caractre. Il peut y avoir plusieurs options.

Exemple : [root@localhost/root] #ls -a (list all : lister tout) Paramtres : Pour les paramtres ou arguments, il n'y a pas de syntaxe gnrale :
Cours Linux Habib SMEI

20

Prsentation du systme dexploitation LINUX


Commandes de base : Manuel en ligne : man

Sous linux, chaque commande est documente. Cette documentation est accessible l'aide de la commande "man" (pour manuel) suivi de la commande dont on veut consulter la documentation. Exemple : [root@localhost/root] #man cat CAT(1V) USER COMMANDS CAT(1V) NAME cat - concatenate and display SYNOPSIS cat [ - ] [ -benstuv ] [ filename... ] DESCRIPTION cat reads each filename in sequence and displays it on the standard output. Thus:(...) La commande cat permet de visualiser le contenu dun ou de plusieurs fichiers.
Cours Linux Habib SMEI

21

Prsentation du systme dexploitation LINUX


Commandes de base : Quelques commandes

Information sur les utilisateurs : Qui est l et qui tes vous : who ; [root@localhost/root] #who root ttyp0 Feb 18 11:44 (root) user1 ttyp1 Feb 18 07:37 (plb) user2 ttyp3 Feb 18 08:54 (dim) On peut galement demander qui on est : [root@localhost/root] #whoami root Ou [root@localhost/root] #who am i root ttyp0 Feb 18 11:44 (root) La commande finger est quasiment identique : [root@localhost/root] #finger Mais elle donne plus dinformations sur un utilisateur particulier : [root@localhost/root] #finger user1 Login name: user1 In real life: user1 Meriam (Stage DEA Image-IA Tunis) Directory: /users/user1 Shell: /bin/csh On since Feb 18 09:08:36 on ttyp4 from asterix 3 hours 33 minutes Idle Time Mail last read Wed Feb 18 09:09:25 2003 No Plan.

Cours Linux

Habib SMEI

22

Prsentation du systme dexploitation LINUX


Commandes de base : Quelques commandes date, cal date, cal Consulter la date du jour : date ; Pour obtenir la date et l'heure en anglais [root@localhost/root] #date Thu Sep 25 15:43:46 WET 2003 La date standard est en anglais : jour, mois, n du jour, heure, zone horaire et anne. La commande Calendrier (cal) : Cette commande permet de visualiser le calendrier d'une anne ou d'un mois en anglais. syntaxe : cal [no-jour no-mois] anne Exemple : [root@localhost/root] #cal 1 96 January 96 S M Tu W Th F S 12 3456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 On peut en principe visualiser les calendriers de l'an 1 jusqu' l'an 9999. Vous pouvez ainsi connatre le jour de la semaine de votre naissance !

Cours Linux

Habib SMEI

23

Prsentation du systme dexploitation LINUX


Commandes de base : Quelques commandes write, mail : Envoi dun message directement un autre utilisateur connect. [root@localhost/root] #write user1 Est-ce qu'on peut utiliser l'imprimante ? <Control-D> <Control-D> reprsente pour linux le caractre de fin de fichier. Envoi de mail : syntaxe : mailx utilisateur Exemple : [root@localhost/root] #mail user2 Subject : Impression La configuration de l'imprimante est finie vous pourrez l'utiliser demain. Lecture de sa bote aux lettres : mail (sans paramtre) Si aucun message nest prsent dans la bote aux lettres il affiche : No mail for user1 Sinon il affiche la liste des messages (uniquement les sujets), chaque message ayant un numro il suffit de taper ce numro pour lire son contenu. [root@localhost/root] #mailx Mail version SMI 4.0 Thu Jul 23 13:52:20 PDT 2003 Type ? For help. "/usr/spool/mail/user1": 2 messages 2 new. Pour lire le premier message : & 1 Pour rpondre directement un message : & r Pour supprimer le message courant : d Pour quitter le programme mail : q Pour quitter sans toucher aux messages : x
Cours Linux Habib SMEI

24

Prsentation du systme dexploitation LINUX

Commandes de base : Quelques commandes Commandes de Base:


ls : lister le contenu dun rpertoire rm : supprimer un fichier cp : copier un fichier ln : crer un lien sur un fichier man : afficher laide dune commande mv : dplacer un fichier cd : changer de rpertoire mkdir : crer un rpertoire rmdir : supprimer un rpertoire pwd : afficher le rpertoire courant cat : afficher le contenu dun fichier file : afficher le type de contenu du fichier locate : localiser un fichier sur le disque
Habib SMEI

Cours Linux

25

Installation de LINUX
Etapes :
Cration d'une disquette d'installation Dmarrage du programme d'installation de Linux Partitionnement du(es) disque(s) dur(s) Cration de l'espace de swap Choix des partitions formater Choix des paquetages installer Configuration du matriel Dmarrage avec LILO / GRUB Tlchargement et installation des mises jour de Red Hat

Cours Linux

Habib SMEI

26

Installation de LINUX
1. Cration d'une disquette d'installation :
Vous devez crer une disquette dinstallation si vous pouvez pas dmarrer linstallation partir du CD, pour ce faire :

vous devez copier le fichier ``boot.img'' sur une disquette


N.B: Le fichier ``boot.img'' se trouve dans le rpertoire /images du CD-ROM ou peut tre tlcharg sur le site FTP: ftp://ftp.redhat.com/ dans le rpertoire suivant : /pub/redhat/redhat-9/i386/images (plate-forme Intel.). Sous DOS: en supposant que votre CD-ROM est accessible en tant que lecteur D:, vous pouvez taper: d: cd \images..\dosutils\rawrite Pour le fichier source ("source file"), entrez ``boot.img''. Pour le fichier destination ("destination file"), entrez ``a:'. (Le programme ``rawrite'' va ensuite copier le fichier ``boot.img'' sur la disquette. Sous Linux/Unix : en supposant que le fichier ``boot.img'' se trouve dans le rpertoire courant (vous devrez peut-tre monter le CD-ROM sous /mnt/cdrom et trouver le fichier dans /mnt/cdrom/images), vous tapez:

dd if=boot.img of=/dev/fd0 L'utilitaire ''dd'' va copier, en tant que fichier source (if), le fichier ``boot.img'' sur le fichier de destination de (of) / dev/fd0 (en supposant que votre lecteur de disquette est localis en /dev/fd0).

Cours Linux

Habib SMEI

27

Installation de LINUX
2. Dmarrage du programme d'installation de Linux
Pour commencer installer votre nouveau systme Red Hat, soit dmarrez automatiquement le CD-ROM d'installation (insrez le CD et rebootez), soit insrez la disquette dans le lecteur A: et redmarrez (ou mettez en marche). Aprs quelques instants, l'cran du programme d'installation Red Hat doit apparatre.

3. Partitionnement du disque dur

Disques PC = 3 types de partitions

Partitions primaires
Subdivision primaire du disque Au maximum 4, numrotes de 1 4

Partition tendue (une seule)


Partition primaire de type container Prend la place de lune des 4 partitions primaires


Cours Linux

Partitions logiques
Subdivision secondaire : possible uniquement dans une partition tendue Numrotes partir de 5
Habib SMEI

28

Installation de LINUX

Exemple de dcoupage en partitions


1 2 5 Disque dur Partitions primaire Partition tendue Partitions Logiques 6 3

Cours Linux

Habib SMEI

29

Installation de linux Plan de Dcoupage en Partitions : [impratif] Une partition pour la racine : Tout ce quil faut pour booter en mode single (/) Idalement prvue pour le minimum, c d de 30 100 Mo [recommand] Une partition pour le swap taille : au moins autant que la RAM, au max 2 fois la RAM (inutile den mettre plus) [recommand] Une partition /usr taille : minimum 400 Mo, maximum (actuellement) 1.5 Go [optionnel] Des partitions spare pour /var, /usr/local et /opt [optionnel (linux)] Une partition /boot spare [recommand] Une partition /home avec ce qui reste

Cours Linux

Habib SMEI

30

Installation de LINUX Outils de Dcoupage en Partitions Outils linux : fdisk : historiquement le premier. Pas trs convivial, plutt rserv aux utilisateurs avertis (habitus)
cfdisk : outil plus rcent, plus convivial. Interface similaire au fdisk de msdos. DiskDrake (mandrake), DiskDruide (RedHat) : outils de distribution conviviaux mais propritaires

Outils des autres systmes (windows, ) fdisk : loutil rudimentaire du monde MSDOS FIPS, Partition Magic : des outils avancs, qui permettent gnralement le dcoupage de partitions (FAT) existantes

Cours Linux

Habib SMEI

31

Installation de LINUX

Cration des Partitions


Mthode : 1. Dtruire les ventuelles partitions inutiles 2. Crer les partitions linux 1. Racine et swap 2. Autres partitions 3. Enregistrer (crire la nouvelle table de partitions) 4. Rebooter Si cohabition avec systme Windows (par exemple) : Supprimer et retailler les partitions partir du systme Windows, rebooter, PUIS terminer depuis linux Installer partition linux la suite des partitions Windows

Cours Linux

Habib SMEI

32

Installation de LINUX

Cration de la partition racine Linux :


De prfrence une partition primaire De prfrence APRES les partitions aliens Type = Linux FS (0x81) Note: si LILO sur cette partition, activer le drapeau bootable

Cration de la partition de swap Linux :


Partition primaire ou secondaire Si choix possible, prfrer : le disque le plus rapide de la machine. le disque le moins sollicit (en fonctionnement linux) Type = Linux swap (0x82)

Cours Linux

Habib SMEI

33

Installation de LINUX Dfinition dune Table de Montage (/etc/fstab) La table de montage liste lensemble des partitions ou priphriques qui doivent ou peuvent tre monts mount a : tout (re)monter Format = 1 ligne par entre : device dir type options fs-freq fs-passno device : /dev/xxx ou none ou label de partition dir : point de montage type : ext2, minix, iso966, vfat, proc, auto options : ro, rw, user, uid=x, gid=y, mode=z, defaults fs-freq : sauvegarder ? (0 ou 1) fs-passno : ordre de vrification par fsck

Cours Linux

Habib SMEI

34

Installation de LINUX Exemple de /etc/fstab

/dev/sda1 / ext2 defaults 1 1 /dev/sda2 swap swap defaults 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 /dev/fd0 /floppyvfat defaults,noauto,user /dev/cdrom /cdrom iso9660 user,ro,noauto /dev/sda3 /home ext2 defaults 1 2 server:/net/usr /usr nfs defaults,secure,ro 0

Cours Linux

Habib SMEI

35

Installation de LINUX

Installation de LILO
Fichier de configuration : /etc/lilo.conf Section commune: boot=<device> : install sur MBR ou boot secondaire delay=<n> : dlai pour choisir (en 10e de s) vga=<mode> : mode affichage vido Sections linux image=<fichier_noyau> : fichier contenant le noyau label=<etiquette> : nom du choix dans le menu LILO root=<fichier_dev> : partition racine read-only : dabord monter la racine en mode read-only Section autres OS other=<fichier dev> : partition alien Label=<etiquette> : nom du choix dans le menu LILO
Habib SMEI

Cours Linux

36

Installation de LINUX

Exemple de /etc/lilo.conf
# section commune Boot=/dev/hda Delay=40 Vga=normal # section linux Image=/boot/vmlinuz label=linux root=/dev/hda3 read-only Image=/boot/vmlinuz-2 label=linux2 root=/dev/hda3 # section autres OS Other=/dev/hda1 label=NT

Validation : lancer la commande

liloc
Habib SMEI

Cours Linux

37

Installation de LINUX Installation de Paquetages Principe du paquetage : Ensemble de fichiers + scripts [ + rgles de dpendance ] RedHat, Mandrake : RPM (RedHat Package Manager) Commandes : rpm, rpmdrake, Debian : fichiers .deb Commandes : dselect (menu), installpkg, ar (!), Slackware : Fichiers .tgz = .tar.gz Pas de rgles de dpendance ! Commandes : setup (menu), pkginstall, tar (!),

Cours Linux

Habib SMEI

38

Installation de LINUX Droulement Typique dune Installation par Distribution 3. Boot noyau dinstall 4. Choix prliminaires : Langue, type de clavier, 5. Partitionnement 6. Cration du/des SF + montage 7. Choix des paquetages installer 8. Prconfiguration 9. Dpaquetage/installation 10. Postconfiguration

Cours Linux

Habib SMEI

39

Le systme de fichiers sous LINUX Les types de fichiers : Il existe trois types de fichiers :
Un fichier normal : contient des donnes, il peut tre lisible (contient des informations comprhensibles crites en claire, exemple fichier texte) ou illisible (exemple : fichier excutable). Un rpertoire peut tre considr comme un classeur, dans lequel on met des fichiers, c'est un lment d'organisation de l'espace du disque dur. Un fichier spcial : correspond un priphrique (On doit passer par les fichiers spciaux si on veut dialoguer avec un priphrique matriel). Les fichiers spciaux en mode caractre comme les terminaux pour lesquels les entres-sorties sont ralises caractre par caractre. Les fichiers spciaux en mode bloc comme des disques o les entressorties sont ralises par bloc (la taille des blocs tant multiple de 512 caractres).

Cours Linux

Habib SMEI

40

Le systme de fichiers sous LINUX


Les inodes : Chaque systme de fichiers tient jour une table des descripteurs des fichiers qu'utilise le systme d'exploitation pour accder aux fichiers. La table se compose pour chaque fichier, d'une entre appele inode, repre par un index appel le numro d'inode qu'on pourrait traduire en franais par "inoeud". Un inode comprend un certain nombre dinformations dordre gnral :
Le type du fichier (ordinaire, rpertoire, spcial), Sa taille, Lidentification de son propritaire: Le couple UID-GID qui donne le numro du propritaire et le numro de son groupe, Trois dates : date de cration, date de dernire modification et date de dernire consultation, Un compteur de rfrence sur li-noeud (lien), La liste des blocs contenant linformation sur disque.

Sous Linux, un fichier quel que soit son type est identifi par son numro d'inode.

Ainsi derrire la faade du shell, un rpertoire n'est qu'un fichier, identifi aussi par un inode, contenant une liste d'inode reprsentant chacun un fichier. Un inode peut tre examin par la commande ls mon-fichier . Pour connatre le numro d'inode d'un fichier : ls -i mon-fichier
Cours Linux Habib SMEI

41

Le systme de fichiers sous LINUX


Les liens : utiliss pour faire apparatre un mme fichier dans plusieurs rpertoires, ou sous des noms diffrents. Ils vitent les duplications et assurent la cohrence des mises jour. On distingue deux sortes de liens : les liens durs (physiques) : Associent deux ou plusieurs fichiers un mme espace sur le disque, les deux fichiers restant indpendants. La commande ln (pour link) sert crer des liens : ln nomdefichier nomdelien. Par exemple : ln linux.txt /home/user1/linux-lien-dur.txt Le fichier linux-test-lien-dur est cr dans le rpertoire /home/user1. (les 2 fichiers ont la mme taille). Au niveau gestion ils sont indpendants, tout en partageant le mme espace disque et donc le mme inode. Toute modification de l'un, modifie l'autre ! Mais la suppression de l'un, casse le lien, mais ne supprime pas physiquement l'autre. La commande ls -l indique le nombre de liens physiques que possde un fichier. Les liens physiques ont la restriction suivante : il ne peut pas y avoir de lien physique entre les rpertoires. Les liens symboliques : crs pour pouvoir accder aux mmes fichiers diffrents endroits de l'arborescence. (notion de raccourci sous Windows). La commande ln -s sert crer des liens symboliques: ln -s nomdefichier nomdelien. A la diffrence du lien physique, le lien symbolique stocke le nom du fichier auquel il se rapporte. Si le fichier de rfrence est dplac ou renomm, le lien symbolique indiquera "nowhere", nulle part. La suppression du fichier source entranera un changement de comportement du fichier lien qui sera considr comme "cass" ("broken"). Les liens symboliques peuvent s'tendre travers diffrents systmes de fichiers et se rapporter des rpertoires, deux choses que les liens physiques ne peuvent pas faire. La diffrence entre un lien hard et symbolique se trouve au niveau de l'inode, un lien hard n'a pas d'inode propre, il a l'inode du fichier vers lequel il pointe. Par contre un lien symbolique possde sa propre inode. A noter que vous ne pouvez pas crer de liens hards entre deux partitions de disque diffrente, vous n'avez pas cette contrainte avec les liens symboliques.
Cours Linux Habib SMEI

42

Cours Linux

Les commandes de gestion des rpertoires : mkdir nom-de-rpertoire Cration d'un rpertoire, rmdir nom-de-rpertoire Suppression d'un rpertoire vide, rm -r nom-de-rpertoire efface un rpertoire et son contenu, mv rpertoire rpertoire-d'accueil dplacement d'un rpertoire, mv rpertoire nouveau-nom Changement de nom d'un rpertoire Commandes de gestion des fichiers : touch mon-fichier cration d'un fichier vide, more mon-fichier visualisation d'un fichier page par page, less mon-fichier visualisation d'un fichier texte page par page, cat mon-fichier visualisation d'un fichier texte, rm mon-fichier suppression d'un fichier, mv mon-fichier rpertoire d'accueil dplacement d'un fichier, mv mon-fichier nouveau-nom changement de nom d'un fichier, cp nom-fichier rpertoire-d'accueil/autre-nom copie de fichier, head mon-fichier visualisation des premires lignes d'un fichier (par dfaut 10), tail mon-fichier visualisation des dernires lignes d'un fichier (par dfaut 10), file mon-fichier pour savoir si on a un fichier binaire (excutable) ou un fichier texte. Slocate [caractristique] trouve tous les fichiers correspondant une caractristique donne, find [chemin][options][expression] localise tous les fichiers correspondant un critre de fichier ou nom particulier. Cherche automatiquement dans les sous rpertoires cmp [<option>] <fichierl> <fichier2> compare les deux fichiers et se termine ds quune diffrence est dtecte pour afficher le numro du caractre et le numro de la ligne o la diffrence est apparue. wc [<option>] [<fichier>] compte le nombre de lignes, de mots et de caractres contenus dans un fichier
Habib SMEI

Le systme de fichiers sous LINUX

43

Le systme de fichiers sous linux


Rle et Caractristiques : Ranger, organiser et retrouver de l'information : Catgorisation (types de fichiers), Organisation
(hirarchique), Nommage (hirarchique), Rgulation d'usage

Accder des volumes d'information amovibles : Montage (hirarchie unique de nommage) Accder des implmentations diffrentes : travers une interface homogne Linux ne travaille pas directement avec les systmes de fichiers physiques : il interpose systmatiquement un systme de fichiers intermdiaire, nomm Virtual File System ( VFS en abrg), qui permet aux applications d'accder diffrents systmes de fichiers de manire indpendante de leur nature et de leur structure interne. Rle : : Se contente de transfrer les requtes des applications vers les systmes de fichiers rels. Avantages : Linux est capable de grer plusieurs systmes de fichiers rels. La seule condition est qu'ils doivent tous fournir les services de base exigs par le systme de fichiers virtuel ; les applications peuvent utiliser plusieurs de ces systmes de fichiers rels de manire uniforme, puisqu'elles n'utilisent que le systme de fichiers virtuel. Cela simplifie leur programmation, et permet d'viter autant de bogues potentiels ; chaque systme de fichiers rel tant indpendant des autres, il ne perturbe pas leur fonctionnement. En particulier, un systme de fichiers corrompu ne corrompt pas les autres.

Cours Linux

Habib SMEI

44

Le systme de fichiers sous LINUX


Avec cette architecture, un grand nombre de systmes de fichiers ont t dvelopps pour Linux. Parmi ces systmes de fichiers, (les plus connus) : EXT2, qui est le systme de fichiers natif de Linux (accs aux fichiers sont rapides ; fragmentation des fichiers est quasiment inexistante de lordre de 1% ; fiabilit, qui est gre grce un stockage redondant des principales structures de donnes internes. Ainsi, si une erreur apparat dans le systme de fichiers, les parties dfectueuses peuvent tre reconstitues partir des informations sauvegardes. Cette rparation est ralise automatiquement chaque redmarrage de la machine si ncessaire). EXT3, qui est une volution du systme de fichiers EXT2 capable de prendre en charge galement les mcanismes de journalisation (EXT3 est donc plus tolrant aux pannes matriel et aux coupures de courant que EXT2) ; ReiserFS, qui supprime la notion de bloc disque et qui est journalis (c'est--dire qu'il supporte les arrts intempestifs du systme suite une panne de courant ou tout autre vnement contre lequel le systme ne peut rien faire) ; FAT, FAT32 et FAT32X (utiliss par les systmes DOS et Windows) ; NTFS (utilis par Windows NT, Windows 2000 et XP) ; ISO9660, qui est utilis par tous les CD-ROM. Les extensions permettant de grer les noms longs sont galement gres. ; NFS (utilis pour distribuer sur un rseau un systme de fichiers).
Cours Linux Habib SMEI

45

Le systme de fichiers sous linux


LArchitecture Modulaire VFS (Virtual File System) Processus Noyau
Interface appels-systme

Processus

Processus

Systme virtuel de fichier (vfs)

Cache de noms

ext3

ext2

minix
Cache de buffers

vfat (dos)

nfs

/swap

/proc

...

Gestionnaires de priphriques

Cours Linux

Habib SMEI

46

Le systme de fichiers sous LINUX Schma Typique dOrganisation des Donnes dune Partition linux
L'organisation exacte dpend du type de systme de fichiers L'espace disque est structur en blocs de taille fixe (multiple de la taille d'un secteur)

Bloc de Super-block boot

Informations d'allocation

I-liste

Blocs de donnes

Optionnel Liste de i-nuds : descripteurs Information sur de fichiers physiques le systme de fichiers Blocs contenant les donnes lui-mme (structure, dates (rpertoires, fichiers ordinaires) de mise jour) Maps d'allocation des i-nuds et des blocs
Cours Linux Habib SMEI

47

Le systme de fichiers sous linux

Schma dorganisation dune partition ext2


Systme de fichiers (partition)
Boot Groupe de blocs 1 Groupe de blocs 2

...

Groupe de blocs N-1

Super- Descripteurs Bitmap bloc des blocs blocs

Bitmap i-noeuds

Table des i-noeuds

Blocs de donnes

Copie du superbloc

Adresses des blocs cruciaux (bitmaps, i-liste)

Cours Linux

Habib SMEI

48

Le systme de fichiers sous LINUX

Le Systme de Fichiers Ext2fs

Structure d'un i-nud sur disque


Mode Proprio Taille en octets Dates (4) Groupe Liens Taille en blocs de 512o Flags Adressage des blocs de donnes (EXT2_N_BLOCKS = 15) ... Blocs directs Blocs indirects

...

Vers blocs triplement indirects


Habib SMEI

Cours Linux

49

Le systme de fichiers sous linux

Le Systme de Fichiers FAT (MSDOS/Windows)

Structure d'une partition ms/dos


Bloc de boot FAT FAT duplique (optionnelle) Blocs de donnes

File Allocation Table (analogue la table des i-nuds) Une entre dans la fat par bloc de donne : taille de l'entre 16 ou 32 bits Bloc de boot secondaire
Cours Linux Habib SMEI

Bloc de taille variant de 1 8 secteurs en fonction de la taille totale de la partition

50

Le systme de fichiers sous LINUX

Le Systme de Fichiers FAT (2)

Structure de la FAT (principe)


0 1 2 3 4 2 5 9 6 7 8 9 12 10 11 12 13 14 15

Taille EOF 13

8 FREE 4

3 FREE EOF EOFFREEBAD ...

Fichier A : 6 Fichier B : 5 Fichier C : 10


Cours Linux

8 9 3

4 12 13

2 Numro du bloc suivant du fichier Dernier bloc du fichier Bloc libre


Habib SMEI

Mauvais bloc (inutilisable)

51

Le systme de fichiers sous linux


/ /bin /boot /dev /etc /home /root /usr /var /proc Racine du systme, contient les rpertoires principaux Commandes essentielles communes tous les utilisateurs Fichiers de dmarrage du systme, contient le noyau Points dentre des priphriques Fichiers de configuration Contient les rpertoires personnels des diffrents utilisateurs Rpertoire personnel de ladministrateur Hirarchie secondaire, applications, bibliothques partages Fichiers trace du systme (Logs) Systme de fichier virtuel, informations en temps rel

Cours Linux

Habib SMEI

52

Le systme de fichiers sous linux


Le BOOT : Etapes du dmarrage du systme depuis la mise sous tension jusqu ltat oprationnel du systme Chargements successifs de plusieurs programmes : Charger un gros programme comme le noyau est trop compliqu pour se faire en une seule fois Trop gros pour loger dans une mmoire morte Le programme de chargement du noyau est lui-mme un programme quil faut charger avec un programme chargeur ! La faon de charger le noyau doit tre paramtrable : Disquette, CD ou disque dur seul Disquette ou CD puis disque dur Rseau

Cours Linux

Habib SMEI

53

Le systme de fichiers sous LINUX


La Squence de Boot (PC/Linux) : POST (Power On Self Test) 1. Chaque processeur sinitialise self-test Multi-pro : ventuellement lection dun CPU leader CPU leader excute instruction en 0xfffffff0 Intel/PC : instruction en 0xfffffff0 = saut vers dbut du programme BIOS (Basic Input / Output System, implant sur la carte mre) BIOS : POST (Power On Self Test) BIOS : Choix dun priphrique de Boot Le BIOS charge le MBR (Master Boot Record) du priphrique de boot 1er secteur (512 octets) du priphrique Le BIOS inspecte le MBR: Vrification (nombre magique, table partitions) Recherche le Secteur de Boot NB: Deux scnarios selon que le MBR est install ou non par Linux Attention la cohabitation avec dautres OS ! Le BIOS charge le secteur de BOOT Selon scnario, il peut sagir du (dbut du) programme chargeur de Linux (LILO/GRUB) ou du chargeur dun autre OS
Habib SMEI

2. 3. 4. 5. 6. 7.

8.

Cours Linux

54

Amorage et Arrt du Systme

Les Chargeurs de Boot


Servent dmarrer un systme dexploitation Permettent le choix au dmarrage Chargeurs:
Windows NT: NTLoader OS/2: Boot Manager OS/2 Linux: LILO (Linux Loader) ou GRUB

Sinstallent le plus souvent dans le MBR du disque

Cours Linux

Habib SMEI

55

Amorage et Arrt du Systme


Squence de Boot de Linux Dmarrage Hardware de la machine Chargement du BIOS: initialisation des priphriques Lecture du MBR Lancement de LILO Choix du systme Chargement du noyau Chargement des pilotes de priphriques Lancement du fichier init Lecture de /etc/inittab Lancement du script /etc/rc.d/rc.sysinit Lancement des services (dmons) contenus dans le rpertoire /etc/rc.d/rc<n> Lancement du script /etc/rc.d.rc.local

Cours Linux

Habib SMEI

56

Amorage et Arrt du Systme


Mise en place dun double-boot: Windows 9X/Me/2000: LILO sur le MBR (en gnral, configuration automatique linstallation avec les nouvelles distributions) Windows NT4: LILO sur la partition de dmarrage (/boot ou /). ATTENTION: penser activer cette partition de dmarrage Configuration ultrieure par la modification du fichier /etc/lilo.conf suivi de la commande lilo <n> est le niveau dexcution (runlevel) Sert dfinir ltat du systme Sert dfinir quels services seront lancs 7 tats prdfinis (possibilit den dfinir plus): 0: hors service 1: mono-utilisateur 2: multi-utilisateur sans rseau 3: multi-utilisateur avec rseau 4: disponible 5: login graphique (X-Window doit tre configur) 6: redmarrage Dfini dans le fichier /etc/inittab Pour changer de runlevel: init <n>

Cours Linux

Habib SMEI

57

Amorage et Arrt du Systme


<n> est le niveau dexcution (runlevel) Sert dfinir ltat du systme et dfinir quels services seront lancs 7 tats prdfinis (possibilit den dfinir plus): 0: hors service 1: mono-utilisateur 2: multi-utilisateur sans rseau 3: multi-utilisateur avec rseau 4: disponible 5: login graphique (X-Window doit tre configur) 6: redmarrage Dfini dans le fichier /etc/inittab Pour changer de runlevel: init <n> Arrt du Systme : 3 Mthodes shutdown h now halt init 0 (dconseill) Variantes: shutdown h 10 : arrt dans 10 minutes

shutdown h 18:30 : arrt 18h30


Redmarrage: shutdown r now <Ctrl><Alt><Del>: variable et dfini dans /etc/inittab (en gnral, redmarrage)
Habib SMEI

Cours Linux

58

Les Processus
Processus: Programme oprant de manire indpendante et possdant son ensemble de ressources Les ressources matrielles sont gres par un processus: le kernel Un fork est une sparation en deux dun processus PID: numro de processus unique Affichage des processus en cours: ps : affiche les processus utilisateurs ps aux : affiche tous les processus dun systme pstree : affiche les processus sous forme darborescence top : outil semi-graphique prsentant un grand nombre dinformations en temps rel sur les processus Gestion des Signaux Un processus peut mettre et recevoir des signaux POSIX 64 signaux diffrents (liste complte par kill l ) Les 3 plus importants: SIGHUP valeur 1 Fin du processus de contrle (terminal par exemple) SIGINT valeur 2 Interruption du processus SIGKILL valeur 9 Interruption brutale du processus mission dun signal par : kill - <n> <processus Ex: kill 9 netscape
Habib SMEI

Cours Linux

59

Les Processus : Utilisation Avance du Shell bash Excution de commandes Excution squentielle : commande1;commande2;commande3 Excution en tche de fond : commande1 & Fichiers (Scripts) de configuration excuts aprs le login Lecture et excution de /etc/profile Lecture et excution de .bash_profile dans le rpertoire personnel Lecture et excution de .bashrc dans le rpertoire personnel Lecture et excution de /etc/bashrc Facilits de saisie des commandes Historique des commandes: flches haut et bas Copie dans un terminal : slection dun texte, copie par clic-droit Loprateur ~ renvoie au rpertoire personnel La commande cd renvoie au rpertoire prcdent Compltion des commandes : touche TAB

Cours Linux

Habib SMEI

60

: Utilisation Avance du Shell bash Communications inter-processus (pipe) commande1 | commande2 La sortie de commande1 est envoye sur lentre de commande2 Exemple: cat /etc/passwd | less La sortie de laffichage est envoye vers le paginateur less

Les Processus

Redirections dentres-sorties
En gnral, trois descripteurs pour le shell (sur 10 possibles):
0: entre standard 1: sortie standard 2: sortie derreur

Les diffrentes redirections:


commande >fichier : redirection de sortie vers fichier avec crasement commande >>fichier : idem mais ajout des donnes la fin commande <fichier : la lecture du descripteur 0 se fera sur ce fichier commande <<mot : lecture de lentre standard jusqu la premire occurrence de mot

Redirections dentres-sorties
Exemples: cat /etc/passwd >fichier cat /etc/passwd >fichier; cat /etc/shadow >>fichier Redirection des erreurs: commande 2>/dev/null commande 2>fichier

Cours Linux

Habib SMEI

61

Les Processus : Utilisation Avance du Shell bash


Excutions conditionnelles commande1 && commande2 : commande2 nest excute que si commande1 na pas renvoy derreur commande1 || commande2 : commande2 nest excute que si commande1 a renvoy une erreur Les Variables denvironnement Le shell permet le stockage de variables denvironnement (en majuscules): Dfinies pour lensemble du systme Dfinition par VARIABLE=valeur export VARIABLE Exemples: HOME, PATH, SHELL, USER On accde leur valeur en les faisant prcder dun $ Pour visualiser toutes les variables denvironnement: env

Cours Linux

Habib SMEI

62

Les Processus : Utilisation Avance du Shell bash


Les Expressions rationnelles Servent de joker dans les noms de fichiers: * : nimporte quelle chane de caractres ? : nimporte quel caractre [a-z] : correspond {a, b, c,, z} [A-Z] : correspond {A, B, C,, Z} [0-9] : correspond {0, 1, 2,, 9} Exemples: *[0-9]* : toute chane qui contient au moins un chiffre [c-fAX-Z] : correspond {c, d, e, f, A, X, Y, Z}

La Substitution de commandes :
Permet de substituer au texte dune commande le rsultat de son excution Utilisation de loprateur `` Exemple : echo Il y a `ls | wc l` fichiers dans `pwd` affichera le nombre de fichiers dans le rpertoire courant Les Scripts Shell Un script est une suite de commandes crites dans un fichier Commence toujours par "#!/bin/bash" (dans le cas du shell bash) Exemple: "#!/bin/bash commande1 commande2"
Habib SMEI

Cours Linux

63

Les Processus : Utilisation Avance du Shell bash Les Scripts Shell :


Processus de cration dun script :
Il est possible de rassembler un ensemble de commandes dans un fichier pour les stocker. Au fichier cr, on doit ajouter le droit dexcution pour le propritaire. Le nom de ce fichier sera considr comme une nouvelle commande. Cration dans un diteur de texte. Sauvegarde dans un fichier (extension .sh en gnral). La premire fois, positionner les droits du fichier en excution: chmod +x fichier.sh. Excution du script: ./fichier.sh Remarque: on met un ./ devant le nom du fichier pour indiquer au systme que le fichier excuter se trouve dans le rpertoire courant ( . ). En gnral, ce rpertoire nest pas dans le PATH.

Les Scripts Shell


Les Tests
Existent sous deux formes : commande test ou entre crochets Tests possibles sur les fichiers:
[ -r fichier ] : vrai si fichier est lisible [ -w fichier ] : vrai si lcriture sur fichier est possible [ -x fichier ] : vrai si fichier est excutable [ -f fichier ] : vrai si fichier est un fichier ordinaire [ -d fichier ] : vrai si fichier est un rpertoire [ -S fichier ] : vrai si fichier est non vide

Cours Linux

Habib SMEI

64

Les Processus : Utilisation Avance du Shell bash


Les Scripts Shell :

Les Tests
Tests binaires: [ chaine1 = chaine2 ] : vrai si chaine1=chaine2 [ chaine1 != chaine2 ] : vrai si chaine1<>chaine2 [ n1 eq n2 ] : vrai si n1=n2 [ n1 ne n2 ] : vrai si n1<>n2 [ n1 gt n2 ] : vrai si n1>n2 [ n1 ge n2 ] : vrai si n1n2 [ n1 lt n2 ] : vrai si n1<n2 [ n1 le n2 ] : vrai si n1n2

Les Paramtres :

./fichier.sh param1 param2


Les paramtres sont accessibles dans le script par les variables spciales suivantes:
$0 : nom du script appel $1 : valeur du premier paramtre $n : valeur du nme paramtre $# : nombre de paramtres $* : ensemble des paramtres

Dcalage de paramtres: shift

Cours Linux

Habib SMEI

65

Les Processus : Utilisation Avance du Shell bash

Les Paramtres

Cours Linux

Habib SMEI

66

Utilisation Avance du Shell bash L'interprteur de commandes : L'interprteur de commandes assure les services suivants : La gnration des noms de fichiers La redirection des entres-sorties Excution en avant ou arrire plan La gestion des variables La substitution des commandes Les fichiers de commandes (scripts)

Cours Linux

Habib SMEI

67

Utilisation Avance du Shell bash


Une manire de vrifier si une commande a t bien excute est dutiliser le code de sortie ? (dit aussi code de retour). En effet, si lexcution de la commande sest bien droule, le code de sortie prend la valeur 0 (zro = vrai) sinon le code de sortie prend une valeur 0 (=faux). Exemple: $ date $ echo $? 0 $ date -r # commande errone $echo $? 8 (problme)

Structures de contrle disponibles :


2. if liste1 ; then commandes1 else if liste ; then else fi La structure de contrle if permet de dcider de lexcution dune commande en fonction de la ralisation dune condition. if <liste_de_commandes1> then <liste_de_commandes2> [ else <liste_de_commandes3> ] fi La dcision se fait selon la valeur de retour de la dernire commande de la liste de Commande1. Sil sagit de 0, la liste de commande2 sera excute Si la valeur de retour est diffrente de 0, liste de commande3 sera excute. La partie else est facultative. Le mot cl qui exprime la fin de la structure conditionnelle est fi.
Cours Linux Habib SMEI

68

Utilisation Avance du Shell bash


Remarques: Si les commandes de if sont spares par ; , seule la dernire commande sera teste. Si les commandes de if sont spares par loprateur && , alors elles sont toutes testes. Si les commandes de if sont spares par loprateur || , alors il suffit que lune dentre elles soit vraie pour que les commandes qui suivent then soient excutes. Il est possible davoir des structures if imbriques. Selon la syntaxe suivante : if <liste de commandes1> then <liste de commandes2> else if <liste de commandes3> then <liste de commandes4> else <liste de commandes5> fi fi que lon peut crire aussi sous la forme suivante : if <liste de commandes1> then <liste de commandes2> elif <liste de commandes3> then <liste de commandes4> else <liste de commandes5> fi

Cours Linux

Habib SMEI

69

Utilisation Avance du Shell bash

Exercice : Ecrire un programme shell qui reoit deux paramtres noms de fichiers. Il permet de tester si ces deux fichiers sont lis ou non. Solution: if [ $# -ne 2 ] then echo erreur de paramtre Exit 1 fi If test $1 -ef $2 Then Echo les deux fichiers sont lies Else Echo les deux fichiers ne sont pas lies
Cours Linux Habib SMEI

70

Utilisation Avance du Shell bash


La structure case in esac La structure case-in-esac permet deffectuer un traitement spcifique selon la valeur de la variable de test, la syntaxe est : case $<variale> in <chaine1> ) <commandes> ;; <chaine2> ) <commandes>;; . . <chaineN>) <commandes>;; esac

Exemple 1 : case $ # in 0) echo Erreur pas de paramtres transmis exit 1 ;; 1) echo un seul paramtres transmi ;; 2) echo deux paramtres transmis ;; *) echo erreur trop de paramtres exit l ;; esac Exemple 2 : case $rponse in [yYoO] ) echo 0K! ce sera fait ;; [n N] ) echo Aucun traitement ;; *) echo erreur saisie invalide ;; esac

Cours Linux

Habib SMEI

71

Utilisation Avance du Shell bash


Les boucles La construction for-in-do-done La construction for permet deffectuer un traitement rptitif pour les diffrentes valeurs dune variable. Il y aura autant de passage que de valeurs. for <variable> in <val1> <val2> . . . <valN> do <commande1> <commande2> . . <commande P> done

Exemple1: for fichier in f1 f2 f3 do echo $fichier est dans la liste done

Exemple2: for fichier in *.c do cat $fichier >> f1 done

Exemple3 : for fichier in `ls` do if [ -f $fichier ] then echo $fichier fi done

Cours Linux

Habib SMEI

72

Utilisation Avance du Shell bash


La boucle while La seconde forme de boucle est la boucle while . Elle consiste piloter lexcution dune commande en fonction de la valeur de retour dune autre commande. while <liste de commandes1> do <liste de commandes2> done Tant que la dernire commande de liste de commandes1 est vraie (retourne la valeur 0), la liste de commandes2 est excute. Sinon, la boucle est interrompue. Exemple: $ cat > qui while true do who sleep 300 done ctrl d $ sh qui : permet dafficher la liste des utilisateurs connects tous les 5 minutes

Cours Linux

Habib SMEI

73

Utilisation Avance du Shell bash


La boucle until La boucle until, ressemble la boucle while : until <suite de commandes1> do <liste de commandes2> done Cependant, la boucle until fonctionne dune faon inverse celle de while la liste de commandes2 sera rpte jusqu ce que la dernire commande de liste de commande1 retournent la valeur 0. La squence est rpte tant que la condition est fausse. Exemple: Affichage dun compte rebours $ cat > compte compteur = 10 until test $compteur -le 0 do echo $compteur sleep 1 compteur = `expr $compteur 1` done
Cours Linux Habib SMEI

74

Utilisation Avance du Shell bash


Sortie dune boucle La commande break permet de quitter la boucle mais lexcution du script sera reprise avec les commandes qui suivent le done . Cette commande peut tre utilise avec un paramtre indiquant le nombre de boucles sauter (gal 1 par dfaut). Mais ceci diminue de la clart et de la lisibilit du script. break [<n>] o n est le nombre de niveaux de boucles imbriques sauter. Exemple : Ecrire un script somme qui calcule la somme de valeurs numriques saisies o la fin de saisie est exprime par la valeur 99. Le script permettra dafficher la somme ainsi calcule et dindiquer le nombre de valeurs saisies. $ cat > somme compteur=0 somme=0 while true do echo donner la $compteur valeur : read valeur if test $valeur -eq 99 then break else compteur =`expr $compteur +1` somme=`expr $somme + $compteur` fi echo la valeur darrt 99 n\est pas encore saisie done echo la somme des $compteur valeurs saisie est $somme ctrl d Cours Linux Habib SMEI

75

Utilisation Avance du Shell bash La commande continue Continue [<n>] La commande continue exprime quun nouveau passage dans la boucle est entrepris. Contrairement la commande break, la commande continue permet de joindre la fin de boucle sans la quitter forcment. Exemple $ cat > copie_x cpt=0 for fichier do if [ -x $fichier -a -f $fichier ] then cp $fichier ./executable echo un fichier excutable est copi : $fichier else continue fi cpt=`expr $cpt + 1` done echo total = $cpt
Cours Linux Habib SMEI

76

Utilisation Avance du Shell bash


La commande : Cest la commande vide du shell. Son code de retour est zro et peut donc tre utilise comme constante vrai. (notamment pour le cas des boucles infinies). Exemple: while : do echo boucle infinie Done La rcursivit Une procdure est dite rcursive si elle fait appel elle mme. Le paramtre de position $0 sera trs souvent utilis. Exemple : Que fait ce script ? cal > devine if [ -d $1 ] then echo $1 for i in $1/* do $0$i done fi

Cours Linux

Habib SMEI

77

Les filtres
La commande find La commande find sert parcourir larborescence des rpertoires la recherche des fichier satisfaisant des critres de recherche. Le parcours des rpertoires et de leurs sous rpertoires se fait dune manire rcursive. Pour effectuer une recherche avec find, il faudrait spcifier: le rpertoire de recherche, les critres de recherche mettre en uvre, laction entreprendre sur le fichier trouv. Syntaxe : find <chemin_de_recherche> [<critre de slection>] [<action>] Si la recherche aboutit un fichier correspondant aux critres, il sera trait par les actions de la commande dont on distingue : -print, -exec et -ok.

Cours Linux

Habib SMEI

78

Les filtres
Les critres de slection sont : critre Signification Recherche par nom de fichier -name <fichier> Recherche par type de fichiers -type <type> Recherche par utilisateur propritaire -user <nom> Recherche par groupe propritaire -group <nom> Recherche par taille -size <nbre> Recherche par date du dernier accs -atime <jour> Recherche par date de la dernire modification -mtime <jour> Recherche par date de cration -ctime <jour> Recherche par droits daccs -perm <droits> Recherche par nombre de liens -links <nbre> Pour les options autre que -name, -type -user, -group les noms doptions sont complts par des valeurs. Ces valeurs peuvent tre prcdes des signes +/- signifiant : + : suprieur (>) ; - : infrieur (<) Pour les actions : laction -print exprime que le nom du fichier trouv sera affich. laction -exec prcde une commande qui sera excute si un fichier rpondant aux critres est trouv.
Cours Linux Habib SMEI

79

Remarques : -La commande aprs -exec ou ok sera suivie de \ ; -Si on veut rfrencer dans laction exec ou ok, le fichier trouv, on utilise {} ({} le nom du fichier courant, en cours dexamen) Exemple : Si lon veut afficher toutes les caractristiques des fichiers appartenant lutilisateur user1, la commande lancer serait : find -user user1 -exec ls -l {} \ loption -ok est semblable -exec , la diffrence consiste ce que la commande aprs -ok ne sera excute quaprs confirmation de la part de lutilisateur. Exemples : Afficher tous les fichiers qui commencent par une minuscule ou dont le nom se termine par r find . \( -name "[a-z]* " -o -name "*r " \) -print Afficher tous les rpertoires dont le nom commence par i find . \( -type d -a -name " i*" \) -print

Les filtres

Cours Linux

Habib SMEI

80

Les filtres La famille de la commande grep (recherche dans un texte) :


1 La commande grep
Cette commande contient comme premier paramtre un modle de critre de recherche. Ce modle peut contenir des caractres spciaux. Elle retourne sur le canal de sortie standard toutes les lignes dun fichier contenant le critre de recherche. Syntaxe : grep [-<option>] <squence> [<fichier>]

Option -v -c -l -n -i

Signification Affichage des lignes qui ne contiennent pas la squence Affichage du nombre doccurrence Affichage des noms de fichiers qui contiennent loccurrence. chaque ligne affiche est numrote. confonde les minuscules et les majuscules lors de la recherche.

Cours Linux

Habib SMEI

81

Les filtres
La commande grep peut supporter les mta caractres dcrits par le tableau suivant :
Caractre [...] [A...] * ^ $ Signification Identifie une plage pour une srie de caractres permis cet emplacement. plage de caractres interdits dans cet emplacement. un seul caractre quelconque signe de rptition : agit sur le caractre plac devant ltoile. Symbolise le dbut de ligne matrialise la fin de ligne

Exemples:
Afficher toutes les lignes qui commencent par une majuscule dans le fichier NOMS. $ grep ^[A..Z].* NOMS Afficher tous les fichiers ou rpertoires du rpertoire courant dont le nom se termine par lextension .pas $ ls | grep \ .pas$

Cours Linux

Habib SMEI

82

2. La commande fgrep La commande fgrep (fast grep) permet de faire la recherche de plusieurs squences la fois dans un fichier et ceci selon la syntaxe suivante : fgrep [-<option>] <expr-reg> <fichiers> Comme grep, fgrep cherche les lignes contenant les critres de recherche. Mais, elle ne cherche que des textes et ne sait pas interprter les caractres spciaux. Cependant, la recherche est trs rapide (fast grep). Lutilisation de loption -f avec un nom de fichier se fait de la faon suivante : fgrep -f <fichier-critre> < fichier-recherche> 3. La commande egrep Cette commande (Enhanced grep) largit les possibilits de la commande grep en offrant dautres caractres spciaux dans les modles de critres. La syntaxe de egrep est la mme que celle de fgrep. Ainsi, des caractres spciaux complmentaires sont considrer :
Caractre spcial + ? | () Signification caractre de rptition: le caractre plac devant le signe + doit figurer au moins une fois ( diffre du signe * l ou le caractre qui le prcde figure 0 ou plusieurs fois) Caractre de rptition: le caractre devant? apparat une fois ou 0 fois. Il sagit dune liaison base sur un ou logique (lun parmi les critre). Les parenthses permettent de grouper des critres partiels.

Les filtres

Cours Linux

Habib SMEI

83

La commande Sort (Tri et fusion)Les

filtres

La commande sort lit les donnes ligne par ligne et retourne ces mmes donnes tries. Le tri se fait sur la base de cls de tri qui peuvent tre un ou plusieurs champs dune ligne ou une partie du champ. Syntaxe : sort
Option -r -n -d -u -b -f tri dans lordre inverse tri en ordre numrique seuls sont considres les lettres alphabtiques, les chiffres et le blanc. suppression de toutes les lignes en double sauf une. ignore les blancs placs en dbut du champ. aucune diffrenciation entre la majuscule et la minuscule.

[ -<option>] +<debut> -<fin> <fichter_in> -o <fichier_out>


Signification

La cl du tri limite le champs des comparaisons aux portions de lignes, elle est de la forme : +dbut fin o dbut est le numro du 1er champs de la cl (numrot partir de 0). fin : est le numro du 1er champs nappartenant pas la cl. Exemple : sort +1 2 -f fic # tri sur le deuxime champ de chaque ligne du fichier fic. Une cl peut tre aussi des portions de champs. Dans ce cas dbut et fin sont de la forme m.n o m est le numro du champs ; n est le numro du caractre dans le champs
Cours Linux Habib SMEI

84

Les Conversions des chanes de caractres : filtres La commande tr permet de convertir une chane de caractre suivant la syntaxe suivante tr [<option>] <ancien_char> <nouveau_char> Cette commande ne lit pas les donnes partir dun fichier mais plutt partir du canal dentre standard et retourne son traitement sur le canal de sortie standard. Dans la syntaxe, ancien_char et nouveau_char reprsentent deux chanes de caractres. Il sagit de remplacer toute occurrence de ancien_char par nouveau_char et de retourner le rsultat sur lcran. Les options suivantes sont les plus utilises: -c : le complment de lensemble de caractres dfini par ancien_char par rapport tous les caractres -d ancien_char : lensemble de caractres de ancien_char sont tous supprimer -s : ne conserver quune occurrence (parmi plusieurs conscutives) de caractres de lensemble dfini par ancien_char Exemple # pour convertir et afficher la ligne saisie au clavier en minuscules read ligne; echo $ligne | tr 'A-Z' 'a-z' tr -c chane car remplace tout caractre NON INCLUS dans la chane chane par le caractre car tr -d chane supprime tout caractre entr, appartenant la chane chane # supprime toutes les minuscules non accentues : echo $ligne | tr -d a-z tr -s chane supprime toute rptition des caractres contenus dans chane # supprime les espaces multiples entre les mots : echo $ligne | tr -s ' '
Cours Linux Habib SMEI

85

Les filtres La commande uniq


Elle permet dliminer des lignes dupliques dans un fichier tri. Les options les plus courantes sont : -u : nafficher que les lignes uniques -d : nafficher que les lignes dupliques -c : afficher le nombre doccurrence de chaque ligne Exemples : $ cat f1 $ uniq c f1 aaa 1 aaa bbb 3 bbb bbb 1 ccc bbb $ uniq d f1 ccc bbb $ uniq u f1 $ uniq c f1 aaa aaa ccc bbb ccc

Cours Linux

Habib SMEI

86

Les filtres La commande cut


Elle permet dextraire une sous-chaine de caractre dune chaine de caractre. Par defaut, elle affiche une partie de chaque ligne de chacun des fichiers mentionns ou de lentre standard si aucun fichier nest spcifi. La partie extraite est affich selon les options suivantes: -c liste_de_caractres : affiche les caractres dont les positions sont indiques dans liste_de_caractres -f liste_de_champs : nafficher que les champs dont les positions sont indiques dans liste_de_champs. Les champs sont spars, par dfaut, par le caractre tabulation. -d dlimiteur : Cette option nest valide quavec loption f. Elle permet de remplacer le caractre tabulation. Exemples : cut -c5 fichier ; affiche le 5ime caractre cut -c5-10 fichier ; affiche du 5ime au 10me caractres cut -c5- fichier ; affiche partir du 5ime (jusqu' la fin) cut f3 -d ":" /etc/passwd ; affiche le troisime champs du fichier passwd (qui correspond au champs uid de chaque utilisateur). ls l |cut c30-42 ; afficher que le champs taille des fichiers.

Cours Linux

Habib SMEI

87

Les filtres
Lutilitaire awk Lutilitaire awk lit, ligne par ligne, dans le fichier spcifi ou partir du canal dentre standard. Chaque ligne est dtecte par un saut de ligne. Les lignes lues et modifies par awk seront envoyes sur le canal de sortie standard. Pour dfinir les actions excuter sur les lignes de donnes lues, on utilise des paramtres de lignes de commandes ou des fichiers dinstructions. Pour la subdivision dune ligne en champs, on considre comme sparateur entre deux champs, des espaces ou des marques de tabulations. Exemple :

Soient les lignes suivantes du fichier classes Classe filles garons ii3 5 19 ig3 20 4 ii2 6 20 Pour la premire ligne, le premier champ contient Classe, le second filles et le troisime garons.

Cours Linux

Habib SMEI

88

Les filtres
awk <awk-programme> <Fichier> [<fichiers>] ou encore awk -f <FichierInstructions> <Fichier> [<fichiers>]

Structure des programmes awk Si le programme est lu partir dun fichier, le programme correspond un ensemble de critres (conditions) et dactions. critre1 { actionl } critre2 { action2 } . . . critreN { actionN } Le module awk traite le fichier en entre ligne par ligne chaque ligne est compare aux diffrents critres du programme. Si la squence est vraie (critre vrifi) , alors laction correspondante est excute.
Cours Linux Habib SMEI

89

Les filtres

Les variables prdfinies de awk


Les champs dune ligne analyse par la commande awk seront rfrencs par $1, $2, ... $NF. $0 rfre la ligne en sa totalit. Le tableau suivant identifie les diffrentes variables et leurs significations :

Variable FILENAME FS NF NR RS OFS ORS nom du fichier en entre courant

Signification Sparateur de champs des articles en entre nombre de champs des lignes en entre. nombre des articles en entre ( prend la valeur 1 pour la 1ire ligne, 2 pour la 2ime ligne, etc.) sparateur darticles en entre. sparateur de champs darticles en sortie sparateur darticles en sortie.

Cours Linux

Habib SMEI

90

Vous aimerez peut-être aussi