Vous êtes sur la page 1sur 61

Introduction

Linux
Paternit - Pas d'Utilisation Commerciale - Partage des Conditions Initiales
l'Identique : http://creativecommons.org/licenses/b-nc-sa/!."/#r/
2008-07
GAUTHIER CATTEAU
ARMANDO MARTINS

Table des matires

Table des matires 3
I - Prsentation de GNU/Linux 11
A. Qu'est-ce que le mouvement GNU ?...................................................11
B. Qu'est-ce qu'un logiciel libre ?...........................................................12
C. Linux, juste le noyau !.....................................................................12
D. Qu'est ce qu'une distribution ?..........................................................13
E. quoi sert vraiment un systme d'exploitation ?.................................13
F. Un systme d'exploitation multiplateforme..........................................14
II - Dcouverte du systme d'exloitation GNU/Linux 15
A. Ou trouver votre distribution ?..........................................................15
B. Installation depuis un LiveCD............................................................16
C. Les sessions utilisateurs...................................................................18
D. Les Bureaux Virtuels........................................................................18
E. Prsentation des gestionnaires de fentres.........................................19
III - Les alications disonibles 23
A. Les application de Bureautique..........................................................23
B. Les outils Graphiques.......................................................................23
C. Les outils pour internet....................................................................23
D. Les applications Multimdia..............................................................23
E. Les outils de virtualisation................................................................23
I! - Installation des alications et mise " #our du systme$ 25
Gauthier Catteau - Armando Martins
3
A. Comment ajouter des applications ?..................................................25
B. Mise jour du systme et des applications.........................................26
C. Synaptic.........................................................................................27
D. L'application Ajouter/enlever. . . ..................................................28
E. Comment scuriser son Linux ?.........................................................28
! - %e&ardons un eu sous le caot$ 31
A. Introduction....................................................................................31
B. Systmes de fichiers........................................................................31
C. Les diffrentes catgories de fichiers.................................................32
D. O sont mes disques ?.....................................................................33
E. Explication de l'arborescence des fichiers............................................33
F. Point de montage............................................................................34
G. O sont enregistres mes prfrences ?.............................................35
H. Gestion des droits...........................................................................35
I. Le run level, ou niveau de fonctionnement..........................................37
J. Les Scripts systmes........................................................................37
!I - Gestion 'vance 39
A. Gestions des utilisateurs et des groupes.............................................39
$. Introduction......................................................................................39
!. %iste des utilisateurs &/etc/pass'd&......................................................39
(. %e #ichier des mots de passe chi##rs &/etc/shado'&................................40
). *odi#ier un compte ou mot de passe e+istant........................................40
,. %iste des groupes &/etc/group&............................................................40
-. Cration de comptes..........................................................................41
B. Planification de tches : cron et atd...................................................41
$. Introduction......................................................................................41
!. Cron................................................................................................41
(. %es #ichiers de cron............................................................................42
). .ormat d'un #ichier &crontab&...............................................................42
,. /mploi de la commande &at&...............................................................43
C. L'accs distance par SSH...............................................................44
$. Introduction......................................................................................44
!. *ise en garde sur la scurit...............................................................44
(. Installation et con#iguration de 001......................................................44
). 0e connecter par 001.........................................................................45
,. 2rans#ert de #ichiers par 001...............................................................46
-. 0e connecter par 001 sans taper de mot de passe.................................46
!II - (as) * l'interrteur de commandes 49
Gauthier Catteau - Armando Martins
4
A. Bash..............................................................................................49
B. Les principales commandes console (BASH) sous Linux........................51
C. Mon premier script..........................................................................53
D. Quelques conseils concernant les commentaires..................................54
E. Le passage de paramtres................................................................54
F. Les variables...................................................................................55
G. Protection des expressions...............................................................56
H. Structures de contrle.....................................................................58
$. 0lection d'instructions.......................................................................58
!. Itrations d'instructions......................................................................61
!III - +onclusion 63

Gauthier Catteau - Armando Martins
5

,b#ecti-s

Permettre un utilisateur Linux de se familiariser l'utilisation et la personnalisation d'un
systme Linux.
Gauthier Catteau - Armando Martins
7

Introduction

Ce support ne saurait tre considr comme un travail achev ou suffisant pour un auto-
apprentissage. Il s'agit de notes organises destines accompagner le cours, ainsi que les
activits de TD et TP, d'Introduction " Linux. Il n'est certainement pas exempt d'erreurs
et j'invite les lecteurs, tudiants et enseignants, me faire part de leurs remarques pour
m'aider dans ce travail sans fin d'amlioration de ce support.
Cette formation ne fera pas de vous un matre incontest de GNU/Linux , mais vous guidera
dans vos premiers pas sous Linux pour que vous sachiez l'installer, ajouter de nouveaux
logiciels, et l'utiliser quotidiennement. De plus, cette formation constitue une bonne
introduction une comprhension plus avance du systme d'exploitation et vous donnera
les clefs pour aller plus loin, si vous le dsirez. . .
Gauthier Catteau - Armando Martins
9

I - Prsentation de
GNU/Linux
I


Qu'est-ce que le mouvement GNU ? 11
Qu'est-ce qu'un logiciel libre ? 12
Linux, juste le noyau ! 12
Qu'est ce qu'une distribution ? 13
quoi sert vraiment un systme d'exploitation ? 13
Un systme d'exploitation multiplateforme 14




Avant d'entrer dans le vif du sujet une prsentation dUbuntu Linux de la
philosophie en gnral peut sembler ncessaire. En effet, malgr la mdiatisation
grandissante du mouvement du Libre, de nombreuses personnes assimilent le Libre
la gratuit. Si vous pensez encore que ces deux notions sont quivalentes, vous
verrez qu la hn de ce chapitre, votre avis aura chang et vous mesurerez plus
prcisment les diffrences entre Libre et propritaire, ainsi que les enjeux qui en
dcoulent.
'$ .u'est-ce /ue le mouvement GNU 0


En 1984, Richard Matthew Stallman, chercheur en informatique du MIT quitte son
poste et se consacre lcriture dun systme dexploitation Libre du nom de GNU .
Il annonce lanne suivante la cration de la FSF ahn de supporter ce projet.
C'est durant ces annes qu'il crit ce qui deviendra les prceptes du Logiciel Libre.
La concrtisation en est la publication en 1989 de la premire version de la licence
GPL qui sera alors le fondement thique, juridique et politique du mouvement du
Libre.

Complment
Plus dinformation sur le mouvement GNU sur le site http://www.gnu.org/ .
Image $ : 3ichard *atthe' 0tallman
Gauthier Catteau - Armando Martins
11
($ .u'est-ce /u'un lo&iciel libre 0
L'expression Logiciel Libre fait rfrence la libert et non pas au prix. Pour
comprendre le concept, vous devez penser la libert d'expression , pas
l'entre libre .
L'expression Logiciel Libre fait rfrence la libert pour les utilisateurs
d'excuter, de copier, de distribuer, d'tudier, de modifier et d'amliorer le logiciel.
Plus prcisment, elle fait rfrence quatre types de libert pour l'utilisateur du
logiciel :

Dfinition
Libert 1
La libert d'excuter le programme, pour tous les usages.
Libert 2
La libert d'tudier le fonctionnement du programme, et de l'adapter vos
besoins. Pour ceci l'accs au code source est une condition requis.
Libert 3
La libert de redistribuer des copies, donc d'aider votre voisin.
Libert 4
La libert d'amliorer le programme et de publier vos amliorations, pour en
faire profiter toute la communaut. Pour se faire, l'accs au code source est
une condition requise.
Un programme est un Logiciel Libre si les utilisateurs ont toutes ces liberts .
Ainsi, vous tes Libre de redistribuer des copies, avec ou sans modification,
gratuitement ou non, tout le monde, partout. tre Libre de faire ceci signifie -
entre autre - que vous n'avez pas demander ou payer pour en avoir la
permission. Cela permet de garantir la Libert - savoir ce qu'il se passe sur votre
ordinateur, pouvoir changer de systme aisment par l'utilisation de formats
ouverts -, l'galit - avoir accs un logiciel un prix bas ou gratuitement-, et
la Fraternit - avoir le droit de redistribuer lgalement ses amis, ses logiciels.
Vous devez aussi avoir la libert de faire des modifications et de les utiliser titre
personnel dans votre travail ou vos loisirs, sans en mentionner l'existence.Si vous
publiez vos modifications, vous n'tes pas oblig de prvenir quelqu'un de
particulier ou de le faire d'une manire particulire. La libert d'utiliser un
programme est la libert pour tout type de personne ou d'organisation de l'utiliser
pour tout type de systme informatique, pour tout type de tche et sans tre oblig
de communiquer ultrieurement avec le dveloppeur ou tout autre entit
spcifique.
+$ Linux5 #uste le noyau 6
45u sens strict6 %inu+ est le nom du noau de sst7me d'e+ploitation libre6
multit8che6 multiplate-#orme et multi-utilisateur de tpe U9I: cr par %inus
2orvalds6 souvent dsign comme le noau %inu+.;
Le projet GNU arrive en 1991 avec de trs nombreux outils libres, mais il lui
manque un lment central : le noyau. Cet lment est essentiel car il gre la
mmoire, le microprocesseur, les priphriques comme le clavier, la souris, les
disques durs. . .
Gauthier Catteau - Armando Martins
12
Prsentation de GNU/Linux


C'est cette poque qu'un tudiant finlandais, Linus Torvalds, commence
dvelopper un noyau et demande aux personnes intresses d'y contribuer. La
licence GPL a t publie la mme poque et Linus Torvalds s'est laiss persuader
de placer son noyau sous cette dernire.
Le systme d'exploitation actuellement connu est donc un assemblage des outils
GNU fonctionnant sur un noyau Linux, on parle donc de GNU/Linux avec le slash,
/ pour GNU sur Linux .

Dfinition
GNU/Linux est un systme d'exploitation compltement Libre et performant. Il est
hautement configurable. Il ne dpend pas d'une multinationale. Il est support par
une grande communaut d'utilisateurs souvent prts vous aider. Quelque soit
votre domaine de comptence, vous pouvez participer l'amlioration de
GNU/Linux pour que ce dernier volue dans votre intrt. Ce n'est pas un simple
logiciel gratuit, mais un Logiciel Libre. Ce qui garantit qu'il restera accessible et
gratuit pour tous, sans discrimination.
D$ .u'est ce /u'une distribution 0
En ralit, si on vous livrait le noyau Linux seul, accompagn des outils GNU de
base, vous seriez bien avanc : pas d'interface graphique, juste quelques
commandes, bref, votre systme d'exploitation serait inexploitable, un
comble,non ?
C'est pour cela qu'existe des distributions Linux qui contiennent le noyau Linux, les
outils GNU, plus un ensemble de logiciels qu'elles ont choisi de supporter. Ceux-ci
sont tests et compils pour vous. La plupart d'entre elles contiennent un systme
d'installation de logiciel simplifi qui leur est - malheureusement - propre. Vous
avez dj d voir qu'il existe de trs nombreuses distributions : Mandriva, Red Hat
Fedora, Debian, Gentoo, OpenSuse, Ubuntu ...
Alors pourquoi autant de distributions, me direz-vous ? En fait, chaque distribution
a sa cible : certaines sont orientes sur la facilit d'utilisation,d'autres sont pour les
vritables geeks , certaines sont spcialises pour l'utilisation dans le domaine
scolaire ou musical, d'autres encore se veulent trs lgres et fonctionner sur des
PC antdiluviens. . . Vous voyez qu'il peut y avoir autant de distributions que de cas
d'utilisation !
7$ 8 /uoi sert vraiment un systme d'exloitation 0
Il exploite ! Oui, mais qui allez-vous me dire ? En fait, il s'agit plutt de quoi
: l'OS exploite votre matriel.
Image ! : %inus 2orvald
Gauthier Catteau - Armando Martins
13
Prsentation de GNU/Linux
Essayons d'imaginer le contraire : si le systme d'exploitation n'existait pas, tous
les logiciels devraient tre conus pour tous les matriels existants.
C'est dire que chaque programmeur devrait prendre en compte l'ensemble du
matriel (carte graphique, type de mmoire RAM, disque dur, processeur. . .) ainsi
que tous les priphriques ( clavier, souris, cran, imprimante. . .) existant ou
ayant exist.
De plus, la sortie d'un nouveau matriel, ce qui arrive par centaines
quotidiennement, il faudrait alors le prendre en compte et sortir une nouvelle
version de chaque logiciel !
J'ajouterai galement que cela prendrait une place en mmoire non ngligeable et
normment de temps puisque ce travail serait dupliqu pour chaque logiciel!
C'est donc la fonction principale d'un systme d'exploitation : il offre une double
interface entre ce qui est capable de dialoguer dans la mme langue que le matriel
et les logiciels installs sur la machine. Les logiciels installs, par consquent se
moque compltement du type de matriel install de votre ordinateur : ils
envoient des instructions comme affiche-moi cela , fais ceci et le systme
d'exploitation, par le biais des drivers, fournit la bonne traduction dpendant du
matriel.

Remarque
Le serveur X (Xorg ou Xfree) qui gre l'affichage de l'interface graphique est un cas
particulier. Certaine personnes disent d'ailleurs que c'est un systme
d'exploitation ...
9$ Un systme d'exloitation multilate-orme
Linux est multiplateforme.
Ce terme assez barbare veut tout simplement dire que Linux est disponible sur
plusieurs types de machines ou architecture de processeur. Ainsi, on va pouvoir
trouver Linux sur une machine de type P.C. tel que vous connaissez et que vous
utilisez certainement, mais aussi sur les Macintosh, ou encore sur les super
calculateurs.
Voici les diffrentes architectures sur lesquels nous allons pouvoir installer notre
Linux :
I386 et x86_64 (notre P.C.)
POWERPC (Ancien Macintosh)
AMD64
ARM
HPPA
ALPHA
IA64
MIPS
MIPSEL
Et pour finir SPARC
Gauthier Catteau - Armando Martins
14
Prsentation de GNU/Linux

II - Dcouverte du
systme
d'exloitation GNU/
Linux
II


Ou trouver votre distribution ? 15
Installation depuis un LiveCD 16
Les sessions utilisateurs 18
Les Bureaux Virtuels 18
Prsentation des gestionnaires de fentres. 19



'$ ,u trouver votre distribution 0
Les distributions rinstalles
Certains vendeurs quipent leurs ordinateurs directement avec l'OS GNU/Linux
d'install, on appelle a des OEM (Original Equipment Manufacture)
Les distributions ayantes en ma&asin
Certaines distributions de Linux peuvent tre achetes en magasin ( carrefour,
fnac, surcouf, grosbill,...) entre autre:
Mandriva, qui existe aussi en version gratuite et libre, mais qui propose des
versions payantes intgrant des pilotes propritaires (nvidia, ati, wifi,..) et
des codecs.
Red Hat est comme Mandriva disponible en version payante ou gratuite et
libre, cette dernire s'intitulant Fedora Core
Suse, qui a adopt la mme mthode que les 2 autres: une version payante
et une version gratuite et libre: Open Suse
Par tlc)ar&ement
La plupart des distributions GNU/Linux sont disponibles en libre tlchargement
(sauf les versions payantes o il vous faudra videmment mettre la main au
portefeuille avant de pouvoir les tlcharger lgalement) Vous trouverez le plus
souvent les distributions tlchargeables sur leurs sites respectifs. Vous pouvez
aussi trouver les liens vers ces fichiers sur un de ces sites:
Distrowatch http://www.distrowatch.com
QuebecOs http://www.quebecos.com/modules/wfdownloads/
'vec de la documentation
Bien souvent, les magazines ayant pour thme Linux comportent des DVDs,
comportant souvent des distributions linux et des logiciels. Ce type de magazine
cote un peu prs 10C, l'installation de la distribution et les premiers pas tant
Gauthier Catteau - Armando Martins
15
souvent expliqus dans le magazine.
($ Installation deuis un Live+D
Maintenant que vous avez tlcharg et grav votre distribution Linux sur un
cdrom, vous pouvez "booter" votre ordinateur sur le lecteur de cdrom.







Image ( : <cran de dmarrage =en anglais >?
Image ) : Choisisse@ ici votre langue
Image , : C'est mieu+ en #ranAais B
Gauthier Catteau - Armando Martins
16
Dcouverte du systme d'exploitation GNU/Linux






Remarque
Dans notre cas, nous allons dmarrer notre machine virtuelle et "booter" sur le cd
virtuel.
Image - : Ctection du matriel en cours
Image D : %ancement de l'inter#ace graphique
Image E : %ancement de l'inter#ace graphique.
Gauthier Catteau - Armando Martins
17
Dcouverte du systme d'exploitation GNU/Linux
+$ Les sessions utilisateurs
Linux est un systme d'exploitation multi-utilisateurs.

Dfinition : Multi-utilisateurs
En informatique, un systme d'exploitation comme Unix ou Linux est conu pour
que plusieurs utilisateurs puissent avoir accs au mme ordinateur en mme
temps. Le systme partage son temps de travail en plusieurs processus n'ayant
aucun lien entre eux, si ce n'est le mme ordinateur.
Le terme oppos est mono-utilisateur qui est utilis lorsque l'on parle de systmes
d'exploitation utilisable par un seul utilisateur la fois ou encore en rfrence une
licence de logiciel prvue pour un utilisateur.
D$ Les (ureaux !irtuels
Vous aimez faire plusieurs choses en mme temps sur votre ordinateur ? Par
exemple, vous voulez ouvrir : The Gimp pour modifier quelques photos, une fentre
Jabber pour discuter avec vos amis, une fentre IRC pour discuter avec d'autres
personnes, votre navigateur web, votre client email, OpenOffice.org pour rdiger
des documents. . . a commence vite faire beaucoup, n'est ce pas ? Alors, trions
un peu les fentres, sparons-les par thme. . .
Imaginez que vous ayez un bureau pour tout ce qui est internet, un autre pour la
bureautique
Eh bien, cest ce que vous permettent les bureaux virtuels.
Par dfaut, sur la plupart des environnements , vous avez sur un de vos tableaux
de bord un ensemble de petits carrs ; cliquez sur chacun des ces carrs, qui
reprsentent les bureaux, pour vous faire une ide.

Dfinition : Bureau virtuel
Un bureau virtuel est un environnement graphique qui peut tre dmultipli, afin de
travailler un seul type de tche dans chaque bureau, au lieu d'avoir toutes les
fentres runies dans un seul. Par exemple, l'utilisateur choisira de rserver un
bureau aux tches de retouches photographiques, un autre internet, un autre aux
jeux, etc. Les fentres ne sont plus mlanges.
7$ Prsentation des &estionnaires de -en:tres$
La distribution Ubuntu que nous allons tudier ensemble, propose par dfaut
l'environnement graphique "Gnome". Mais il existe un grand nombre d'autre
gestionnaire de fentres.
Les plus connus sont :
Gnome se veut simple dutilisation , cest dire quune application fait
une seule chose, mais la fait bien. Les options paramtrables de chaque
application restent limites afin de ne pas noyer l'utilisateur dans des
rglages dont il n'aurait jamais se soucier.

Gauthier Catteau - Armando Martins
18
Dcouverte du systme d'exploitation GNU/Linux

;D7 se veut plus complet. Lapplication qui peut graver vos donnes est
tout aussi capable de lire vos vidos et musiques ainsi que de
redimensionner vos images. De plus, les applications sont beaucoup plus
paramtrables par le biais des menus doptions, mme si vous naurez
certainement jamais toucher la plupart de celles-ci !


<-ce, lui, se veut plus lger et peut tourner sur des configurations modestes
compares aux deux mastodontes prcdents. FluxBox vise la mme cible.

Image F : Gnome
Image $" : HC/
Gauthier Catteau - Armando Martins
19
Dcouverte du systme d'exploitation GNU/Linux

Et bien d'autre encore :
WindowMaker, Enlightenment, BlackBox, Ion, FluxBox, AfterStep, IceWM, ...
Il existe des dizaines d'environnements de bureaux, et deux proposent mme un
environnement de bureau complet - c'est dire des applications spcifiquement
destination de cet environnement avec une philosophie, des interactions et une
prsentation homogne - comme Gnome, interface par dfaut d'Ubuntu. Le choix
de l'une ou l'autre des interfaces graphiques disponibles dpend uniquement de vos
gots personnels. En effet, ds le systme install, vous pourrez utiliser les mmes
logiciels.
Vous pourrez galement changer par la suite denvironnement graphique et en
avoir plusieurs installs simultanment. C'est la libert de choix ! l'cran
dconnexion, vous pourrez choisir votre environnement de bureau. Et tout cela
repose, une fois encore, sur le serveur X - Xorg sur Ubuntu - qui se charge de
l'affichage. Au dmarrage de votre interface graphique, Xorg dmarre - et le
curseur en forme de roue qui tourne apparat - en lisant la configuration qui se
trouve dans le fichier texte brut /etc/X11/xorg.conf, puis GDM qui vous permet de
choisir l'utilisateur et l'interface utiliser. Vous pouvez alors choisir entre plusieurs
environnements, si vous les avez installs sur votre machine. Enfin,
l'environnement de bureau slectionn se lance - Gnome, par exemple.
Image $$ : :.C/
Gauthier Catteau - Armando Martins
20
Dcouverte du systme d'exploitation GNU/Linux

III - Les alications
disonibles
III


Les application de Bureautique 23
Les outils Graphiques 23
Les outils pour internet. 23
Les applications Multimdia. 23
Les outils de virtualisation. 23



'$ Les alication de (ureauti/ue
OpenOffice.org, KOffice, Scribus...
($ Les outils Gra)i/ues
The Gimp, Inkscape, F-Spot ...
+$ Les outils our internet$
Firefox, Konqueror, Thunderbird, Evolution ...
D$ Les alications =ultimdia$
Amarok, Totem, Xine ...
7$ Les outils de virtualisation$
VirtualBox, Qemu ...
Gauthier Catteau - Armando Martins
21

IV - Installation des
alications et mise
" #our du systme$
IV


Comment ajouter des applications ? 25
Mise jour du systme et des applications. 26
Synaptic 27
L'application Ajouter/enlever. . . 28
Comment scuriser son Linux ? 28



'$ +omment a#outer des alications 0
La procdure suivre pour installer un logiciel sous Ubuntu et toutes les
distributions drives de Debian, se rsume en un mot : 'PT. Il s'agit d'un logiciel
qui gre l'installation de tous les logiciels.
La premire chose faire avant d'installer une application est de mettre jour la
liste des paquets :
apt-get update
Si on ne connait pas le nom exacte de l'application on peut la chercher avec apt-
cache :
apt-cache search Nom_du_paquet ou mot_clef
Ensuite pour installer l'application on tape la commande :
apt-get install Nom_du_paquet
Exemple :
apt-get install Inkscape
Le successeur d'apt est atitude. Les commandes sont trs similaires :
aptitude update
aptitude search Nom_du_paquet ou mot_clef
aptitude install Nom_du_paquet
Si atitude est lanc sans paramtre il propose une interface pour venir parcourir
la liste des paquets.

Remarque
Pour rendre ce systme - trs pratique - accessible au dbutant, Ubuntu propose
pas moins de deux interfaces graphiques que l'on va dtailler par la suite : Synaptic
et Ajouter/enlever. . . .
Gauthier Catteau - Armando Martins
23
($ =ise " #our du systme et des alications$
Nous venons de voir les outils apt et aptitude pour installer des logiciels, nous
allons utiliser les mmes outils pour mettre jour notre systme d'exploitation :
apt-get update && apt-get upgrade
ou
aptitude update && aptitude upgrade
C'est tout. Avec l'une ou l'autre de ces commandes vous mettez jour le systme
et l'ensemble des applications que vous avez install.
Bien entendu il n'est pas ncessaire d'avoir accs la ligne de commande pour
pouvoir mettre jour son systme.
En effet, ne vous souciez pas des mises jour, lorsque lune delle va se prsenter,
votre systme vous fera signe par le biais de l'applet zone de notification -
ct de votre horloge si vous n'avez touch rien !


Vous pourrez donc mettre jour lintgralit de votre systme en cliquant
simplement sur l'icne - le gestionnaire de mise jour, galement accessible par
Systme => Administration => Gestionnaire de mises jour -, se lance puis
Installer les mises jour . L'application grant les mises jour se lance et vous
dcouvrez en-dessous une rapide description, pour chaque lment, de la mise
jour.


Plus rarement, le noyau sera mis jour. Cest, par ailleurs, une des seules actions
ncessitant un redmarrage complet du systme.

Remarque : Mise jour de l'intgralit du systme
Vous avez dit mise jour de lintgralit du systme ? En effet, tous les
programmes seront mis jour automatiquement. Vous aurez ainsi l'quivalent d'un
norme Windows update prenant en charge l'ensemble de vos logiciels, jeux et
outils de scurit et pas seulement votre systme d'exploitation. Si une mise jour
majeure - changement de version, comme Windows Me vers XP - est disponible,
Ubuntu vous proposera de l'installer. Vous pouvez ou non accepter sa proposition.
Plus rarement, le noyau sera mis jour. Cest, par ailleurs, une des seules actions
ncessitant un redmarrage complet du systme.
Image $! : *ises Iour disponibles
Image $( : Choi+ des mises Iours
Gauthier Catteau - Armando Martins
24
Installation des applications et mise jour du systme.
+$ >ynatic
Synaptic, accessible par le menu Systme => Administration => Gestionnaire de
paquets Synaptic , est une interface complte pour grer APT graphiquement. Il
s'adresse principalement aux utilisateurs avertis . Si vous connaissez un nom de
paquet, vous pouvez le rechercher directement par son nom ou par sa description.



Exemple
Prenons lexemple dinkscape, partir du moment o vous savez que le paquet a le
mme nom, l'installation est vraiment aise : une fois >ynatic lanc - aprs avoir
demand votre mot de passe, puisque vous tes en train d'effectuer une opration
d'administration, rappelez-vous ! -, vous pouvez effectuer une recherche par le
biais du menu ?dition @ %ec)erc)er . Dans la zone de recherche, tapez
inAscae puis cliquez sur %ec)erc)er .
Vous pouvez choisir d'effectuer votre recherche dans les noms de paquets
seulement, ou encore dans les noms et leurs descriptions dans la partie infrieure.
Apparatra alors la ligne : inkscape.
Cliquez-droit sur celui-ci, puis >lectionner our installation . Acceptez les
messages ventuels vous indiquant que d'autres paquets - les dpendances -
doivent tre installs pour que ce logiciel fonctionne correctement.
Enfin, cliquez sur 'li/uer . Acceptez le message rcapitulant ce qui va tre
fait. Attendez que la magie opre et voil ! Un carr vert auprs du nom du paquet,
prouve que votre logiciel est install. Vous pouvez prsent fermer Synaptic.
Supprimer un logiciel n'est pas plus compliqu : cliquez-droit sur le paquet
supprimer, puis >lectionner our suression. Acceptez les messages
ventuels vous indiquant que d'autres paquets - les dpendances - doivent tre
supprims. Enfin, cliquez sur 'li/uer .
Acceptez le message rcapitulant ce qui va tre fait, et voil, le paquet et certaines
de ses dpendances sont supprims !
D$ L'alication B '#outer/enlever$ $ $ C
Gnome-app-install, accessible par le menu Applications => Ajouter/Enlever. . . est
l'interface graphique d'APT de prdilection des dbutants proposant des listes
ordonnes de logiciels installables et dsinstallables en un seul clic ! C'est l'interface
que tout dbutant devrait utiliser prioritairement.
Image $) : 0naptic
Gauthier Catteau - Armando Martins
25
Installation des applications et mise jour du systme.



Remarque
Par dfaut, peu dapplications sont disponibles dans Ajouter/enlever. . . . En
effet, seules les applications d'Ubuntu maintenues sont proposes. Pour avoir
accs plus de logiciels, il faudra largir la recherche, si vous le dsirer, aux autres
sources de mise jour telles universe ou multiverse . Pour cela, il vous suffit
de slectionner dans la liste droulante suprieure Toutes les applications
disponibles .
7$ +omment scuriser son Linux 0
Les rgles de bases.
Arrt et suppression des services inutiles.
Mise jour du systme.
Configuration du Firewall avec l'un des outils suivants :

a. FireStarter
b. GuardDog
c. Shorewall
d. NuFW
Installer un antivirus ? Par nostalgie...
Et surtout, comme sur tout systmes, ne as installer n'imorte /uoi !

Remarque
Plus d'informations l'url : http://www.debian.org/doc/manuals/securing-debian-
howto/

Image $, : 5Iouter /nlever
Gauthier Catteau - Armando Martins
26
Installation des applications et mise jour du systme.

V - %e&ardons un eu
sous le caot$
V


Introduction 31
Systmes de fichiers 31
Les diffrentes catgories de fichiers 32
O sont mes disques ? 33
Explication de l'arborescence des fichiers 33
Point de montage 34
O sont enregistres mes prfrences ? 35
Gestion des droits. 35
Le run level, ou niveau de fonctionnement 37
Les Scripts systmes 37




Contrairement la situation que nous avons connue il y a quelques annes, il est
possible aujourd'hui d'utiliser quotidiennement Linux sans en connatre son
fonctionnement. Mais, dans ce cas, Linux perd un peu de son intrt, et nous
pouvons nous demander pourquoi il est ncessaire de quitter les systmes
d'exploitations propritaires.
'$ Introduction
Sous Linux et pour l'ensemble des Unix, tout est fichier. Il est donc naturel de
commencer par comprendre comment sont agencs ces fichiers.
($ >ystmes de -ic)iers

Dfinition
Un systme de fichiers (#ile sstem ou #ilesstem en anglais) ou systme de gestion
de fichiers (SGF) est une structure de donnes permettant de stocker les
informations et de les organiser dans des fichiers sur ce que l'on appelle des
mmoires secondaires (disque dur, disquette, CD-ROM, cl USB, disques SSD,
etc.). Une telle gestion des fichiers permet de traiter, de conserver des quantits
importantes de donnes ainsi que de les partager entre plusieurs programmes
informatiques. Il offre l'utilisateur une vue abstraite sur ses donnes et permet de
les localiser partir d'un chemin d'accs.
Gauthier Catteau - Armando Martins
27

Reprsentation pour l'utilisateur
Pour l'utilisateur, un systme de fichiers est vu comme une arborescence : les
fichiers sont regroups dans des rpertoires (concept utilis par la plupart des
systmes d'exploitation). Ces rpertoires contiennent soit des fichiers, soit
rcursivement d'autres rpertoires. Il y a donc un rpertoire racine et des sous-
rpertoires. Une telle organisation gnre une hirarchie de rpertoires et de
fichiers organiss en arbre.
Les systmes de fichiers sous Linux
Linux possde son systme appel ext2 mais peut en grer d'autres. La liste en est
donne dans /proc/filesystems
L'utilisateur peut donc accder sous Linux d'autres systmes de fichiers, comme
DOS, Vfat,..provenant d'un priphrique ou import par le rseau.
Comme pour l'utilisateur tout est fichier, tous les systmes de fichiers quels que
soient leur emplacement physique doivent tre intgrs dans l'UNI.U7
arborescence logique du systme Linux.
Cette arborescence peut donc tre construite (et voluer) partir de diverses
partitions qui peuvent tre situes sur plusieurs disques. Cela ralise une
intgration et une abstraction plus pousse que dans le monde Windows o les
partitions et lecteurs auxquels sont affectes les lettres A: C: D: ... demeurent des
entits spares. Naturellement la partition sur laquelle est situ le rpertoire
racine joue un rle particulier.
Le processus de monta&e, avec sa commande mount, dcrite plus loin, est le
moyen de faire correspondre parties de l'arborescence et partitions physiques de
disque. Il permet de plus d'affecter tout systme extrieur (disquette, cdrom, clef
usb, rp. rseau ...) un rpertoire cr pour cela dans l'arborescence.
Il suffira ensuite de se dplacer ce rpertoire, appel point de montage, en fait un
rpertoire "d'accrochage", pour accder ses fichiers (bien sr, conformment aux
permissions que possde l'utilisateur )
+$ Les di--rentes cat&ories de -ic)iers
fichiers normaux
texte : courrier, sources des programmes, scripts, configuration ...
excutables : programmes en code binaire
fichiers rpertoires
ce sont des fichiers conteneurs qui contiennent des rfrences d'autres fichiers.
vritable charpente de l'arborescence, ils permettent d'organiser les fichiers par
catgories
fichiers spciaux
situs dans /dev, ce sont les points d'accs prpars par le systme aux
priphriques. Le montage va raliser une correspondance de ces fichiers spciaux
vers leur rpertoire "point de montage".
par exemple, le fichier /dev/hda permet l'accs et le chargement du 1er disque IDE
fichiers liens symboliques
Ce sont des fichiers qui ne contiennent qu'une rfrence (un pointeur) un autre
Gauthier Catteau - Armando Martins
28
Regardons un peu sous le capot.
fichier.
Cela permet d'utiliser un mme fichier sous plusieurs noms sans avoir le
dupliquer sur le disque.
D$ ,D sont mes dis/ues 0
Les partitions sont montes dans des dossiers. Linux nomme les partitions sda1
pour la partition 1 du premier disque, sda2 pour la deuxime, sdb1 pour la
premire partition du deuxime disque (b),etc. Au dmarrage de Linux, ce dernier
ouvre un fichier texte brut nomm /etc/fstab dans lequel il trouve les
correspondances entre les disques durs et les dossiers o ils doivent tre monts.
Comment peut-on alors accder nos autres partitions, notamment les partitions
Windows si vous avez gard votre ancien systme d'exploitation ? En fait, lors de
l'installation, vous rappelez-vous de la partie Point de montage ? C'est ici o
vous avez modifi ou laiss les choix par dfaut concernant ce que l'on appelle le
montage d'une partition. Monter une partition, c'est lier un dossier une
partition. Par dfaut, ces dossiers se trouvent dans /media. Par exemple, si j'ai
mont ma partition C:\ de Windows dans /media/windows chaque fois que
j'enregistrerai dans /media/windows ou un de ses sous-dossiers, je l'enregistrerai
en fait sur la partition C:\. De mme avec une clef USB ou encore en lisant un
lecteur de DVD/CD-ROM.
7$ 7xlication de l'arborescence des -ic)iers
Un disque dur est un lment matriel qui est gnralement plac lintrieur de
lordinateur, cest un priphrique de stockage magntique qui va garder, mme
ordinateur teint, tous vos documents, mais aussi le systme dexploitation et les
hchiers ncessaires la bonne marche de votre machine. Larborescence des
hchiers est leur organisation sur le disque dur. Si vous utilisez Windows, vous savez
certainement que les hchiers se placent dans des rpertoires.
Voici pour information quelques explications sur les diffrents dossiers
indispensables dans / :
/bin : Contient les programmes systmes importants.
/boot : Les fichiers utiles au dmarrage du systme
/dev : Contient des fichiers factices permettant de communiquer avec
vospriphriques.
/etc : Ici se trouve la plupart des fichiers de configuration du systme.
/)ome : Contient les dossiers personnels des utilisateurs. Chacun y
possde un dossier son nom avec ses fichiers personnels.
/lib : Contient les librairies -bibliothques - utiles au systme.
/media : Les dossiers contenus correspondent aux accs de montage des
priphriques de stockage.
/ot : A un peu la mme fonction que /usr, sauf que certains l'utilisent pour
les programmes qu'ils compilent eux-mme et qui ne sont logiquement pas
aussi intgrs qu'un logiciel disponible dans les sources de mises jour
/roc : Ce dossier contient des fichiers et dossiers virtuels qui
correspondent l'tat du systme en temps rel : programmes ( processus )
lancs, occupation mmoire, RAM disponible, etc...
Gauthier Catteau - Armando Martins
29
Regardons un peu sous le capot.
/root : Cest le /home de ladministrateur ! Ce dernier est spar pour des
questions de scurit. Cependant, si vous avez bien suivi jusqu'ici, il n'y a
pas de compte root proprement parl sur Ubuntu. Ce rpertoire existe
donc seulement pour assurer la compatibilit avec les autres distributions
GNU/Linux.
/sbin : A un peu la mme fonction que /bin, sauf que tous les programmes
issus ne sont accessibles qu' l'administrateur, ou aux amis de root sur
Ubuntu.
/tm : Comme son nom l'indique, ici sont stocks les fichiers temporaires
utiles aux programmes en cours d'excution. Ce dossier est vid chaque
redmarrage.
/usr : Dossier important, contenant tous les programmes et les
bibliothques installs.
/var : Dossier contenant tout ce qui est variable au systme. Par exemple,
les fameux fichiers log enregistrant ce qui se passe sur votre systme,
utiles quand quelque chose ne fonctionne plus par exemple - contenus
dans /var/log/ .
9$ Point de monta&e

Dfinition
Un point de montage est un rpertoire partir duquel sont accessibles les donnes
se trouvant sous forme d'un systme de fichiers sur une partition de disque dur ou
un priphrique.
Montage et dmontage sous Unix
Lorsque les donnes sont accessibles partir d'un point de montage, on dit que la
partition ou le priphrique sont monts. Dans les sytmes Unix, le point de
montage par dfaut est /mnt ou /media. Par exemple, une disquette sera
gnralement monte en /mnt/fd0 et un cdrom en /mnt/cdrom ou /media/cdrom.
Le point de montage par dfaut des priphriques est spcifi dans un fichier de
configuration systme : /etc/fstab (sous Linux, /etc/vfstab sous Solaris). La
commande Unix permettant de monter des rpertoires est mount. La commande
inverse, qui dmonte, est umount (et non unmount).
Montage
La commande mount permet de relier une partition ou un priphrique un
rpertoire, rpertoire par lequel les donnes prsentes sur la partition ou le
priphrique sont accessibles.
Pour monter un priphrique ou une partition avec la commande mount, il faut
indiquer :
le type du systme de fichiers par l'option -t
le fichier spcial reprsentant le priphrique ou la partition (gnralement
/dev/*) ;
le rpertoire de montage. Par exemple, la commande ci-dessous monte le
priphrique /dev/cdrom (cdrom) sur /media/cdrom en indiquant que le systme
de fichier est ISO 9660.
mount -t iso9660 /dev/cdrom /media/cdrom
Certaines indications peuvent tre omises lorsqu'elles sont spcifies dans le fichier
Gauthier Catteau - Armando Martins
30
Regardons un peu sous le capot.
de configuration listant les points de montage par dfaut (/etc/fstab sous Linux).
On peut omettre le type de systme de fichiers si la version de mount utilise est
assez intelligente . Par contre, mme en l'indiquant, on ne pourra jamais monter
un systme de fichiers que le noyau Unix ne sait pas grer (parce qu'il n'a pas t
configur pour l'utiliser par exemple).
Lorsque le montage a russi, une mise jour est effectue dans un fichier systme
recensant les montages en cours (fichier /etc/mtab sous Linux). L'option -n de
mount permet d'viter cette mise jour dans des cas bien particuliers o le
montage chouerait pour cette raison (si l'on travaille sur un systme de fichier
chroot en lecture seule par exemple).
On peut galement sous les Unix modernes monter des fichiers qui constituent un
systme de fichiers eux-seuls (loopbacJ), grce l'option -loo . Ceci est
particulirement utile dans le cas d'images reprsentant des disquettes, CDROMs,
DVDs. Les commandes dd et mAiso-s peuvent aider fabriquer de tels fichiers.
Il est possible, sous certaines configurations, de monter (recouvrement total ou
partiel) par dessus d'autres systmes dj monts
Dmontage
Pour dmonter une partition ou un priphrique, il faut utiliser la commande
umount. Par exemple :
umount /media/cdrom
Le dmontage ne marche que si la partition n'est pas utilise, savoir :
aucun fichier n'est en train d'tre lu ou crit sur la partition ;
aucun processus n'a son rpertoire de travail sur la partition.
Si le dmontage est refus, on peut utiliser la commande fuser pour savoir quels
processus l'utilisent. Par exemple (si le dmontage de /media/cdrom est refus) :
fuser /media/cdrom
Lorsque le dmontage a eu lieu, le fichier /etc/mtab est mis jour.
G$ ,D sont enre&istres mes r-rences 0
Vous avez srement remarqu que 2 utilisateurs ne voudront pas du mme thme
de bureau. De plus, la configuration des logiciels - contacts, messagerie,
navigateur, etc. - ainsi que des barres d'outils,par exemple, sera diffrente. . . Et
pourtant, tout ce beau monde se connecte sur le mme systme et chacun retrouve
les prfrences qu'il avait paramtres. Comment cela est-il possible ?
Lorsque vous affichez les fichiers cachs de votre dossier personnel vous
retrouverez normment de dossiers cachs, avec comme nom, celui d'un logiciel
que vous utilisez. C'est l que sont stockes vos prfrences. Notez galement, que
s'y trouvent les prfrences de session Gnome. Par exemple, vous trouverez un
dossier $evolution o sont enregistrs vos paramtres de messagerie comme ceux
du logiciel volution.
Dautres paramtres de configuration, mais plus globaux eux, sont enregistrs dans
le dossier /etc. Ceux-ci sont communs tous les utilisateurs - par exemple, si un
logiciel A a besoin d'un logiciel B, pour fonctionner, il y enregistrera le chemin vers
le logiciel B pour l'excuter.
En somme, tout ceci signifie que lorsque vous rinstallerez le systme, et si vous
avez laiss /home sur une partition spare, la rinstallation du logiciel vous
Gauthier Catteau - Armando Martins
31
Regardons un peu sous le capot.
retrouverez tous vos paramtres comme avant le formatage du systme,si vous
gardez le mme nom de compte.
E$ Gestion des droits$
Linux est rsolument multi-utilisateurs ; il est donc ncessaire de prvoir un
systme de permissions contrlant les oprations que chacun peut faire sur les
fichiers et rpertoires, recouvrant toutes les ressources systme (sur un systme
Unix, tout priphrique est reprsent par un fichier ou un rpertoire). Ce principe
est commun tous les Unix mais un rappel est toujours utile d'autant qu'il existe
quelques usages avancs mconnus et relativement intressant.
Chaque fichier ou rpertoire dispose de permissions spcifiques pour trois
catgories d'utilisateurs :
Son propritaire (symbolis par la lettre "u" comme "User").
Son groupe propritaire (symbolis par la lettre "g" comme "Group").
Et les autres (symbolis par la lettre "o" comme "Other").
Trois types de droits peuvent s'y combiner :
Lecture (symbolis par la lettre "r" comme "Read").
Ecriture ou modification (symbolis par la lettre "w" comme "Write").
Excution (symbolis par la lettre "x" comme eXecute).
Dans le cas d'un fichier, ces droits sont faciles interprter :
L'accs en lecture permet d'en consulter le contenu mais aussi de le copier.
L'accs en criture de le modifier.
Et l'accs en excution permet de tenter de l'excuter (ce qui ne
fonctionnera que s'il s'agit d'un programme).
Un rpertoire est trait diffremment :
L'accs en lecture donne le droit de consulter la liste de son contenu.
L'accs en en criture celui d'y crer ou supprimer des fichiers.
Et l'accs en excution de le traverser (et notamment d'en faire le rpertoire
courant avec la commande "cd").
Trois commandes manipulent les permissions associes un fichier :
chown : affecte un nouveau propritaire un fichier ou rpertoire.
chgrp : affecte un nouveau groupe un fichier ou rpertoire.
chmod : intervient sur les droits.
Il existe deux manires de prsenter les droits ; parmi elles, la reprsentation
symbolique, sans doute la plus simple comprendre et mmoriser, met en jeu les
lettres symboliques cites prcdemment.
Pour chaque catgories d'utilisateurs(u/g/o), on peut dfinir les droits (=), en
ajouter (+), ou en enlever (-). Ainsi, la formule "chmod u=rwx,g+rw,o-r fichier"
donne au propritaire les droits de lecture, d'criture, et d'excution ; ajoute au
groupe propritaire les droits de lecture et d'criture ; et supprime le droit de
lecture aux autres utilisateurs.
Les droits non concerns par les oprations d'ajout ou de retranchement restent
inchangs.
La seconde mthode est la reprsentation numrique octale ; elle associe chaque
droit une valeur :
4 la lecture.
Gauthier Catteau - Armando Martins
32
Regardons un peu sous le capot.
2 l'criture.
et 1 pour l'excution.
On associe chaque combinaison de droits la somme de ces chiffres, valeurs qu'on
attribue ensuite aux diffrentes catgories d'utilisateurs en les mettant bout bout
dans l'ordre habituel (propritaire, groupe, autres).
Ainsi la commande "chmod 765 fichier" mettra donc en place les droits suivant :
Lecture, criture, excution pour le propritaire (car 7=4+2+1).
Lecture et criture au groupe (car 6=4+2).
Et lecture et excution aux autres (car 5=4+1).
I$ Le run level5 ou niveau de -onctionnement

Dfinition
Le run level, ou niveau de fonctionnement, est une fonction utilise par le systme
d'init - systme V - notamment lors du dmarrage de votre systme.
Il existe diffrents run levels, qui correspondent chacun un ensemble
dapplications et de services mettre en marche et arrter. Ainsi, quand le
systme est dmarr, il passe par le run level 1 puis par le run level 2, et il est
possible de configurer les applications et dmon qui seront lancs ou arrts ce
moment.
Il existe en tout six run levels. Sous Ubuntu, les run levels se rpartissent ainsi :
0 : Arrt
1 : Mode mono-utilisateur
2 : Mode multi-utilisateurs (sans NFS)
3 : Mode multi-utilisateurs
4 : Inutilis
5 : Mode multi-utilisateurs avec serveur graphique
6 : Redmarrage

Remarque
Les run levels 0, 1 et 6 sont plus ou moins standardiss et communs tous les
systmes appliquant le systme V. Lorsque vous dmarrez votre systme en Safe-
Mode - deuxime ligne de Grub - vous restez en fait au run level 1. Lors d'un
dmarage normal , vous passez les niveaux 1, 2, puis 5 lorsque GDM se lance.
Notons qu'il n'y a pas de hirarchie ni de chronologie dans les run levels : il n'est
pas ncessaire de passer par 3 pour aller de 2 5, par exemple. Les niveaux
utiliss pour un fonctionnement continu de la machine - excluant donc ceux
permettant de la redmarrer ou de l'arrter - vont donc de un cinq, et il est
possible de passer de l'un l'autre. Pour cela, une simple commande telle sudo init
3 fonctionne, mais faites attention bien avoir enregistr vos donnes, car aucune
confirmation n'est demande !
F$ Les >crits systmes
Tous les services et applications qui doivent tre dmarrs ou arrts lors d'un
Gauthier Catteau - Armando Martins
33
Regardons un peu sous le capot.
passage d'un run level un autre le sont partir de scripts. Ceux-ci sont regroups
dans le dossier /etc/init.d/ . Ces scripts reoivent un paramtre qui peut-tre start,
stop, restart, etc. . .
chaque niveau correspond un dossier - typiquement /etc/rc.d/rc2.d pour le
niveau 2 - contenant des liens symboliques vers les fichiers scripts de /etc/init.d/ .
Ces liens symboliques portent des noms commenant par la lettre S ou K, suivie
d'un numro de deux chiffres.
Voici ce qu'il se passe lors d'un changement de run level dans le cas, par exemple,
d'un passage du niveau 5 au niveau 3 par la commande sudo init 4 :
Les scripts dont le nom commence par un K situs dans le dossier
correspondant au niveau de fonctionnement courant - ici 5 - sont lancs
dans l'ordre dcroissant des numros avec le paramtre stop, ce qui
anormalement pour effet d'arrter le service correspondant.
Les scripts du nouveau niveau - ici 3 - qui commencent par S sont activs
dans l'ordre croissant des numros avec le paramtre start.
Nous comprenons donc maintenant que les numros correspondent une priorit
permettant de dmarrer un service avant un autre - par exemple, il est prfrable
de dmarrer Xorg avant GDM. . .
Maintenant, si vous tes curieux, vous pouvez allez voir quels services sont
dmarrs quel niveau de fonctionnement sur votre ordinateur - clic droit sur un
service, puis proprits - et dsactiver ceux qui ne vous sont pas ncessaires : par
exemple, le gestionnaire d'imprimante HP si vous n'avez pas d'imprimante de cette
marque.
Pour s'adonner ces optimisations, une seule direction : Systme =>
Administration => Services.
Gauthier Catteau - Armando Martins
34
Regardons un peu sous le capot.

VI - Gestion 'vance
VI


Gestions des utilisateurs et des groupes. 39
Planification de tches : cron et atd. 41
L'accs distance par SSH. 44



'$ Gestions des utilisateurs et des &roues$
2$ Introduction
La liste des utilisateurs est habituellement stocke dans le fichier "/etc/passwd",
alors que le fichier "/etc/shadow" stocke les mots de passe chiffrs. Tous deux sont
de simples fichier texte, au format relativement simple, consultables et modifiables
avec un diteur de texte. Chaque utilisateur y est dcrit sur une ligne par plusieurs
champs spars par des deux-points " :".
3$ Liste des utilisateurs G/etc/assHdG$
Voici la liste des champs du fichier "/etc/passwd" :
identifiant (ou login) : il s'agit du nom de connection de l'utilisateur, par
exemple "gauthier".
mot de passe : il s'agit d'un mot de passe chiffr par la fonction sens
unique "crypt" ou "md5". La valeur "x" indique que le mot de passe chiffr
est stock dans "/etc/shadow".
uid : numro unique permettant d'identifier l'utilisateur.
gid : numro unique du groupe principal de l'utilisateur (Debian et Ubuntu
cre par dfaut un groupe spcifique pour chaque utilisateur).
gecos : champ de renseignements qui contient habituellement le nom
complet de l'utilisateur.
rpertoire de connection : attribu l'utilisateur pour qu'il stocke ses fichiers
personnels.
programme excuter aprs la connexion : Il s'agit gnralement d'un
interprteur de commandes (shell), donnant libre cours l'utilisateur pour
utiliser la machine. Si l'on prcise "/bin/false", l'utilisateur ne pourra pas se
connecter.
Gauthier Catteau - Armando Martins
35
4$ Le -ic)ier des mots de asse c)i--rs G/etc/s)adoHG$
Le fichier "/etc/shadow" contient les champs suivants :
identifiant (ou login).
mot de passe chiffr.
plusieurs champs de gestion de l'expiration du mot de passe.

Remarque : Sret du fichier "/etc/shadow".
Le fichier "/etc/shadow" contrairement son alter ego "/etc/passwd", est
inaccessible en lecture aux utilisateurs. Tout mot de passe stock dans
"/etc/passwd" est lisible par tous ; un indlicat peut alors entreprendre de le
"casser" par une mthode de force brute, consistant tout simplement chiffrer
successivement tous les mot de passe simples pour tenter de le dcouvrir. Cette
attaque, dite "du dictionnaire", qui dvoile les mots de passe mal choisis, n'est plus
possible avec le fichier "/etc/shadow".
I$ =odi-ier un comte ou mot de asse existant$
Quelques commandes permettent de modifier la plupart des informations stockes
dans ces bases de donnes. Chaque utilisateur peut ainsi changer de mot de passe,
sans doute le champ le plus variable, grce la commande "passwd".
"chfn" rserve au super utilisateur "root", intervient sur le champs "gecos".
"chsh" permet de changer de "shell de login", ou interprteur de commandes, mais
le choix des utilisateurs sera limit la liste des donne dans le fichier "/etc/shells ;
alors que l'administrateur pourra saisir le programme de son choix.
Enfin, la commande "chage" donnera l'administrateur la possibilit de modifier les
conditions d'expiration du mot de passe (l'option -l utilisateur rappelant la
configuration actuelle). On pourra d'ailleurs forcer l'expiration d'un mot de passe
grce la commande "passwd -e utilisateur", qui obligera l'utilisateur changer
son mot de passe la prochaine connexion.

Remarque
L'utilisation de la commande "usermod" permet aussi d'apporter des modifications
sur un compte utilisateur.
a) Bloquer un compte.
On peut se retrouver dans l'obligation de bloquer le compte d'un utilisateur, par
mesure disciplinaire ou dans le cadre d'un enqute par exemple. Il s'agit en fait de
l'empcher de se connecter nouveau sans dtruire son identit et ses fichiers.
Cela s'effectue simplement par la commande "passwd -l utilisateur" (-l = lock), ou
bloquer. La remise en service s'effectue de mme , avec l'option "-u" pour "unlock",
ou dbloquer.
J$ Liste des &roues G/etc/&rouG$
La liste des groupes est stocke dans le fichier "/etc/group", simple bas de donnes
textuelle au format comparable celui de "/etc/passwd" et qui utilise les champs
suivant :
identifiant (le nom du groupe).
Gauthier Catteau - Armando Martins
36
Gestion Avance
mot de passe (facultatif) : il ne sert qu' intgrer un groupe dont on n'est
pas habituellement membre (avec la commande "newgrp" ou "sg").
gid : numro unique identifiant le groupe.
liste des membres : liste des identifiants d'utilisateurs membres du groupe,
spare par des virgules.
Les commandes "groupadd" et "groupdel" permettent respectivement de crer et
de supprimer un groupe.
La commande "groupmod" modifie les informations d'un groupe (son gid ou son
identifiant).
La commande "passwd -g groupe" modifiera le mot de passe d'un groupe.
La commande "passwd -r -g groupe" supprimera le mot de passe.
K$ +ration de comtes$
L'une des premires actions de l'administrateur est de crer les comptes de ses
utilisateurs, ce qui s'effectue trs simplement avec la commande "adduser". Celle ci
prend simplement en argument l'identifiant de l'utilisateur crer.
"adduser" pose quelques questions avant de crer le compte, mais son droulement
offre peu de surprises. Le fichier de configuration "/etc/adduser.conf offre toutefois
quelques paramtrages intressants. On pourra ainsi prvoir automatiquement un
quota chaque nouvel utilisateur en dupliquant celui d'un modle. On pourra aussi
modifier l'emplacement du compte utilisateur, ce qui ne prsente que rarement de
l'utilit, c'est le cas si les utilisateurs sont si nombreux qu'il est souhaitable de
rpartir leurs comptes sur plusieurs disques. On pourra encore choisir un autre
interprteur de commandes par dfaut.
La cration du compte fabrique le rpertoire personnel et y recopie le contenu du
rpertoire modle "/etc/skel", afin de fournir quelques fichiers standard
l'utilisateur frachement crer.
Dans certains cas, il sera utile d'ajouter un utilisateur dans un groupe, en particulier
pour lui confrer des droits supplmentaires. Par exemple, un utilisateur intgr au
groupe "audio" pourra accder aux priphriques son.
Pour ce faire, on procde avec la commande "adduser utilisateur groupe".
($ Plani-ication de tLc)es * cron et atd$
2$ Introduction
"cron" est le dmon en charge d'excuter des commandes planifies et rcurrentes
(chaque jour, chaque semaine, etc.) ; "atd" est celui qui s'occupe des commandes
excuter une seule fois, un instant prcis et futur.
3$ +ron
Dans un systme Unix, de nombreuses tches sont rgulirement planifies :
La rotation des logs.
La mise jour de le base de donnes du programme "locate".
Gauthier Catteau - Armando Martins
37
Gestion Avance
Les sauvegardes.
Des scripts d'entretien (comme le nettoyage des fichiers temporaires).
Par dfaut, tous les utilisateurs peuvent planifier l'excution de tches. C'est
pourquoi chacun dispose de sa propre "crontab", ou il peut consigner les
commandes planifier. Il peut la modifier en excutant la commande "crontab -e"
(ses informations stockes dans le fichier "/var/spool/cron/crontabs/utilisateur").

Remarque : Restreindre "cron" ou "atd".
On peut restreindre l'accs "cron" en crant le fichier d'autorisation explicite
"/etc/cron.allow", o l'on consignera les seuls utilisateurs autoriss planifier des
commandes. Tous les autres seront automatiquement dpourvus de cette
fonctionnalit. Inversement pour n'en interdire qu'un ou deux trouble-fte, on
crira leur nom dans le fichier d'interdiction explicite "/etc/cron.deny". Le mme
mcanisme encadre "atd, avec les fichiers "/etc/at.allow" et "/etc/at.deny".
4$ Les -ic)iers de cron
L'utilisateur root dispose de sa "crontab" personnelle, mais peut galement
employer le fichier "/etc/crontab" ou dposer des tches supplmentaires dans le
rpertoire "/etc/cron.d". Ces deux dernires solutions ont l'avantage de pouvoir
prciser l'utilisateur sous l'identit duquel excuter les commandes.
Le paquet "cron" propose par dfaut des commandes planifies qui xecutent :
Une fois par heure les programmes du rpertoire "/etc/cron.hourly".
Une fois par jour les programmes du rpertoire "/etc/cron.daily".
Une fois par semaine les programmes du rpertoire "/etc/cron.weekly".
De nombreux paquets profitent de ce services pour dposer dans ces rpertoires
des scripts de maintenance ncessaires au fonctionnement optimal de leur service.
I$ 9ormat d'un -ic)ier GcrontabG$
Chaque ligne significative d'une "crontab" dcrit une commande planifie grce aux
six champs suivants :
La conditions sur les minutes (nombres compris de 0 59).
La condition sur les heures (de 0 23).
La condition sur le jour du mois (de 1 31).
La condition sur le mois (de 1 12).
La condition sur le jour de la semaine (de 0 7, 0 et 7 correspondant au
dimanche ; il est galement possible d'employer les trois premires lettre du
nom du jour en anglais comme "sun", "mon", etc...).
La commande excuter (quand toutes les conditions prcdentes sont
remplies).
Chaque condition peut s'exprimer sous la forme d'une numration de valeurs
possibles (spares par des virgules).
La syntaxe "a-b" dcrit l'intervalle de toutes les valeurs entre "a" et "b".
La syntaxe "a-b/c dcrit un intervalle avec un incrment de "c" (exemple : 0-10/2
correspond 0,2,4,6,8,10).
Le joker * reprsentent toutes les valeurs possibles.
Gauthier Catteau - Armando Martins
38
Gestion Avance

Exemple : Exemple de "crontab" :
#Format
#min heu jou moi jsem commande
#Tlcharge les donnes tous les soirs 19h25.
25 19 * * * $HOME/bin/get.pl
#La matin 8h00, en semaine (lunid vendredi)
00 08 * * 1-5 $HOME/bin/fait_quelquechose
#Redmarre le proxy IRC aprs chaque reboot
@reboot /usr/bin/dircproxy

Conseil : Raccourci textuels pour "cron".
Des abrviations, qui remplacent les cinq premiers champs d'une entre de
"crontab", dcrivent les planifications les plus classiques.
Les voici :
@yearly : une fois par an (le premier janvier 0h00).
@monthly : une fois par mois (le premiers du mois 0h00).
@weekly : une fois par semaine (le dimanche 0h00).
@daily : une fois par jour ( 0h00).
@hourly : une fois par heure (au dbut de chaque heure).
@reboot : une fois aprs chaque dmarrage de l'ordinateur.
J$ 7mloi de la commande GatG$
La commande "at" prvoit l'excution d'une commande un moment ultrieur. Elle
prend en paramtre l'horaire et la date prvus et sur son entre standard la
commande excuter. Cette dernire sera excute comme si elle avait t saisie
dans un interprteur de commandes. "at" conserve d'ailleurs l'environnement
courant afin de pouvoir travailler exactement dans les mmes conditions que celles
de la planification. L'horaire est indiqu en suivant les conventions habituelles :
"16 :12" reprsente "16h12". La date peut tre prcise au format "JJ.MM.AA"
(27.07.08 reprsentent ainsi 27 juillet 2008). En son absence, la commande sera
excute ds que l'horloge atteindra l'heure signale (le jour mme ou le
lendemain).
On peut encore crire explicitement "today" (aujourd'hui) ou "tomorrow" (demain).

Exemple : Exemple d'emploi de la commande "at".
$cat <<FIN | at 16 :12 27.07.07
ec!o "#o$eu% anniversaire" | mai& moi'e%em(&e.fr
FIN
)arnin* : commands )i&& +e e%ecuted usin* /+in/s!
#o+ 2 at 2007-07-27 16 :12

Une autre syntaxe permet d'exprimer une dure d'attente : "at now + nombre
priode". Priode peut valoir minutes, hours (heures, days (jours) ou weeks
(semaines). Nombre indique simplement le nombre de ces units qui doivent
s'couler avant excution de la commande.
On peut toujours annuler une tche planifie avec la commande "atrm numro-de-
tche". Le numro de tche est indiqu par la commande "at" lors de la
planification mais on pourra le retrouver grce la commande "atq", qui donne la
Gauthier Catteau - Armando Martins
39
Gestion Avance
liste des commandes actuellement planifies.
+$ L'accs " distance ar >>E$
2$ Introduction
SSH signifie Secure SHell.
C'est un protocole qui permet de faire des connexions scurises (chiffres) entre
un serveur et un client SSH. Nous allons utiliser le programme OpenSSH, qui est la
version libre du client et du serveur SSH.
3$ =ise en &arde sur la scurit$
Nature du problme.
Installer un serveur SSH permet aux utilisateurs d'accder au systme distance,
en rentrant leur "login" et leur mot de passe (ou avec un mcanisme de cls). Cela
signifie aussi qu'un pirate peut essayer d'avoir un compte sur le systme (pour
accder des fichiers sur le systme ou pour utiliser le systme comme une
passerelle pour attaquer d'autres systmes) en essayant plein de mots de passes
diffrents pour un mme login (il peut le faire de manire automatique en s'aidant
d'un dictionnaire lectronique). On appelle a une attaque en force brute.
Il y a donc trois contraintes majeures pour garder un systme scuris aprs avoir
install un serveur SSH :
Avoir un serveur SSH jour au niveau de la scurit, ce qui doit tre le cas
si vous faites consciencieusement les mises jour de scurit en suivant la
procdure de votre distribution.
Que les mots de passes de TOUS les utilisateurs soient suffisamment
complexes pour rsister une attaque en force brute.
a) Choisir des mots de passe complexes.
Un mot de passe complexe est un mot de passe qui ne veut rien dire, qui n'est pas
dans le dictionnaire et qui comporte au moins 8 caractres, de prfrence avec un
mlange de lettres minuscules, de lettres majuscules, de chiffres et de caractres
de ponctuation.
Une bonne mthode pour obtenir un mot de passe complexe et facile retenir
consiste choisir une phrase et prendre la premire lettre de chaque mot, avec
quelques complications en plus.

Exemple
la phrase "Linux, moi j'y comprends rien de rien !" donne le mot de passe
L5m#'ycr3r
Gauthier Catteau - Armando Martins
40
Gestion Avance
4$ Installation et con-i&uration de >>E$
a) Installation du client et du serveur SSH.
Le client SSH est disponible dans le paquet openssh-client, qui est pr install.
Pour pouvoir vous connecter distance, vous pouvez maintenant installer le
serveur SSH :
# aptitude install openssh-server
L'installation comporte une tape de gnration des clefs de cryptage. Finalement,
le serveur SSH se lance.
b) Configuration du serveur SSH.
Le fichier de configuration du serveur SSH est "/etc/ssh/sshd_config". ne pas
confondre avec le fichier "/etc/ssh/ssh_config", qui est le fichier de configuration du
client SSH.
Nous allons vous commenter les lignes les plus importantes de ce fichier de
configuration :
Port 22 : Signifie que le serveur SSH coute sur le port 22, qui est le port
par dfaut de SSH. Vous pouvez le faire couter sur un autre port en
changeant cette ligne. Vous pouvez aussi le faire couter sur plusieurs ports
la fois en rajoutant des lignes similaires.
PermitRootLogin yes : Signifie que vous pouvez vous logguer en root par
SSH. Vous pouvez changer et mettre "no", ce qui signifie que pour vous
connecter en root distance, vous devrez d'abord vous connecter par SSH
en tant que simple utilisateur, puis utiliser la commande su pour devenir
root. Sans cel, un pirate n'aurait qu' trouver le mot de passe du compte
root, alors que l, il doit trouver votre login et votre mot de passe.
Si vous avez modifi le fichier de configuration du serveur, il faut lui dire de relire
son fichier de configuration :
# /etc/init.d/ssh reload
Reloading OpenBSD Secure Shell server's configuration
I$ >e connecter ar >>E$
a) Authentification par mot de passe.
C'est la mthode la plus simple. Depuis la machine cliente, tapez :
$ ssh login@nom_DNS_du_serveur_SS
Si c'est la premire connexion SSH depuis ce client vers ce serveur, il vous
demande si le fingerprint de la cl publique prsente par le serveur est bien
le bon. Pour tre sr que vous vous connectez au bon serveur, vous devez
connatre de faon certaine le fingerprint de sa cl publique et la comparer
celle qu'il vous affiche. Si les deux fingerprints sont identiques, rpondez
yes, et la cl publique du serveur est alors rajoute au fichier
"~/.ssh/known_hosts".
Ensuite, entrez votre mot de passe... et vous verrez apparatre le prompt, comme
si vous vous tiez loggu en local sur la machine.
Gauthier Catteau - Armando Martins
41
Gestion Avance
b) Authentification par cl.
Introduction
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent s'authentifier
grce la cryptographie asymtrique et son couple de cls prive/publique, comme
le fait le serveur SSH auprs du client SSH.
Gnrer ses cls.
Pour gnrer un couple de cls DSA, tapez :
$ ssh-keygen -t dsa
Par dfaut (il demande confirmation lors du processus de cration), la cl prive est
stocke dans le fichier ~/.ssh/id_dsa avec les permissions 600 et la cl publique est
stocke dans le fichier ~/.ssh/id_dsa.pub avec les permissions 644.
Lors de la cration, il vous demande une pass phrase qui est un mot de passe pour
protger la cl prive. Cette pass phrase sert crypter la cl prive. La pass phrase
vous sera alors demande chaque utilisation de la cl prive, c'est dire chaque
fois que vous vous logguerez en utilisant cette mthode d'authentification. Un
mcanisme appel ssh-agent permet de ne pas rentrer le mot de passe chaque
fois... comme nous le verrons un peu plus loin dans ce chapitre.

Remarque
Vous pouvez tout moment changer la pass phrase qui protge votre cl prive
avec la commande "ssh-keygen -p".
c) Fichier authorized_keys
Autoriser votre cl publique.
Pour cela, il suffit de copier votre cl publique dans le fichier
"~/.ssh/authorized_keys" de la machine sur laquelle vous voulez vous connecter
distance. La commande suivante permet de raliser cette opration via SSH :
$ ssh-copy-id -i ~/.ssh/id_dsa.pub login@nom_DNS_du_serveur
Une fois votre cle publique copi sur la machine distante il suffira d'tablire une
simple connections la machine distante.
J$ Trans-ert de -ic)iers ar >>E$
Utiliser SCP.
Pour illustrer la syntaxe, je vais donner quelques exemples :
pour transfrer le fichier test1.txt situ dans le rpertoire courant vers le
home du compte toto de la machine ordi1.exemple.org sur laquelle tourne
un serveur SSH :
$ scp test1.txt toto@ordi1.exemple.org:
pour rcuprer le fichier test2.txt situ le home de l'utilisateur toto de la
machine ordi2.exemple.org et l'crire dans le rpertoire courant :
$ scp toto@ordi2.exemple.org:/usr/local/*.txt test-scp
pour transfrer l'intgralit du sous-rpertoire test-scp du rpertoire courant
vers le sous rpertoire incoming du home de l'utilisateur toto de la machine
ordi1.exemple.org :
$ scp -r test-scp toto@ordi1.exemple.org:incoming
Gauthier Catteau - Armando Martins
42
Gestion Avance
K$ >e connecter ar >>E sans taer de mot de asse$
Le principe.
Cette section s'adresse ceux qui utilisent un couple de cls publiques / prives, et
qui ont crypt leur cl prive avec une pass phrase (c'est la configuration la plus
sre). Par consquent, le client SSH demande la pass phrase chaque utilisation
des cls pour s'authentifier.
Pour viter d'avoir taper systmatiquement sa pass phrase, il faut utiliser ssh-
agent : ce programme tourne en tche de fond et garde la clef en mmoire. La
commande ssh-add permet de donner sa cl ssh-agent. Ensuite, quand vous
utilisez le client SSH, il contacte ssh-agent pour qu'il lui donne la cl.
a) La pratique.
Dans une console, ouvrez un screen avec ssh-agent en tche de fond :
$ ssh-agent screen
Puis donnez votre cl l'agent :
$ ssh-add
Il vous demande alors votre pass phrase. Maintenant que votre cl a t transmise
l'agent, vous pouvez vous connecter sans entrer de mot de passe toutes les
machines pour lesquelles vous avez mis votre cl publique dans le fichier
~/.ssh/authorized_keys.
Gauthier Catteau - Armando Martins
43
Gestion Avance

VII - (as) *
l'interrteur de
commandes
VII


Bash 49
Les principales commandes console (BASH) sous Linux. 51
Mon premier script. 53
Quelques conseils concernant les commentaires. 54
Le passage de paramtres 54
Les variables. 55
Protection des expressions. 56
Structures de contrle 58




La console est une interface entre votre systme et vous. Elle s'appuie sur un
interprteur de commandes (shell en anglais), sorte de langage. Il en existe
plusieurs dans le monde UNIX mais le plus utilis s'appelle Bash. Il est install par
dfaut sur probablement toutes les distributions Linux et contient des centaines de
commandes diffrentes.
'$ (as)
Les consoles
Bash peut tre utilis directement en ligne de commande, c'est--dire en dehors de
toute interface graphique (KDE, Gnome etc). Il existe aussi des interfaces
graphiques. Il en existe de nombreuses : Gnome-Terminale, konsole, aterm, eterm,
xterm... Leurs diffrences tant cosmtiques car elles utilisent finalement le mme
interprteur de commande, Bash.
Vous accdez ainsi Bash si, aprs le dmarrage du noyau Linux, vous ne vous
connectez pas un environnement graphique (KDE, Gnome...). Sa puissance est
alors son maximum car le processeur ne s'occupe pas de grer des fentres.
Pour ouvrir une console, le plus simple est d'explorer le menu de l'environnement
graphique sa recherche ou bien de cliquer l'icne probablement installe dans la
barre des tches.
Les terminaux virtuels
Que vous soyez connect une interface graphique ou non, il existe un moyen
pratique d'ouvrir rapidement une ligne de commande supplmentaire. Le raccourci
clavier est CRTL-ALT-Fx. Remplacez le x par un chiffre de 1 7. Exemple : CRTL-
ALT-F1. Les 6 premiers ouvrent des terminaux virtuels (auxquels il faudra vous
Gauthier Catteau - Armando Martins
45
connecter : identifiant et mot de passe) et le 7m ramne l'interface graphique
(si ouverte). C'est surtout pratique quand aucune interface graphique (KDE,
Gnome...) n'est ouverte, vous pouvez ainsi lancer en parallle des commandes.
Le prompt
Le prompt est une invite de commande. C'est le message que la console place
chaque dbut de ligne, en attendant votre commande.
Exemple :
luteolaMlocal)ost N O
Ceci indique que le simple utilisateur (symbole $) 'luteola' travaille sur l'ordinateur
'localhost' est qu'il est dans son rpertoire personnel (symbole ~) : /home/luteola
rootMlocal)ost /bin P
Dans cet exemple, l'administrateur (root et symbole #) travaille dans le dossier
/bin.
Sensibilit la casse
La console est sensible la casse (majuscule / minuscule) ! Ainsi, ls est une
commande alors que L> ne veut rien dire. Idem pour l'criture des dossiers et
fichiers. La moindre faute ou espace mal plac aura des consquences.
crire des chemins d'accs
La structure des rpertoires sous Linux est pyramidale, la pointe tant appele la
racine. En console, on peut bien sr se dplacer dans ces rpertoires.
Pour sparer des rpertoires dans un chemin, on utilise des slashs /, comme on le
ferait pour une adresse Internet en fait. N'utilisez donc pas les anti-slash, comme
vous le demanderai Windows. Exemple : /home/george/musique.
Les anti-slash servent plutt insrer (on dit 'protger') des caractres spciaux ou
des espaces. Crez ' la souris' un rpertoire "Nouveau Dossier" sur votre bureau
(clic droit, Nouveau...) puis en console tapez cd ~/Desktop/ et utilisez la touche
Tabulation (qui autocomplte un chemin). 'Nouveau' et 'dossier' sont spars par
un anti-slash.
Autocompltion des commandes
Bash peut "deviner" la fin d'un chemin ou d'une commande. Ceci s'opre par la
touche 'tabulation'. Trs pratique pour acclrer la saisie de commandes ou
retrouver une syntaxe ! Exemples :
Tapez up et appuyez sur 'tabulation'. Bash affiche alors la liste des
commandes commenant par 'up'.
Tapez cd /bi puis 'tabulation'. Bash complte la fin du chemin s'il existe, cd /
bin/ en l'occurrence.
Mais encore plus fort avec "bash_completion", il peut mme complter lors de
l'installation de logiciels.
Par exemple sur Ubuntu ou Debian si vous tapez "source /etc/bash_completion" et
qu'en suite vous tapez "aptitude install fire" puis la touche "tabulation", il va vous
donn tous les logiciels disponibles qui commencent par "fire"
Historique des commandes
En utilisant les flches haut et bas, vous parcourez l'historique des commandes
tapes sous votre login.
Ou avec la commande "history" il peut vous retrouver des commandes que vous
avez tapez le matin ou la veille.
Exemple : $ history | grep cat
Gauthier Catteau - Armando Martins
46
Bash : l'interprteur de commandes
CTRL-R permet galement de faire une recherche rapide sur une commande.
Jockers
Vous pouvez utiliser des jokers dans une commande :
? reprsente n'importe quel caractre (a, Y, 3, @...).
* reprsente n'importe quel chane de caractres (un mot, une phrase...).
Exemple : ls photo* affiche la liste des fichiers ou dossiers commenant par
le mot photo.
*[a]* reprsente une chane contenant la lettre a.
*[!a]* reprsente une chane ne contenant pas la lettre a.
[abc]* reprsente une chane commenant par la lettre a,b ou c.
[a-d]* reprsente une chane commenant par la lettre a, b, c ou d.
($ Les rinciales commandes console Q('>E@ sous
Linux$
Voici une liste des commandes console Bash les plus utilises en routine. Certaines
plus que d'autres. N'oubliez pas que souvent des interfaces graphiques existent
pour ces commandes.
Commandes de base :
ls : Afficher la liste des dossier et fichiers d'un rpertoire.
cd : Se dplacer vers un rpertoire.
pwd : Affiche le nom du rpertoire courant.
mkdir : Crer un rpertoire
rmdir : Supprimer un rpertoire.
rm : Effacer un fichier ou un rpertoire.
cp : Copier un dossier ou un rpertoire.
mv : Dplacer (renommer) un dossier ou un rpertoire.
ln : Crer un lien vers un fichier.
touch : Permet de changer la date d'un fichier l'heure courante ou de crer
un fichier s'il n'existe pas (touch /home/user/test).
alias : Crer un alias d'une commande ( exemple : alias rm="rm -i" )
Manipulations de texte :
cat : Afficher le contenu d'un fichier texte. Concatner des fichiers.
more, less : Afficher le contenu d'un fichier texte intelligemment.
grep : Rechercher une chane de caractre.
sed : Remplacer des occurrences de texte dans des fichiers.
echo : Envoyer un message texte. Par exemple vers un fichier.
tail : Naffiche que les dernires lignes dun fichier (-n permet de spcifier le
nombre de lignes afficher).
head : Comme tail, mais affiche les N premires lignes dun fichier (N=10
par dfaut).
sort : Trier un fichier texte.
uniq : Supprime ou compte les doublons sur un fichier trier.
Gauthier Catteau - Armando Martins
47
Bash : l'interprteur de commandes
wc : Compte le nombre de lignes, mots et caractres.
awk : Remise en forme de donnes texte.
Installer des logiciels :
urpmi : Installer des paquetages RPM sous Mandriva.
apt-get, aptitude : Installer des paquets DEB (Mepis, Ubuntu, Knoppix,
Debian...).
alien : Convertir des paquetages RPM, DEV, Tar.Gz entre eux.
emerge : Installer des ebuilds Gentoo.
up2date, yum: Mise jour sur Redhat.
Recherche :
whereis, which : Rechercher une application.
find : Rechercher un dossier ou un fichier.
locate : Idem mais dans une base de donnes. Plus rapide.
du : Affiche la taille des rpertoires.
Utilisateurs, droits et permissions :
adduser, addgroup, passwd, usermod : Gestion des utilisateurs, des groupes
et des mots de passe.
su, sudo : Passer la main l'administrateur (root) ou un autre utilisateur.
chmod : Modifier les permissions sur un fichier.
chown : Changer le propritaire/groupe d'un fichier.
chgroup : Changer le groupe d'un fichier.
chroot : Modifier la racine. Parfois trs utile.
Gestion des processus / tches :
ps & top : Voir les processus en cours.
pidof : Affiche le Process IDentifier d'une application.
kill, killall : Tuer un processus en cours.
fuser : Afficher/tuer les processus accdant un fichier/dossier.
nice : Fixe la priorit d'excution d'une tche.
renice : Modifier la priorit d'excution d'une tche en cours.
init : Changer de "run level" : sortir de X, rebooter, teindre.
pstree : Afficher l'arbre gnalogique des processus lancs.
cron : Planifier des tches priodiquement (outil crontab).
lsof : listes les fichiers ouverts.
Tlchargement
wget, curl : Outils permettant de tlcharger les fichiers passs en
paramtre.
links : Navigateur web en ligne de commande.
Archivage
tar : Rassembler dans un fichier une liste de fichiers ou de rpertoires.
gzip, bzip2 : Compresser un fichier au format gzip ou bzip2.
zip, unzip : Compresser un fichier au format zip.
Gauthier Catteau - Armando Martins
48
Bash : l'interprteur de commandes
Enchanements de commandes :
> >> : Redigirer une sortie de commande vers un fichier.
; || && : Enchaner des commandes squentielle.
| : Lancer des commandes simultanment via un 'pipe'.
Variables d'environnement
export : Charge une variable dans l'environnement courant. ( export
http_proxy=http://monproxy :3128/ )
unset : Supprime cette variable. ( unset http_proxy )
Administration du systme :
fdisk, cfdisk : Formater et partitionner un disque.
lsmod : Afficher les modules du noyau prsents en mmoire.
modprobe : Manipulation de modules chargeables dans le noyau.
mount, umount : Monter/dmonter des partitions dans l'arborescence de
fichiers (/etc/fstab).
lspci, lsusb : Affiche les priphriques branchs sur ports PCI, AGP ou USB.
lshw : Liste votre matriel de manire propre.
dmesg Affiche les messages du noyau.
+$ =on remier scrit$
Un script est une suite d'instructions lmentaires qui sont excutes de faon
squentielle (les unes aprs les autres) par le langage de script. Dans cet article
nous nous limiterons l'utilisation du shell comme langage, et en particulier du
shell bash. Attention, n'esprez pas que le prsent document constitue un manuel
complet de programmation ! C'est une courte introduction qui nous l'esprons, vous
permettra d'crire de petits scripts qui vous rendront de prcieux services.
Le langage Bash gre notamment :
La gestion des entres-sorties et de leur redirection.
Le passage de paramtres.
Les variables dfinies par le programmeur et des variables systmes.
Des structures conditionnelles et itratives.
Les fonctions internes.
Pour commencer, il faut savoir qu'un script est un fichier texte standard pouvant
tre cr par n'importe quel diteur : vi, emacs, kedit, gnotepad, ou autre. D'autre
part, conventionnellement, un script commence par une ligne de commentaire
contenant le nom du langage utiliser pour interprter ce script, soit dans notre
cas : /bin/bash (on parle alors de "script shell").
Nous allons donc commencer par crire un simple script que l'ont va nommer
"bonjour_monde" et qui nous affichera "Bonjour monde !" lors de son xecution :
,-/+in/s!
ec!o ".on#our/ 0onde -"
ec!o "1n (remier scri(t est n2."
Comment on lexcute ? Cest simple il suffit de taper :
Gauthier Catteau - Armando Martins
49
Bash : l'interprteur de commandes
3user'+ecane user4$ s! +on#our5monde
Ou bien on peut le rendre excutable avec la commande chmod comme ceci :
[user@becane user]$ chmod +x bonjour_monde
Des lors nous pourrons excuter notre script de cette faon :
[user@becane user]$ ./bonjour_monde

Rappel
Rsumons : un script shell commence par : #!/bin/bash, il contient des commandes
du shell et est rendu excutable par chmod +x.
D$ .uel/ues conseils concernant les commentaires$
Dans un script shell, est considr comme un commentaire tout ce qui suit le
caractre # et ce, jusqu la fin de la ligne. Usez et abusez des commentaires :
lorsque vous relirez un script six mois aprs lavoir crit, vous serez bien content de
lavoir document. Un programme nest jamais trop document, en revanche il peut
tre mal document ! Un commentaire est bon lorsquil dcrit pourquoi on fait
quelque chose, pas quand il dcrit ce que lon fait.
Exemple :
,-/+in/s!
, (our i (arcourant tous &es fic!iers/
for i in ./6 7 do
, co(ier &e fic!ier vers .+a8
c( $i $i.+a8
, fin (our
done
Que fait le script ? Les commentaires ne lexpliquent pas ! Ce sont de mauvais
commentaires.
En revanche :
,-/+in/s!
, on veut faire une co(ie de tous &es fic!iers du
r2(ertoire courant
for i in ./6 7 do
, sous &e nom 6.+a8
c( $i $i.+a8
done
L au moins, on sait ce quil se passe (il nest pas encore important de connatre les
commandes de ces deux fichiers).
7$ Le assa&e de aramtres
Un script ne sera, en gnral, que dune utilisation marginale si vous ne pouvez pas
modifier son comportement d'une manire ou d'une autre. On obtient cet effet en
passant un (ou plusieurs) paramtre(s) au script via la ligne de commande.
Voyons comment faire cela.
Soit le script essai01 :
Gauthier Catteau - Armando Martins
50
Bash : l'interprteur de commandes
,-/+in/s!
ec!o &e (aram9tre :$1 est :"$1:"
ec!o &e (aram9tre :$2 est :"$2:"
ec!o &e (aram9tre :$; est :"$;:"
Que fait-il ? Il affiche les uns aprs les autres les trois premiers paramtres du
script, donc si lon tape :
$ ./essai01 (aram9tre un
&e (aram9tre $1 est "(aram9tre"
&e (aram9tre $2 est "un"
&e (aram9tre $; est ""
Donc, les variables $1, $2. $9 contiennent les mots numro 1, 2. 9 de la ligne
de commande.
Attention : par mot on entend ensemble de caractres ne contenant pas de
caractres de sparations. Les caractres de sparation sont l'espace, la tabulation,
le retour chariot quand c'est possible et le point virgule.
Vous avez sans doute remarqu que jai utilis les caractres : \$ la place de $
ainsi que \" la place de " dans le script. Pour quelle raison ?
C'est simple : si l'on tape echo "essai" on obtient : essai, si l'on veut obtenir "essai"
il faut dire echo que le caractre " n'indique pas le dbut d'une chane de
caractre (comme c'est le comportement par dfaut) mais que ce caractre fait
partie de la chane : on dit que l'on chappe ou protge le caractre " en
tapant \". En chappant le caractre \ (par \\) on obtient le caractre \ sans
signification particulire.
On peut dire que le caractre \ devant un autre lui fait perdre sa signification
particulire s'il en a une, ne fait rien si le caractre qui suit \ n'en a pas.
9$ Les variables$
La programmation sous shell ncessite naturellement des variables, pour stocker
des informations temporaires, accder des paramtres, etc. Le contenu d'une
variable est considr comme une chane de caractres, sauf si on indique
explicitement qu'elle doit tre trait comme une variable entire, qui peut tre
utilise dans des calculs arithmtiques. De plus, le shell ne permet pas de
manipuler directement des donnes en virgule flottantes.
A la diffrence des langages compils habituels, une variable n'a pas tre
dclare explicitement. Ds qu'on lui affecte une valeur, elle commence exister.
Cette affectation prend la forme 'variable=valeur' sans espace autour du signe gal.
Le message d'erreur 'i : command not found' est peut-tre le plus connu des
utilisateurs du shell.
Exemple :
$ i < 1
+as! : i : command not found
En raison des espaces autour du signe gal, Bash a cru que l'on essayait d'invoquer
la commande 'i' en lui transmettant les arguments '=' et '1'.
La bonne syntaxe est la suivante :
$ i<1
Pour accder au contenu d'une variable, il suffit de prfixer son nom avec le
caractre '$'. Il ne faut pas confondre ce prfixe des variables avec le symbole
Gauthier Catteau - Armando Martins
51
Bash : l'interprteur de commandes
d'invite du shell qui est gnralement le mme caractre '$'. La commande echo
affiche simplement le contenu de la variable.
$ ec!o $i
1
Le nom attribu une variable peut contenir des lettres, des chiffres, ou le
caractre soulign '_'.
Voyons quelques exemples :
$ varia+&e<12
$ ec!o $varia+&e
12
Il faut donc comprendre que le shell a remplac la chane $variable par sa valeur,
12, avant d'appeler la commande 'echo'. Cette dernire a donc t invoqu par la
ligne de commande 'echo 12'.
$ varia+&e<a+c def
+as! : def : command not found
Ici le shell n'a pas pu interprter correctement cette ligne, car il a cru quelle se
composait d'une affectation 'variable=abc', suivie d'une commande nomme 'def'
(syntaxe rarement utilis, mais autorise). Il faut lui indiquer que les mots droite
du signe gal forment une seul chane de caractres. On emploie pour cela les
guillemets droits :
$ varia+&e<"a+c def"
$ ec!o $varia+&e
a+c def
Nous pouvons aussi vrifi qu'une variable qui n'a jamais t affecte est
considre comme une chane vide :
$ ec!o $ine%istante
Elles sont gres par le systme et s'avrent trs utiles dans les scripts. Bien
entendu, elles ne sont accessibles qu'en lecture.
Ces variables sont automatiquement affectes lors d'un appel de script suivi d'une
liste de paramtres. Leurs valeurs sont rcuprables dans $1, $2 ...$9.
O0 : C'est la valeur de sortie de la dernire commande. Elle vaut 0 si la commande
s'est droule sans problme.
O1 : Cette variable contient le nom du script qui a t appel.
O2 OR : Les (ventuels) premiers arguments passs l'appel du script, comme
vue prcdemment.
OP : Le nombre d'arguments passs au script.
OS : La liste des arguments partir de $1.
OO : Le numro PID du processus courant.
O6 : le n PID du processus fils.
G$ Protection des exressions$
Il peut arriver que certaines expressions possdent des caractres qui ont une
signification particulire pour le shell, et que nous ne souhaitions pas qu'elles soient
interprts par ce dernier.
Gauthier Catteau - Armando Martins
52
Bash : l'interprteur de commandes
Par exemple, afficher le prix amricain '$5' n'est pas facile :
$ ec!o $=
$ ec!o "$="
En effet, le shell peut en dduire que vous souhaitez afficher le contenu du
cinquime paramtre positionnel, vide en l'occurrence. De mme, le symbole '#'
sert introduire un commentaire qui s'tend jusqu' la fin de la ligne, et le sens
d'un message peut en tre modifi :
$ ec!o en Fa , ou en >i ?
en Fa
Une autre surprise attend le programmeur qui veut raliser un joli cadre autour du
titre de son script :
$ ec!o 666666666666666666666666666666
toto titi tata tete
Le caractre '*' remplace n'importe quelle chane dans un nom de fichier. La
commande ec)o reoit donc en argument la liste des fichiers du rpertoire courant.
La solution adquate consiste protger le caractre spcial de l'interprtation du
shell. Cela peut s'effectuer de plusieurs manires. On peut ainsi utiliser le caractre
backslash (barre oblique inverse) '\' , les apostrophes ' ', ou encore les guillemets
" ".
Protection par le caractre backslash.
Ce caractre sert dsactiver l'interprtation du caractre qu'il prcde. Ainsi, on
peut crire :
$ ec!o :$=
$=
$ ec!o en Fa :, ou @o :,
en Fa , ou @o ,
$ ec!o :6:6:6
666
Le caractre backslash peut servir prfixer n'importe quel caractre, y compris
lui-mme :
$ ec!o un :: (r2c9de :$=
un : (r2c9de $=
Lorsqu'il prcde un retour chariot, le backslash a pour effet de l'liminer et la
saisie continue sur la ligne suivante.
$ ec!o d2+ut :
et fin.
d2+ut et fin.
Protection par apostrophes.
La protection des expressions par un backslash qui prcde chaque caractre
spcial est parfois un peu fastidieuse, et on lui prfre souvent le mcanisme de
protection par apostrophes, qui permet de manipuler toute l'expression en une
seule fois. Entre des apostrophes tous les caractres rencontrs perdent leur
signification spciale. Cela signifie que le backslash est un caractre comme les
autres, et que l'on ne peut pas l'employer pour protger une apostrophe. Le seul
caractre qui ne puisse pas tre inclus dans une chane protger par des
apostrophes est donc l'apostrophes lui mme.
$ ec!o A,:s"B|A
Gauthier Catteau - Armando Martins
53
Bash : l'interprteur de commandes
,:s"B|
Lorsqu'un retour chariot est prsent dans une chane entre apostrophes, la
reprsentation du code est inchange :
$ ec!o Ad2+ut
mi&ieu
et finA
d2+ut
mi&ieu
et fin
Protection par guillemets.
La protection par des apostrophes est totale, chaque caractre garde sa
signification littrale. Il arrive pourtant que l'on prfre quelque chose d'un peu
moins strict. La protection par des guillemets est plus adapte.
Entre les guillemets, les caractres '$', apostrophes, et backslash retrouvent leur
significations spciales, alors que les autres sont rduits leur expressions
littrales. En fait, le backslash et le '$' n'ont un sens particulier que s'ils sont suivis
d'un caractre pour lequel l'interprtation spciale a un sens.
Voyons quelques exemples :
$ C<"C.D @EF"
$ .<"$C $ :$C : :" "
$ ec!o $.
C.D @EF $ $C : "
Dans l'affectation de la variable B, le premier '$' est suivi de A ; l'valuation fournit
le contenu de la variable A.
Le deuxime '$' est suivi par un espace, et une interprtation autre que littrale
n'aurait pas de sens.
Le troisime '$' est prcd d'un backslash, il n'a donc pas de sens particulier, et
l'on affiche les deux caractres $A.
Le backslash suivant prcde un espace, la seule interprtation est donc littrale.
Comme le guillemet suivant est prcd d'un backslash, il est littrale et ne sert
pas fermer la chane ; il est donc affich.
Et pour finir le dernier guillemet clt l'expression.
E$ >tructures de contrTle
En algorithmique, l'excution des instructions se dfinit classiquement selon trois
types d'enchanements :
Squence : les instructions sont excutes l'une aprs l'autre, chacune
attendant la fin de la prcdente pour dmarrer.
Slection : Certaines instructions seront excutes ou non en fonction d'une
condition.
Itration : Une instruction est rpte plusieurs fois, en fonction d'une
condition.
Nous pouvons ajouter aux possibilits des scripts shell les excutions parallles de
tches.
Gauthier Catteau - Armando Martins
54
Bash : l'interprteur de commandes
2$ >lection d'instructions$
a) Construction if-then-else.
la structure "i--t)en-else" permet l'excution d'instruction sous certaines
conditions.
Voici la syntaxe complte de cette construction :

Syntaxe
if 3 condition51 4 7 t!en
commande51
e&if 3 condition52 4 7 t!en
commande52
e&se
commande5n
fi

La "condition_1" est excute. Il peut s'agir d'une commande compose
quelconque, mais on emploie souvent la commande [ ] pour vrifier une condition.
Le code de retour de "condition_1" est examin. S'il est nul, alors la condition est
considre comme vraie. Dans ce cas, la commande compose "commande_1" est
excute, puis le contrle est transfr la fin de la construction, aprs le "fi".
Si le code de retour de "condition_1" est non null, elle n'est pas vrifie. Le contrle
passe alors la deuxime partie de la slection, l'instruction "elif" (contraction de
"else if", en franais "sinon si"). La "condition_2" est excute, puis, si elle est
vrifie, la "commande_2" est excute. Sinon, le contrle passe la dernire
partie, indique par else (en franais sinon, c'est dire dans tous les autres cas), et
"la commande_n" est excute.
b) Construction case-esac.
La seconde structure de slection propose par le shell est introduite par le mot-cl
"case", et termine par esac.
La forme gnrale en est la suivante :

Syntaxe
case e%(ression in
motif51 F commande51 7 7
motif52 F commande52 7 7
....
esac

L'expression indique la suite du case est value puis sont rsultat est compar
(en tant que chane de caractres) avec les diffrents motifs fournis ensuite.
Si la correspondance entre l'expression et le motif est ralise, les commandes
composes qui le suivent sont excutes, puis le contrle passe la fin de la
structure
Les motifs peuvent contenir des caractres gnriques du shell comme l'astrisque
qui remplace n'importe quelle squence de caractres, le point d'interrogation qui
remplace un unique caractre, ou un encadrement de caractres entre crochets
indiquant une alternative ou un intervalle.
Des motifs peuvent galement tre juxtaposs avec un symbole "|" signifiant OU.
Gauthier Catteau - Armando Martins
55
Bash : l'interprteur de commandes
c) Les conditions de tests.
Dans une construction"i--t)en", la condition qui se trouve aprs le "if" ou le "elif"
est reprsente par une fonction dont le code de retour correspond une valeur
vraie (0) ou fausse (retour non nul). Dans de trs nombreux cas, les conditions que
nous souhaiterons vrifier consisteront en des comparaisons numriques,
comparaisons de chanes de caractres, ou consultations de l'tat d'un fichier.
Pour ce faire, le shell Bash nous offre un oprateur interne nomm "test" qui
accepte les arguments suivants en ligne de commande :

Gauthier Catteau - Armando Martins
56
Bash : l'interprteur de commandes

Les mmes options peuvent tre utilises dans la commande interne [ ] qui est un
synonyme de "test".
3$ Itrations d'instructions$
a) Introduction
Les squences d'instructions se prsentent traditionnellement sous deux formes :
Celles qui consistent en un nombre limit de boucles (rpter 10 fois la
2ableau $ : 2ableau des conditions
O
p
t
i
o
n
L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
x
i
s
t
e
.

L
'
o
p
t
i
o
n

a

n
'

t
a
n
t

p
a
s

d

f
i
n
i
e
s

S
i
n
!
l
e

"
n
i
x

#
e
r
s
i
o
n

$
%

o
n

l
u
i

p
r

r
e
r
a

e
.
L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


a
p
p
a
r
t
i
e
n
t

a
u

m
&
m
e

u
t
i
l
i
s
a
t
e
u
r

q
u
e

l
'
"
'
D

e
f
f
e
c
t
i
f

d
u

p
r
o
c
e
s
s
u
s

i
n
(
o
q
u
a
n
t

l
a

c
o
m
m
a
n
d
e

t
e
s
t
.
c
h
a
)
n
e
c
h
a
)
n
e
*
+

,

c
h
a
)
n
e
*
-
c
h
a
)
n
e
*
+

.

c
h
a
)
n
e
*
-
V
r
a
i
e

s
i

a

f
i
c
h
i
e
r

e

f
i
c
h
i
e
r

b

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

n
0
u
d

s
p

c
i
a
l

q
u
i

d

c
r
i
t

u
n

p

r
i
p
h

r
i
q
u
e

e
n

m
o
d
e

b
l
o
c
.

c

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

n
0
u
d

s
p

c
i
a
l

q
u
i

d

c
r
i
t

u
n

p

r
i
p
h

r
i
q
u
e

e
n

m
o
d
e

c
a
r
a
c
t
1
r
e
.

d

r

p
e
r
t
o
i
r
e

L
e

r

p
e
r
t
o
i
r
e

i
n
d
i
q
u


e
x
i
s
t
e
.

f

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

f
i
c
h
i
e
r

r

!
u
l
i
e
r
.

!

f
i
c
h
i
e
r

L
e

b
i
t

S
e
t

2
'
D

d
u

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

p
o
s
i
t
i
o
n
n

h

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

l
i
e
n

s
y
m
b
o
l
i
q
u
e
.

2

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


a
p
p
a
r
t
i
e
n
t

a
u

m
&
m
e

!
r
o
u
p
e

q
u
e

l
e

2
'
D

e
f
f
e
c
t
i
f

d
u

p
r
o
c
e
s
s
u
s

i
n
(
o
q
u
a
n
t

l
a

c
o
m
m
a
n
d
e

t
e
s
t
.

3

f
i
c
h
i
e
r

L
e

b
i
t

s
t
i
c
3
y

d
u

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

p
o
s
i
t
i
o
n
n

n

c
h
a
)
n
e

L
a

l
o
n
!
u
e
u
r

d
e

c
h
a
)
n
e

i
n
d
i
q
u

e

e
s
t

n
o
n

n
u
l
l
e
.

4

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


m
o
d
i
f
i


d
e
p
u
i
s

s
o
n

d
e
r
n
i
e
r

a
c
c
1
s

e
n

l
e
c
t
u
r
e
.

5

f
i
c
h
i
e
r

p

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

t
u
b
e

n
o
m
m


6
f
i
c
h
i
e
r

6
7
'
7
5
8
.

r

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

l
i
s
i
b
l
e
.

s

f
i
c
h
i
e
r

L
a

t
a
i
l
l
e

d
u

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

n
o
n

n
u
l
l
e
.

S

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

u
n

s
o
c
3
e
t
.

t

d
e
s
c
r
i
p
t
i
o
n

L
a

d
e
s
c
r
i
p
t
i
o
n

d
u

f
i
c
h
i
e
r

c
o
r
r
e
s
p
o
n
d

9

u
n

t
e
r
m
i
n
a
l
.

u

f
i
c
h
i
e
r

L
e

b
i
t

S
e
t

"
'
D

d
u

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

p
o
s
i
t
i
o
n
n

:

f
i
c
h
i
e
r

5
n

p
e
u
t

c
r
i
r
e

d
a
n
s

l
e

f
i
c
h
i
e
r

i
n
d
i
q
u

x

f
i
c
h
i
e
r

L
e

f
i
c
h
i
e
r

i
n
d
i
q
u


e
s
t

e
x

c
u
t
a
b
l
e
.

;

c
h
a
)
n
e

L
a

l
o
n
!
u
e
u
r

d
e

c
h
a
)
n
e

i
n
d
i
q
u

e

e
s
t

n
u
l
l
e
.

L
a

c
h
a
)
n
e

e
s
t

n
o
n

n
u
l
l
e
.

c
h
a
)
n
e
*
+

<

c
h
a
)
n
e
*
-

L
e
s

d
e
u
x

c
h
a
)
n
e
s

s
o
n
t

i
d
e
n
t
i
q
u
e
s
.

c
h
a
)
n
e
*
+

=
<

c
h
a
)
n
e
*
-

L
e
s

d
e
u
x

c
h
a
)
n
e
s

s
o
n
t

d
i
f
f

r
e
n
t
e
s
.

L
a

p
r
e
m
i
1
r
e

c
h
a
)
n
e

a
p
p
a
r
a
)
t

a
(
a
n
t

l
a

s
e
c
o
n
d
e

d
a
n
s

u
n

t
r
i

l
e
x
i
c
o
!
r
a
p
h
i
q
u
e

c
r
o
i
s
s
a
n
t
.

L
a

p
r
e
m
i
1
r
e

c
h
a
)
n
e

a
p
p
a
r
a
)
t

a
p
r
1
s

l
a

s
e
c
o
n
d
e

d
a
n
s

u
n

t
r
i

l
e
x
i
c
o
!
r
a
p
h
i
q
u
e

c
r
o
i
s
s
a
n
t
.

(
a
l
e
u
r
*
+

e
q

(
a
l
e
u
r
*
-

L
e
s

d
e
u
x

(
a
l
e
u
r
s

a
r
i
t
h
m

t
i
q
u
e
s

s
o
n
t

!
a
l
e
s
.

(
a
l
e
u
r
*
+

!
e

(
a
l
e
u
r
*
-

L
a

p
r
e
m
i
1
r
e

(
a
l
e
u
r

e
s
t

s
u
p

r
i
e
u
r
e

o
u

!
a
l
e

9

l
a

s
e
c
o
n
d
e
.

(
a
l
e
u
r
*
+

!
t

(
a
l
e
u
r
*
-

L
a

p
r
e
m
i
1
r
e

(
a
l
e
u
r

e
s
t

s
t
r
i
c
t
e
m
e
n
t

s
u
p

r
i
e
u
r
e

9

l
a

s
e
c
o
n
d
e
.

(
a
l
e
u
r
*
+

l
e

(
a
l
e
u
r
*
-

L
a

p
r
e
m
i
1
r
e

(
a
l
e
u
r

e
s
t

i
n
f

r
i
e
u
r
e

o
u

!
a
l
e

9

l
a

s
e
c
o
n
d
e
.

Gauthier Catteau - Armando Martins


57
Bash : l'interprteur de commandes
squence).
Et celles qui dpendent d'une condition d'arrt (recommencer tant que le
maximum n'est pas atteint).
Les deux constructions proposes par le shell refltent ces deux mcanismes.
b) Rptitions while-do-done et until-do-done.
Introduction
Les deux structures "while-do-done" et "until-do-done" servent rpter une
squence d'instructions jusqu' ce qu'une condition soit vrifie.

Syntaxe : Instruction while-do-done
)!i&e 3 condition 47 do
commandes
done


Exemple
,-/+in/+as!
ec!o "EntreG un nom de fic!ier"
read fic!
)!i&e 3 -G "$fic!" 4 7 do
ec!o ">aisie H recommencer"
read fic!
done

Dans cet exemple le script nous demande de rentrer un nom de fichier et si nous ne
rentrons rien, la boucle recommence jusqu' ce que la chane de caractre ne soit
pas vide.

Syntaxe : Instruction until-do-done
unti& 3 condition 4 7 do
commandes
done


Exemple
,-/+in/+as!
unti& 3 "$var1" < fin 4 7 do
ec!o "Iaria+&e dAentr2e"
ec!o "Jfin (our sortirF"
read var1
ec!o "varia+&e < $var1"
done

Ici la boucle continuera jusqu' ce que nous tapions le mot fin.
Conclusion
La premires construction rpte les commandes composes qui se trouvent dans
le corps de la boucle tant que (while) la condition est vrifie.
La seconde les rpte jusqu' ce que (until) la condition devienne vraie ; en
d'autres thermes elle les rpte tant que la condition est fausse.
Le code de retour gnral est celui de la dernire commande excute.
Gauthier Catteau - Armando Martins
58
Bash : l'interprteur de commandes
c) Construction for-do-done.
Introduction
La boucle "for" est un grand classique que l'on rencontre dans la plupart des
langages de programmation. Hlas, son fonctionnement dans les scripts shell est
totalement diffrent.
Une boucle "for-do-done" avec Bash se reprsente ainsi :

Syntaxe : Instruction for-do-done
for varia+&e in &iste5de5mots ou commande 7 do
commandes
done

La variable va prendre successivement comme valeur touts les mots de la liste ou
de la sortie de la commande suivant le in, et le corps de la boucle sera rpt pour
chacune de ces valeurs.

Exemple
Voyons un exemple avec une liste de mots:
, -/+in/+as!
for i in 1 2 ; = 7 11 1; 7 do
ec!o "$iK < $JJi 6 iFF"
done
Dont l'excution affiche les carrs des premiers entiers indiqus :
$ ./e%em(&e5for51.s!
1K < 1
2K < L
;K < 9
=K < 2=
7K < L9
11K < 121
1;K < 169


Gauthier Catteau - Armando Martins
59
Bash : l'interprteur de commandes

VIII - +onclusion
VIII




Merci de votre attention.
Gauthier Catteau - Armando Martins
61

Vous aimerez peut-être aussi