Académique Documents
Professionnel Documents
Culture Documents
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,
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
Actuellement plus de 20 millions dutilisateurs dans le monde Plusieurs socits cotes en bourse: Red Hat, Mandrake Soft, VA Linux,
Cours Linux
Habib SMEI
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
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
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
Cours Linux
Habib SMEI
10
Cours Linux
Habib SMEI
11
Cours Linux
Habib SMEI
12
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
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
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
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
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
Commandes de base
Cours Linux
Habib SMEI
18
Commandes de base
Architecture dun systme GNU/Linux:
Machine
Cours Linux
Habib SMEI
19
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
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
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
Cours Linux
Habib SMEI
23
24
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 :
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.
Partitions primaires
Subdivision primaire du disque Au maximum 4, numrotes de 1 4
Cours Linux
Partitions logiques
Subdivision secondaire : possible uniquement dans une partition tendue Numrotes partir de 5
Habib SMEI
28
Installation de LINUX
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
Cours Linux
Habib SMEI
32
Installation de LINUX
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
/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
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
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
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
43
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
45
Processus
Processus
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)
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
...
Bitmap i-noeuds
Blocs de donnes
Copie du superbloc
Cours Linux
Habib SMEI
48
...
Cours Linux
49
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
50
Taille EOF 13
8 FREE 4
8 9 3
4 12 13
51
Cours Linux
Habib SMEI
52
Cours Linux
Habib SMEI
53
2. 3. 4. 5. 6. 7.
8.
Cours Linux
54
Cours Linux
Habib SMEI
55
Cours Linux
Habib SMEI
56
Cours Linux
Habib SMEI
57
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
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
Cours Linux
Habib SMEI
62
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
Cours Linux
Habib SMEI
64
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 :
Cours Linux
Habib SMEI
65
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
68
Cours Linux
Habib SMEI
69
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
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
Cours Linux
Habib SMEI
72
Cours Linux
Habib SMEI
73
74
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
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
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
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.
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
Cours Linux
Habib SMEI
86
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
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