Vous êtes sur la page 1sur 321

Admi ni strati on

Admi ni strati on
Systme
Systme
GNU/ Li nux
GNU/ Li nux


Admi ni strati on Systme
Admi ni strati on Systme
GNU/ Li nux
GNU/ Li nux

Historique

Composants

Organisation

Shell

Commandes de base

Utilisateurs & Droits

Disques & Filesystems




Admi ni strati on Systme
Admi ni strati on Systme
GNU/ Li nux
GNU/ Li nux

Editeurs

Shell & commandes avancs

ac!ages

"oot & #unlevels

#seau

$nter%aces graphiques

Fichiers spciau&

Etudes de cas


Hi stori que
Hi stori que
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 38(!8) "# $lones%&
'inus (orvalds


Hi stori que
Hi stori que
Uni &
Uni &


Uni x
Uni x
hi l osophi e
)* Ce qui est petit est beau
+* Chaque programme %ait une chose et la %ait bien
,* Construire un prototype d-s que possible
.* Choisir la portabilit plut/t que l0e%%icacit
1* Enregistrer les donnes dans des %ichiers plats
2* Utiliser le logiciel comme une %orce
3* Utiliser les scripts shells pour accro4tre cette %orce
5* Eviter les inter%aces utilisateur captives
6* Faire de chaque programme un %iltre


Uni x
Uni x
hi l osophi e
)* Small is beauti%ul7
+* 8a!e each program do one thing 9ell7
,* "uild a prototype as soon as possible7
.* Choose portability over e%%iciency7
1* Store data in %lat te&t %iles7
2* Use so%t9are leverage to your advantage7
3* Use shell scripts to increase leverage and portability7
5* :void captive user inter%aces7
6* 8a!e every program a %ilter7


Uni x
Uni x
hi l osophi e
timtowtdi
(here is more than one 9ay to do it
leitmoti' perl, (ui s'appli(ue tr)s bien * +ni,


Uni x
Uni x
hi l osophi e
Sous uni&; tout est %ichier

%ichiers <=*

rpertoires

devices

liens

pipes

soc!ets


Uni x
Uni x
hi l osophi e
Sous uni&; les %ichiers doivent >tre

lisibles par l0homme

e&ploitables simplement par la machine


777donc sous Uni& ?

tous les %ichiers de con%iguration sont te&te777


777ou gnrs @ partir de %ichiers te&te

pas de binaire ? les %ichiers de con%iguration


doivent >tre ditables simplement <Aregistry*

pas de %ormats e&otiques <A&ml*

pas de %ormats %erms <Adoc;byo;777*




Uni x
Uni x
hi l osophi e

8ultitBche

plusieurs processus s0e&cutent en m>me


temps

l0OS @ le contr/le des processus

8ultiutilisateur

plusieurs utilisateurs peuvent se connecter


simultanment

plusieurs utilisateurs peuvent e&cuter des


processus simultanment


Hi stori que
Hi stori que
CDU

CDU ? ECnu0s Dot Uni&G

romu par la Free So%t9are Foundation

ObHet ? dveloppement d0outils et de


licences libres

)65. ? emacs

)653 ? gcc

)656 ? C'v)

)66) ? C'v+

)663 ? lessti%


Hi stori que
Hi stori que
'i nu&

:oIt )66)

)
-re
version

code source ? 2, Jo

)66. ?

+ branches

code source ? ) 8o

Kuin )662 ? v+7L

code source ? 1 8b

port :lpha

S8

8ars +LL2 ? v+727)); M+LL 8b

+LN architectures supportes


<&52; ppc; sparc; arm; ; avr,+; 777*


Hi stori que
Hi stori que
'i nu&
360x10
12
FLOPS
1x10
9
FLOPS
20x10
3
MIPS
1 MIPS


GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS

Jernel ? 'inu&

mise @ disposition des ressources machines

entres Odev; Oproc; Osys

allocation mmoire

gestion de l0acc-s au& ressources machines

droits

ordonnancement

gestion des acc-s

modulaire

chargement dchargement de modules <drivers*

automatique ou manuel


GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS

OS ? CDU

gestion du syst-me via l0inter%ace propose


par le lernel

syst-mes de %ichiers

rseau

droits

priphriques

777

sous %orme d0utilitaires; ou de librairies

shell; ls; rm; 777

libusb; libpam; 777




GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS


GNU/ Li nux
GNU/ Li nux
User l and et !er nel space

EJernel SpaceG

espace sensible

espace protg

contient le !ernel et ses modules

EUserlandG

espace utilisateur

espace libre

espace cloisonn


GNU/ Li nux
GNU/ Li nux
'es di st r i but i ons
Versions diffrentes de GNU/Linux

ayantes <#HE'*; semiPpayantes <8andriva* ou


gratuites <presque toutes*

our l0e&pert <Debian*; le dbutant <Jubuntu*; le


maniaque <'FS*; le patient <Centoo*; le
nostalgique <Qggdrasil; Slac!9are*

Oriente bureautique <Ubuntu*; appliance <Damn


Small*; serveur <(rusti&* ou gnraliste <SuSE;
Fedora*

#eligieuses <Cru&; Ubuntu CE; Ubuntu SE*;


paRennes <les autres*

lus de ,1L distributions sur le EmarchG




GNU/ Li nux
GNU/ Li nux
'es di st r i but i ons

oints communs S

!ernel

outils CDU

Di%%rences S

!ernel

outils CDU

syst-me de pac!ages

%ichiers de con%iguration

%ichiers de dmarrage

organisation et type du
%ilesystem

philosophie

canau& de distribution

mthode d0installation; de
con%iguration

outils

7777


Admi ni strati on Systme
Admi ni strati on Systme
D% i ni t i on
EFaire un ma&imum de scripts pour en %aire le moins possibleG
-% "r.ur


Le She
Le She
/ess su$ks less more than more%
#hat's why I use more less, and less more%%&
$nconnu


She
She
$ nt er >t S

$nter%ace utilisateur non graphique

terminau& te&te

acc-s distant

$nterprteur de scripts

traitement Tpar lotsT

automatisation

'ancement de tBches multiples

tBche combines <pipes*

Hob control


She
She
Oui mai s7 7 7

C0est un programme TnormalT

'e choi& est vaste

sh; sash; !sh; csh; tcsh; ash; bash; psh; %ish;


777

On peut e&cuter plusieurs shells en


parall-le <uni& est multitBche*

lusieurs utilisateurs peuvent e&cuter un


shell en m>me temps <uni& est multiP
utilisateurs*


She
She
(er mi nau&
xterm
vt100
console vga


She
She
:ut opsi e d0 un El ogi nG


She
She
Envi r onnement

Un shell donn s0e&cute dans un


environnement propre et clos contenant
des variables

Cet environnement est ?

est modi%iable

est transitoire

'0environnement initial

est d%ini au niveau syst-me

peut >tre modi%i par l0utilisateur




She
She
Envi r onnement


!i esystem
!i esystem
'e s ys t -me de % i chi er s < % i l es ys t em*

Organis hirarchiquement dans sa totalit


depuis la racine <EOG*

Sensible @ la casse <des caract-res*

Utilise 0O0 pour sparer les rpertoires dans


un chemin

eut contenir n0importe quel caract-re

(aille pratique d0un nom de %ichier illimite

as de notion Ed0e&tensionsG

DistroPdpendant malgr le EstandardG




!i esystem
!i esystem
'e s ys t -me de % i chi er s < % i l es ys t em*


!i esystem
!i esystem
'0 or gani sat i on du % i l esyst em < % s*
Une seule arborescence


!i esystem
!i esystem
"al ade dans l e E% sG

Se dplacer dans le %ilesystem


cd chemin <chemin relati%*
cd /chemin <chemin absolu*

Uoir le contenu du rpertoire


ls <contenu du rpertoire courant*
ls chemin <contenu de EcheminG*

Conna4tre le rpertoire courant


pwd <print 9or!ing directory*


!i esystem
!i esystem
"al ade dans l e E% sG
"#ertoires $ #art %
/ ? racine du %ilesystem
. ? rpertoire courant
.. ? rpertoire parent
~ ? rpertoire maison <Ehome dirG;
correspond @ VHO8E*


!i esystem
!i esystem
'i eu& t our i st i ques du E% sG
"#ertoire essenties au fon&tionnement
O ? racine
Obin; Osbin ? binaires syst-mes
Oetc ? con%iguration syst-me
Oboot ? !ernel et +
eme
tage du bootloader


!i esystem
!i esystem
'i eu& t our i st i ques du E% sG
Ousr ? binaires d0usage courant
Ohome ? rpertoires utilisateurs
Ovar ? donnes variables <sgbd; logs*
Oproc ? in%ormation syst-me temps r-l
Omnt; Omedia ? point montage temporaire
Osys ? bus syst-mes
Otmp ? rpertoire temporaire
lostN%ound ? obHets trouvs


She
She
V:(H

Uariable d0environnement

Contient une suite de chemins spars


par 0?0

'es e&cutables seront recherchs dans


ces chemins


She
She
V:(H
"#ertoire '(' dan)er *

risque d0e&cuter un troHan

n0importe qui peut crire dans Otmp <entre


autres* =

le shell perd du temps @ chaque 0cd0




She
She
Ent r eO Sor t i es

ar d%aut tout processus poss-de ?

) entre

+ sorties

Ces $OO sont distinctes pour chaque processus

our les programmes interacti%s <comme les


shells* ?

les entres proviennent du clavier

les sorties s0a%%ichent sur l0cran




She
She
Ent r eO Sor t i es
STDIN <entre standard* ? ce qui est envoy
vers le processus
STDOUT <sortie standard* ? ce qui est
envoy par le processus
STDERR <sortie erreur standard* ? les
erreurs renvoys par le processus


She
She
Ent r eO Sor t i es
Ces entrsOsorties standard sont en %ait des
noms symboliques; correspondant @ des
Edescripteurs de %ichiersG ?

STDIN <$Dput* ? descripteur de %ichier L

STDOUT <OU(put* ? descripteur de %ichier )

STDERR <E##or* ? descripteur de %ichier +




She
She
Ent r eO Sor t i es ? cat
cat ? copie STDIN <ou un %ichier* sur STDOUT
(crit les erreurs, s'il y a, sur STDERR)
user@host:~$ cat
azerty
azerty
qsdfg
qsdfg
user@host:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 michel
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
user@host:~$ cat /etc/bidon
cat: /etc/bidon: Aucun fichier ou rpertoire de ce type
user@host:~$


She
She
#edi r ect i ons d0 EO S
'es EOS peuvent >tre rediriges de ou vers un %ichier
processus < fichier
S(D$D provient du %ichier <et non plus du clavier*
processus > fichier
S(DOU( est crit dans %ichier <et non plus sur le terminal*
processus 2> fichier
S(DE## est crit dans %ichier <et non plus sur le terminal*
processus > fichier1 2> fichier2
S(DOU( est crit dans %ichier) et S(DE## dans %ichier+


She
She
#edi r ect i ons d0 EO S
user@pluton:~$ cat < /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname > /dev/null
user@pluton:~$ cat < /etc/hostname > /dev/null
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/portnaouak
cat: /etc/portnaouak: Aucun fichier ou rpertoire de ce type
user@pluton:~$ cat /etc/portnaouak 2> /dev/null
user@pluton:~$ cat /etc/hostname /etc/portnaouak > out.txt 2> err.txt
user@pluton:~$ cat out.txt
pluton
user@pluton:~$ cat err.txt
cat: /etc/portnaouak: Aucun fichier ou rpertoire de ce type


She
She
#edi r ect i ons d0 EO S
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname >> /tmp/test
user@pluton:~$ cat /tmp/test
pluton
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname >> /tmp/test
user@pluton:~$ cat /tmp/test
pluton
pluton
user@pluton:~$


She
She
Ent r es O s or t i es ? devi ces s pci au&
lusieurs TdevicesT <%ichiers dans Odev* ont une
vocation particuli-re ?
/dev/null
trou noir annihiliant tout ce qui lui est envoy
/dev/zero
envoie des Wros adPvitam
/dev/random /dev/urandom
%ournisseurs o%%iciels de haWard
/dev/full
dispositi% hypochondriaque ? se plaint touHours <d0>tre plein*


She
She
#edi r ect i ons d0 EO S ? t r avau&
)* Copier le contenu de OetcOpass9d dans le
%ichier OtmpOusers7t&t
+* Ecrire ElinusG @ la %in de users7t&t
,* Uider le %ichier users7t&t
.* #emplir users7t&t de TWrosT <utiliser le
dispositi% %ournisseur de Wros ? OdevOWero*
1* #ediriger l0erreur standard de 0ls Pl# O0 dans
OtmpOusers7t&t
2* Uider le %ichier users7t&t <d0une autre mani-re
qu0en ,*


She
She
i pes

'es EpipesG <pipelines* permettent


d0envoyer la sortie d0une commande
<S(DOU(* @ l0entre d0une autre <S(D$D* ?


She
She
i pes

On trouve tr-s souvent la commande grep au


milieu de pipelines

grep permet de n0a%%icher une ligne que si elle


contient une chaine de caract-res donne

Sa synta&e est ?
grep chane fichier
a%%iche les lignes de %ichier contenant
Tcha4neT
grep chane
a%%iche les lignes lues sur l0entre standard
<S(D$D* contenant Tcha4neT


She
She
i pes ? e&empl es < compl i qus*
user@pluton:~$ cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
user@pluton:~$ ls | grep test
test.txt
user@pluton:~$ ip link | grep UP
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
user@pluton:~$ ip link | grep UP > uplinks.txt
user@pluton:~$ cat uplinks.txt | grep eth
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
user@pluton:~$ ip link | grep UP | grep eth
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
user@pluton:~$ history | awk '{ print $2 }' | sort | uniq -c | sort -nr -k1 | head -10
164 ls
74 cd
62 ssh
55 ping
55 man
53 make
51 ip
47 more
user@pluton:~$
$l n0y a pas de limitation
pratique au nombre de
TpipesT que l0on peut
encha4ner777


She
She
i pes

'es pipes et les redirections peuvent >tre


combines


She
She
i pes & #edi r ect i ons
user@pluton:~$ cat /etc/toto /etc/passwd | grep root 2> /dev/null
cat: /etc/toto: Aucun fichier ou rpertoire de ce type
root:x:0:0:root:/root:/bin/bash
user@pluton:~$ cat /etc/toto /etc/passwd root 2> /dev/null | grep root
root:x:0:0:root:/root:/bin/bash
user@pluton:~$
:ttention @ l0ordre des redirections et des pipelines
a | b 2> c

le rsultat de la commande a est pass @ b

les erreurs de b sont rediriges dans le %ichier c


a 2> c | b

le rsultat de la commande a est pass @ b

les erreurs de a sont rediriges dans le %ichier c




She
She
Compl t i on

ermet de complter une saisie


utilisateur dans le shell

:%%ect @ la touche EtabG

'a compltion a%%iche la plus grande


correspondance unique

S0applique au& commandes et @ leurs


arguments <selon con%iguration*

EtabPtabG a%%iche toutes les


correspondances possibles


She
She
Edi t eur de l i gne

l0diteur de ligne permet d0diter7777


777 la ligne =

raccourcis clavier identiques @ Emacs


CTRL k +
CTRL a +
: coupe de la position courante jusqu' la fin de la ligne
: dbut de ligne
CTRL e + : fin de ligne
CTRL y + : colle ce qui a t prcdemment coup


She
She
Hi st or i que

bash mmorise toutes les commandes dans un


d0historique

cet historique est enregistr dans un %ichier


lorsque le shell se termine

cet historique est lu depuis un %ichier au


dmarrage d0un shell

le nom du %ichier est d%ini dans VH$S(F$'E et la


taille de l0historique dans VH$S(F$'ES$XE

le rappel de commandes ?

par numro <=numro*

par nom <=debutnom*

apr-s recherche <ctrlPr*




She
She
Hi st or i que
user@host:~$ echo $HISTFILE
/home/user/.bash_history
user@host:~$ echo $HISTFILESIZE
1500
user@host:~$ history | tail -n 5
1429 history
1430 kill -9 18487
1431 echo $HISTFILE
1432 echo $HISTFILESIZE
1433 history | tail -n 5
user@host:~$ tail -n 5 $HISTFILE
ls
history
ls /ttest
history
kill -9 18487
user@host:~$ !1431
user@host:~$ echo $HISTFILE
/home/user/.bash_history
user@host:~$ !echo
echo $HISTFILE
/home/user/.bash_history
user@host:~$


She
She
Hi st or i que
user@host:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
...
postfix:x:111:118::/var/spool/postfix:/bin/false
user@host:~$ !cat | grep root
root:x:0:0:root:/root:/bin/bash
user@host:~$ bash
user@host:~$ history | tail -n 5
1476 ls
1427 history
1428 ls /ttest
1429 history
1430 kill -9 18487
user@host:~$


She
She
Hi st or i que
#emarques

si le shell " est ouvert alors que le shell : est


en cours; " ne verra pas les commandes de :
dans l0historique

si le shell " est %erm avant le shell :; les


commandes de " seront plus haut dans
l0historique

si le shell est tu; il ne pourra pas mettre


l0historique @ Hour


She
She
Hi st or i que


She
She
Cl obbi ng
ermet de nommer plusieurs %ichiers d0un seul
coup grBce @ des EHo!ersG <9ildcards*
? ? accepte un seul caract-re
* ? accepte n0importe quel caract-re L ou n %ois
[chars] ? denote une liste de caract-res accepte <liste;
suite alphabtique ou suite numrique*
[^chars] ou [!chars] ? dnote une classe de
caract-res re%use <liste; suite alphabtique ou suite
numrique*
{e1,e2,e3} ? remplace les arguments par les lments
de la liste
{e1,e2}{e3,e4} ? remplace les arguments par le
produit cartsien des deu& listes


She
She
Cl obbi ng
abc? ? accepte un %ichier de . lettres commenYant par
abc
abc* ? accepte un %ichier de , lettres ou plus
commenYant par abc
*abc* ? accepte un %ichier de , lettres ou plus contenant
abc
[ab]c ? accepte un %ichier de + lettres commenYant par
0a0 ou 0b0
[a-m]* ? accepte un %ichier commenYant par une lettre
comprise alphabtiquement entre 0a0 et 0m0 inclus
*[0-1][0-9] ? accepte un %ichier se terminant par un
nombre compris entre 0LL0 et 0)60
[13579]*[a-z] ? accepte un %ichier commenYant par un
nombre impair et se terminant par une minuscule


She
She
Cl obbi ng
[^13579]*[^a-z] ? accepte un %ichier commenYant par un
nombre pair et se terminant par une maHuscule
{a,b,c} ? accepte les %ichiers nomms 0a0; 0b0 ou 0c0
{a*,*b*,*c} ? accepte les %ichiers dont le nom commence
par 0a0; contient 0b0 ou se termine par 0c0
*{.doc,.odt,.rtf} ? accepte les %ichiers nomms 0Z7doc0;
0Z7odt0 ou 0Z7rt%0
{photo,image}{.jpg,.png} ? accepte les %ichiers nomms
0photo7Hpg0; 0photo7png0; 0image7Hpg0 ou 0image7png0
{jean,pierre}{,-jean} ? accepte les %ichiers dont le nom
est 0Hean0; 0HeanPHean0; 0pierre0 ou 0pierrePHean0


She
She
Cl obbi ng ? cl asses
alnum ? [aPW:PXLP6\
alpha ? [aPW:PX\
ascii ? caract-re ascii <777*
blank ? espace ou tabulation
cntrl ? caract-re de contr/le
digit ? [LP6\
graph ? caract-res
imprimables et visibles
lower ? [aPW\
print ? caract-re imprimable
Les classes sont des listes prdfinies de
caractres, utilisables entre [: et :] :
punct ? ponctuation
space ? espace; tabulation; 777
upper ? [:PX\
word ? [aPW:PXLP6]\
xdigit ? [aP%:PFLP6\
E&emple ?
[[:alnum:]] ? accepte un
caract-re alphanumrique
Uoir ? man 3 glob


She
She
Cl obbi ng ? l es l i mi t es

On ne peut pas matcher 0O0

On doit matcher e&plicitement le


caract-re 070

Ce ne sont pas des e&pressions rguli-res

On ne peut donc pas appliquer de


numration @ des classes
$l est par e&emple impossible de matcher tous
les noms de %ichiers se terminant par des
nombres


+ommandes de ,ase
+ommandes de ,ase
De l 0 ai de ? man
man commande
a%%iche le manuel de la commande commande

options
Pt ? produit une sortie postscript pour impression

e&emples
man -t ls | lpr
man man


+ommandes de ,ase
+ommandes de ,ase
De l 0 ai de ? man
)7 E&ecutable programs or shell commands
+7 System calls <%unctions provided by the !ernel*
,7 'ibrary calls <%unctions 9ithin program libraries*
.7 Special %iles <usually %ound in Odev*
17 File %ormats and conventions <e7g7 OetcOpass9d*
27 Cames
37 8iscellaneous <including macro pac!ages and conventions
57 System administration commands <usually only %or root*
67 Jernel routines [Don standard\
man divise la documentation en 6 sections ?
cela permet d0viter les ambiguRts ?
man glob A man 7 glob


+ommandes de ,ase
+ommandes de ,ase
:i de ? help, apropos, whatis
help commande
a%%iche le manuel d0une commande interne <builtin*
apropos sujet
a%%iche les pages de man correspondant au suHet
whatis commande
a%%iche une in%ormation succinte sur la commande


+ommandes de ,ase
+ommandes de ,ase
cd
cd argument
ErentreG dans le rpertoire argument
:pr-s un changement de rpertoire courant; l0ancien rpertoire courant est stoc!
dans 0P0; permettant d0y revenir avec 0cd P0

e&emples
cd
<equivaut @ 0cd ~' et 'cd $HOME')
cd ..
cd -
cd /tmp
cd tmp


+ommandes de ,ase
+ommandes de ,ase
VCD:(H

VCD:(H permet d0o%%rir des chemins


directement accessibles via EcdG

Comme pour V:(H; les chemins sont


concatns avec 0?0 ?
$ echo $CDPATH
/home/user:/var:/home/user/doc
$


+ommandes de ,ase
+ommandes de ,ase
ls
ls -a
'iste tous les %ichiers <incluant 7Z*
ls -l
:%%ichage long <droits; propritaire;
groupe; taille; date*
ls -R
'iste les %ichiers rcursivement
ls -t
:%%iche les plus rcents en premier
ls -S
:%%iche les plus gros en premier
ls -1
:%%iche le listing sur une colonne
Les options se combinent directement entre-elles
ex : ls -laRt


+ommandes de ,ase
+ommandes de ,ase
ls
ls option argument
liste les %ichiersOrpertoires correspondant @ argument ou dans le rpertoire argument

options
Pa ? a%%iche tous les %ichiers <y compris ceu& commencant par 070*
Pl ? listing tendu
P# ? rcursi%
PS ? tri par taille
Pt ? tri par date de modi%ication
P) ? a%%ichage sur une colone

e&emples
ls *.txt
ls /etc
ls /etc/host*
ls /etc/rc[1-3].d
ls /media/win/Program\ Files/
ls -laR ~


+ommandes de ,ase
+ommandes de ,ase
{mk,rm}dir
mkdir [-p] rpertoire1 rpertoire2 ...
cre les rpertoires rpertoire); rpertoire+; 777
l0option Pp per et destination <%ichier ou rpertoire*

options
Pp ? cre les rpertoires suprieurs si ncessaire

e&emples
mkdir $HOME/documents
mkdir test $HOME/images_iso
mkdir -p $HOME/documents/personnel/{photos,factures}
rmdir rpertoire1 rpertoire2
supprime les rpertoires rpertoire); rpertoire+; 777
ces rpertoires doivent >tre vides pour pouvoir >tre supprims <utiliser rm -rf sinon*

e&emples
rmdir $HOME/documents
rmdir test $HOME/images_iso
rmdir $HOME/documents/personnel/{photos,factures,}


+ommandes de ,ase
+ommandes de ,ase
cp & mv
cp source destination
copie la sour$e <%ichier ou rpertoire* vers la destination <%ichier ou rpertoire*

options
Pp ? prserve les droits
P# ? rcursi%
P% ? %orce l0crasement de la destination

e&emples
cp *.txt /tmp
cp test.txt toast.txt
cp -Rf /home /var/backup
mv source destination
dplace la sour$e <%ichier ou rpertoire* vers la destination <%ichier ou rpertoire*
permet aussi de renommer un %ichier

e&emples
mv *.txt /tmp
mv test.txt toast.txt


+ommandes de ,ase
+ommandes de ,ase
rm & touch
rm argument
Supprime le %ichier ou rpertoire argument

options
P# ? rcursi%
P% ? %orce la suppression

e&emples
rm -rf /
rm toast.txt
touch fichier
Cre le %ichier s0il n0e&iste pas; ou met la date de modi%ication du %ichier @ l0heure
courant s0il e&iste
'a commande 0?M0 permet aussi de crer un %ichier

e&emples
touch toast.txt


+ommandes de ,ase
+ommandes de ,ase
egrep
egrep options patron fichier
liste les %ichiersOrpertoires contenant une chaine correspondant @ patron7
si fi$hier n0est pas spci%i; grep travaille sur S(D$D

options
Pv ? inverse le comportement de egrep <n0a%%iche que les lignes qui ne
correspondent pas*
Pi ? insensible @ la casse
P# ? rcursi%

patrons d0e&pression rguli-res


si l'on utilise grep au lieu de egrep, il faut mettre un '0' de'ant les $ara$t)res 1, 2, 3, 4, 5, (, et )
. n'importe quel caractre
* le caractre prcdent 0 ou plusieurs fois
+ le caractre prcdent 1 fois au moins
? le caractre prcdent 0 ou 1 fois
{n} le caractre prcdent exactement n fois
{m,n} le caractre prcdent de m n fois
{n,} le caractre prcdent n fois ou plus
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre
^/$ le dbut/la fin de ligne
| sparateur pour spcifier de multiples expression
(ou logique)


+ommandes de ,ase
+ommandes de ,ase
egrep

8atcher une ligne commenYant par E%ooG ?


egrep "^foo.*"

8atcher une ligne commenYant par E%ooG ou contenant EbarG ?


egrep "^foo|bar"

8atcher une ligne commenYant par E%ooG ou commenYant par EbarG ?


egrep "^(foo|bar)"

8atcher une ligne commenYant par E%ooG et contenant EbarG ?


egrep "^foo.*bar"

8atcher une ligne commenYant par E%ooG et se terminant par EbarG ?


egrep "^foo.*bar$"

8atcher une ligne se terminant par un espace suivi d0un nombre de ) @ , chi%%res ?
egrep "[[:space:]]+[0-9]{1,3}$"

8atcher une ligne se terminant par un espace suivi d0un nombre de ) @ , chi%%res ?
egrep "[[:space:]]+[0-9]{1,3}$"

8atcher une ligne contenant le caract-re 0Z0 ?


egrep "*"

8atcher une ligne contenant le caract-re 0Z0 ou le caract-re 0S0 ?


egrep "*|?"


+ommandes de ,ase
+ommandes de ,ase
cat, less, tee et wc
cat fichier1 fichier2 ...
a%%iche le contenu de fi$hier6 fi$hier7 %%% sur la sortie standard
si cat est appell sans arguments; la source est l0entre standard

e&emple
cat /dev/urandom
less fichier1 fichier2 ...
comme cat; a%%iche le contenu de fi$hier6 fi$hier7 %%% sur la sortie standard mais
e%%ectue un arret @ chaque page
si less est appell sans arguments; la source est l0entre standard

e&emple
less /etc/password
tee fichier
duplique l0entre standard vers la sortie standard et dans un %ichier

e&emple
vmstat 1 | tee toto
wc option fichier
compte le nombre de lignes <Pl*; bytes <Pc*; mots <P9* 7777 dans fi$hier <ou sur S(D$D si
aucun %ichier n0est spci%i*

e&emple
wc -l /etc/passwd


+ommandes de ,ase
+ommandes de ,ase
tail et head
tail [-nX] [-f] fichier1 fichier2 ...
a%%iche les 8 derni-res lignes de fi$hier6 fi$hier7 %%% sur la sortie standard
si tail est appell sans arguments; la source est l0entre standard et le nombre de
lignes est )L
l0option P% permet de %aire un 0tail0 continu sur un %ichier qui croit

e&emple
tail -n5 /var/log/syslog
tail -f /var/log/syslog
head [-nX] fichier1 fichier2 ...
a%%iche les 8 derni-res lignes de %ichier) %ichier+ 777 sur la sortie standard
si tail est appell sans arguments; la source est l0entre standard

e&emple
head -n1 /etc/passwd
Une combinaison des deu& permet d0a%%icher la ni-me ligne d0un %ichier ?
head -n10 /etc/passwd | tail -n1 ? a%%iche la 6-me <)LP)* ligne de OetcOpass9d
head -n20 /etc/group | tail -n3 ? a%%iche les lignes )3 @ +L <+LP, PM +L* lignes de
OetcOgroup


+ommandes de ,ase
+ommandes de ,ase
Uer si ons 0 z0 & 0 bz0
zcat fichier1 fichier2 ...
bzcat fichier1 fichier2 ...
comme cat; mais sur des %ichiers gWippsObWipps
si zcat/bzcat est appell sans arguments; la source est l0entre standard

e&emples
zcat myfile.gz
bzcat myfile.bz2
zless fichier1 fichier2 ...
bzless fichier1 fichier2 ...
comme less; mais sur des %ichiers gWippsObWipps
si less est appell sans arguments; la source est l0entre standard

e&emples
bzless myfile.bz2
zgrep options patron fichier
duplique l0entre standard vers la sortie standard et dans un %ichier

e&emples
zgrep user myfile.gz


She
She
Commandes mul t i pl es

'e shell permet l0e&cution de commandes


successives en les sparant par 0^0 ?
ls > ~/liste.txt; cd -; ls >> ~/liste.txt

'e shell permet d0e&cuter une commande


uniquement si la prcdente a march ?
cat fichier > /dev/null && echo"le fichier existe"
grep -i "effacez moi" fichier && rm -f fichier

'e shell permet d0e&cuter une commande


uniquement si la prcdent a chou ?
cat fichier > /dev/null|| echo"le fichier n'existe pas"
grep -i "gardez moi" ~/fichier.txt || rm -f fichier.txt


She
She
K ob cont r ol

Fonctionnalit interne au shell

ermet de grer des tBches <processus*


multiples dans un m>me shell ?

suspension temporaire ? le processus est


arr>t Husqu0@ nouvel ordre

arr>t d%initi% ? le processus est termin

mise en arri-reOavant plan ? le processus


reYoit l0entre clavier

Un processus peut ignorer l0arr>t d%initi%;


mais pas la suspension


She
She
K ob cont r ol

Sus#endre <stopper* un processus ? _CtrlMz

Arr-ter <terminer* un processus ? _CtrlMc


<si le processus est @ l0avant plan*

Arr-ter <terminer* un processus ? kill %n


<si le processus est @ l0arri-re plan*

Voir la liste des processus du terminal <Hobs* ? jobs


0N0 est le Hob EcourantG <%% ou %+*
0P0 est le Hob EprcdentG <%-*

.ettre un Hob en arrire #an ? bg %n ou %n&

.ettre un Hob en a/ant #an ? fg %n ou %n

Lan&er un Hob en arrire #an ? commande &




She
She
K ob cont r ol
$ sleep 100
<ctrl-z>
[1]+ Stopped sleep 100
$ sleep 200 &
[2] 19858
$ jobs
[1]+ Stopped sleep 100
[2]- Running sleep 200 &
$ bg %1
[1]+ sleep 100
$ jobs
[1]- Running sleep 100
[2]+ Running sleep 200 &
$ kill %1
$ <return>
[1]- Complt sleep 100
$ fg
sleep 200 <ctrl-c>
$ jobs
$


Uti i sateurs
Uti i sateurs
#he $ause of the problem is9
:ad user karma%&
"OFH E&cuse Server
http?OO9997cs79isc7eduO`ballardObo%hObo%hserver7pl


Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/passwd

D%inis dans le %ichier /etc/passwd

root <U$D L* ?

propritaire de presque tous les %ichiers syst-me

poss-de tous les droits

les autres ?

utilisateurs Esyst-meG <U$D _ )LLL* ? daemon;


postfi,; sshd; 777

vrais utilisateurs <U$D a )LLL* ? toto; mar$el

8ots de passes d%inis dans le %ichier


/etc/shadow


Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/passwd
our chaque utilisateur; le %ichier /etc/passwd
contient sept champs ?

login

mot de passe <0&0 pour les shado9 pass9ords*

U$D <User $D*

C$D <Croup $D; groupe principal*

champ CECOS <nom complet; adresse; tlphones*

rpertoire personnel <Ehome dirG*

le shell e&cut au login


root:x:0:0:Linux Torvalds,0,123,456:/root:/bin/bash


Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/shadow

Seul root peut lireOmodi%ier ce %ichier

our chaque utilisateur; le %ichier /etc/shadow


contient le mot de passe de conne&ion et ses
param-tres de validit ?

login

mot de passe chi%%r

2 champs dcrivant la validit du compte

) champ rserv

$l n0est pas possible de se logguer directement si le


mot de passe est 0Z0 ou 0=0
mblanc:$1$QJ//btH...jL:13428:0:99999:7:::


Uti i sateurs
Uti i sateurs
/etc/passwd & /etc/shadow
$ cat /etc/passwd
root:x:0:0:Linus Torvads:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
gdm:x:106:111:Gnome Display Manager:/var/lib/gdm:/bin/false
acox:x:1000:1000:Alan Cox,Kernel St,0625081221,0474701221:/home/acox:/bin/bash
$
$ cat /etc/shadow
root:*:13428:0:99999:7:::
daemon:*:13428:0:99999:7:::
bin:*:13428:0:99999:7:::
sys:*:13428:0:99999:7:::
sync:*:13428:0:99999:7:::
games:*:13428:0:99999:7:::
man:*:13428:0:99999:7:::
lp:*:13428:0:99999:7:::
mail:*:13428:0:99999:7:::
gdm:!:13428:0:99999:7:::
acox:$1$QN//abU4$nHskZjoAb3nx23J2z.WVJeqz.:13428:0:99999:7:::


Uti i sateurs
Uti i sateurs
Cr oupes ? /etc/group

Chaque ligne contient . champs ?

le nom du groupe

le mot de passe du groupe

l0$D du groupe <C$D*

la liste des membres du groupe; spars par des 0;0

Chaque utilisateur poss-de en gnral un groupe @ son


nom <Unique rivate Croup*; c0est son groupe primaire

Chaque utilisateur peut aussi appartenir @ n groupes


secondaires

'es groupes syst-mes permettent souvent de permettre


au& utilisateurs de manipuler des devices <dialout; %a&;
audio; 777*


Uti i sateurs
Uti i sateurs
Cr oupes ? /etc/group
$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:acox,ttso,ltorvalds
dialout:x:20:cupsys,acox,ttso,ltorvalds
fax:x:21:hugo,corentin
cdrom:x:24:haldaemon,acox,ttso,ltorvalds
floppy:x:25:haldaemon,acox,ttso,ltorvalds
tape:x:26:acox,ttso,ltorvalds
sudo:x:27:
audio:x:29:ttso,ltorvalds
www-data:x:33:
backup:x:34:
shadow:x:42:
utmp:x:43:
video:x:44:acox,ttso,ltorvalds
sasl:x:45:
plugdev:x:46:haldaemon,acox,ttso,ltorvalds
acox:x:1000:
ttso:x:1001:
ltorvalds:x:1002:
$


Uti i sateurs
Uti i sateurs
Cr at i on & gest i on

Outils Eposi&G ?
{user,group}{add,mod,del}

Outils EdistroPdependantG ?
{add,del}{user,group}

Outils divers ?
chsh; chfn

Edition directe des %ichiers

dconseille pour les crationsOsuppressions

acceptable pour les modi%ications




Uti i sateurs
Uti i sateurs
Uoi r

bui suisPHe S
whoami, id, groups, who needs sleep

bui est l@ S
who, users

bui tait l@ S
last, lastlog

bui %ait quoi S


w

bui e&iste S
lastlog, cat /etc/passwd


Uti i sateurs
Uti i sateurs
:ut hent i % i cat i on ? :8

'0authenti%ication est gre par :8 <luggable


:uthentication 8odules*

:8 permet de changer la %aYon dont on va identi%ier un


utilisateur <globalement; ou pour un service donn*

:8 g-re . aspects de l0authenti%ication ?

a&&ount ? validit du compte; e&piration du mot de passe; 777

authentifi&ation ? vri%ication de l0identit de l0utilisateur

#ass0ord ? modi%ication du mot de passe

session ? liste des tBches @ e%%ectuer avant la mise @ disposition


du service <ou apr-s sa terminaison*

:8 se con%igure dans

/etc/pam.conf <con%iguration globale*

/etc/pam.d/* <con%igurations spci%iques; par modules; 777*




Uti i sateurs
Uti i sateurs
:ut hent i % i cat i on ? :8
CrBce @ :8; on peut authenti%ier un utilisateur de
multiples %aYons ?

par son identi%iantOmot de passe situs dans les %ichiers


passwd et group <mthode standard*

par son identi%iantOmot de passe stoc!s dans une base


de donnes <8ySb' par e&emple*

par un dispositi% biomtrique <empreintes digitales777*

par un dispositi% #F$DO"luetooth

par une cle% US"


777en rsum ? l0authenti%ication peut se %aire ?

en %onction de n0importe quel<s* lment<s*

service par service


<par e&emple "luetooth pour login graphique; loginOpass9ord pour la console*


Uti i sateurs
Uti i sateurs
Changer d0 i dent i t ? su et sudo

su <Es9itch userG* ?

permet d0e&ecuter une commande ou d0ouvrir


un shell Een tant queG

ncessite de taper le mot de passe de


l0utilisateur dsir <sau% si l0on est root*

sudo ?

permet d0e&ecuter une commande Een tant


queG

ncessite de taper ;<= mot de passe

les possibilits sont d%inies dans /etc/sudoers




1roi ts
1roi ts


1roi ts
1roi ts
Cnr al i t s

Chaque %ichier ou rpertoire poss-de ?

un propritaire

un groupe propritaire

Chaque %ichier ou rpertoire poss-de , listes de droits ?

les droits pour le propritaire

les droits pour le groupe

les droits pour les autres

Chaque liste donne les oprations possibles pour cet utilisateur ?

e&ture 2r3 %
fi$hier ? donne la possibilit de lire le &ontenu du %ichier
r>pertoire ? donne la possibilit de lire le contenu d0un rpertoire <donc la
liste des %ichiers qu0il contient*

&riture 203 ?
fi$hier ? permet d0crire dans ce %ichier
r>pertoire ? permet d0y crrOrenommerOsupprimer des %ichiers

ex&ution 2x3 %
%ichier ? permet d0e&cuter ce %ichier
rpertoire ? permet d0y 0rentrer0 <cd* et de voir son contenu


1roi ts
1roi ts
Fonct i onnement
4y#e 4y#e
b "loc! device
c Character device %ile
d #pertoire <Directory*
l 'ien symbolique
s Soc!et
p F$FO
- Fichier normal
1roit 1roit
r #ead
w crite
x E&ecute <%ichier*
x chdir <rpertoire*
s SU$D bit
Destinataire Destinataire
u +ser (propri>taire)
g ?roupe
o <thers (les autres, ni 'u' ni 'g')


1roi ts
1roi ts
chmod
&hmod ? permet de grer les droits et peut %onctionner
selon un mode littral ?
chmod destinataire(s) opration droits, ...

destinataire 9 u (user), g (group), o (other) ou a(all)

op>ration 9 2 (ajouter), @ (supprimer), A (mettre * la 'aleur)

droits 9 r (read),
w (write),
, (exe$ute ou $d)


1roi ts
1roi ts
chmod

chmod ? permet de grer les droits et peut %onctionner


selon un mode littral ?
chmod destinataire(s) opration droits, ...

destinataire 9 u (user), g (group), o (other) ou a(all)

op>ration 9 2 (ajouter), @ (supprimer), A (mettre * la 'aleur)

droits 9 r (read), w (write), , (exe$ute ou $d)


E&emples ?
chmod ugo+rwx fichier1 fichier2
chmod u+rw, g+r, o-rwx fichier3
chmod ug=rwx,o=rx fichier4
chmod a+rx,u+w repertoire


1roi ts
1roi ts
chmod

chmod ? peut aussi %onctionner en mode octal ?

trois groupes d0utilisateurs <u; g; o*

trois bits par groupe correspondant @ r; 9 et &

le mode s0e&prime alors en octal




1roi ts
1roi ts
chmod
chmod 755 <=> chmod u=rwx,g=rx,o=rx


1roi ts
1roi ts
chown
&ho0n ? permet de changer le propritaire ou le groupe
propritaire d0un %ichier
chown propritaire:groupe fichier ...

propri>taire ? nouveau propritaire du %ichier ou rpertoire

groupe ? nouveau groupe propritaire du %ichier ou


rpertoire

fi$hier %%% ? %ichiers ou rpertoires dont il %aut changer la


proprit

Si le groupe est omis; cho9n ne change que le propritaire


chown root /etc/passwd

Si propritaire est omis; cho9n ne change que le groupe


chown :cdrom /dev/cdrom


1roi ts
1roi ts
umask

'es droits d0un %ichier ou rpertoire @ sa cration


sont d%ini par umas!

: sa cration; un %ichier aura les permissions ?


555 6 2umas73

: sa cration; un rpertoire aura les permissions ?


888 6 2umas73
$ umask 0022
$ umask
0022
$ umask -S
u=rwx,g=rx,o=rx
$ touch fichier; mkdir repertoire; ls -ld fichier repertoire
-rw-r--r-- 1 tux zoo ... fichier
drwxr-xr-x 2 tux zoo ... repertoire
$


1roi ts
1roi ts
sui dO sgi d bi t s

suidOsgid bits <s* ? celui qui e&cute prend


temporairement l0identit du propritaire ou
groupe propritaire du %ichier
$ ls -l zzz
-rwxr-xr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$ chmod u+s zzz
$ ls -l zzz
-rwsr-xr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$ chmod g+s zzz
$ ls -l zzz
-rwsr-sr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$
tr-s utile mais tr-s dangereu&


1roi ts
1roi ts
st i c!y bi t

stic!y bit <t* ? seul le propritaire du %ichier ou


rpertoire peut renommer ou supprimer un
%ichier dans un rpertoire a%%lig du Estic!y
bitG
$ touch fichier
$ chmod a+rxw fichier
$ chmod +t .
$ sudo chown root . fichier
$ ls -la
total 12
drwxr-xr-t 2 root ltorvalds 4096 2007-01-17 00:17 .
drwxr-xr-x 3 ltorvalds ltorvalds 4096 2007-01-16 23:02 ..
-rwxrwxrwx 1 root ltorvalds 0 2007-01-17 00:17 fichier
$ rm -f fichier
rm: ne peut enlever `fichier': Permission non accorde
$


9arti ti ons :
9arti ti ons :
!i esystems
!i esystems


!i esystem
!i esystem
(ypes de % i l esyst ems

mini&

%s original

simple; encore utilis sur les disquettes

limit <2. 8b*

e&t+

dvelopp en )66,

limit <+ (b*

e&t,

e&t+ Hournalis


!i esystem
!i esystem
(ypes de % i l esyst ems

e&t.

supporte Husqu0au b <)L


)1
*

en cours d0intgration au !ernel

H%sO&%s

Hournaliss

respectivement $"8OSC$

#eiserFSO#eiser.

Hournalis

)L %ois plus per%ormant sur les petits %ichiers

probl-me de prennit S


!i esystem
!i esystem
(ypes de % i l esyst ems

iso622LOud%

respectivement CD#omsODUD#oms

%atOv%atOnt%s

%atOv%at bien grs

support nt%s plus dlicat <ro*

union%s

aggrgat de %ilesystems di%%rents

mlange possible entre roOr9

n%sOsmb%sOcoda

%ilesystems rseau


!i esystem
!i esystem
Fi l esyst ems H our nal i ss

Un %ilesystem Hournalis note toutes les


transactions @ venir avant de les e&cuter

En cas de crash; le syst-me peut savoir ce qui a


t %ait et ce qui ne l0a pas t

'a Hournalisation procure donc quelques


avantages ?

la dure d0un %sc! au boot ne dpend plus de la


taille du %ilesystem <on sait ou chercher*

intgrit des donnes accrue <et


paramtrables*

e&t,Oe&t.OH%sO&%sO#eiserFSO#eiser. sont Hournaliss




!i esystem
!i esystem
ar t i t i ons

les disques sont dcoups en partitions primaires


<ma& ? .* et tendues

les partitions sont reprsentes par des numros @


la %in du device reprsentant le disque

les devices dpendent de l0inter%ace du disque et


de sa position <e7g7 OdevOhda pour le )
er
disque $DE;
OdevOhdb pour le +
-me
; etc777*


!i esystem
!i esystem
Fi l esyst ems
chacune des partitions
contient un %ilesystem
<E%sG* qui sera mont dans
l0arborescence du syst-me


!i esystem
!i esystem
Devi ces et poi nt s de mont age

'es disques et les partitions sont des devices

Une partition contient la EracineG du %s

'es autres partitions sont EmontesG sur le %s




!i esystem
!i esystem
Cr at i on de par t i t i ons
sfdisk ? ligne de commande <C'$*
fdisk, cfdisk ? menus te&te <curses*
gparted ? inter%ace graphique <gnome*


!i esystem
!i esystem
Cr at i on de % i l esyst ems
mkfs.<put_you_favorite_filesystem_here> <device>

mini& ? %s linu& historique; encore utilis pour les disquettes

cram%s ? %s pour embarqu et initrd

e&td+;,e ? %ilesystem EstandardG linu& <e&t, Hournalis*

reiser.OH%sO&%s ? reiserFS; $"8; SC$ <Hounaliss*

msdosOv%at ? dos <%at* & 9indo9s <%atP,+*


user@host:~$ ls /sbin/mkfs.*
/sbin/mkfs.cramfs /sbin/mkfs.ext3
/sbin/mkfs.minix /sbin/mkfs.reiser4
/sbin/mkfs.vfat /sbin/mkfs.ext2
/sbin/mkfs.jfs /sbin/mkfs.msdos
/sbin/mkfs.reiserfs /sbin/mkfs.xfs
user@host:~$


!i esystem
!i esystem
#cr at i on ? i nt r oduct i on @ dd
dd est un cat sous stroRdes ?

il peut contr/ler le nombre d0octets crits

il peut convertir ces octets @ la vole

il peut lireOcrire des %ichiers; des devices; des


pipes; stdinOstdout777

il peut sauter une partie de l0entre ou de la sortie


dd if=/dev/zero of=mes_zeros count=1 bs=1024
bs ? taille des blocs en octets <ici )!o*
count ? nombre de blocs
la taille totale sera don$ (bsB$ount)


!i esystem
!i esystem
Cr at i on de % i l esyst ems
user@host:~/temp$ dd if=/dev/zero of=monfs.raw bs=1024 count=10240
10240+0 enregistrements lus
10240+0 enregistrements crits
10485760 octets (10 MB) copis, 0,08864 seconde, 118 MB/s
user@host:~/temp$ sudo losetup /dev/loop0 monfs.raw
user@host:~/temp$ sudo mkfs.ext2 /dev/loop0
mke2fs 1.39 (29-May-2006)
tiquette de systme de fichiers=
Type de systme d'exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
2560 inodes, 10240 blocs
512 blocs (5.00%) rserv pour le super utilisateur
Premier bloc de donnes=1
Nombre maximum de blocs du systme de fichiers=10485760
2 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
1280 inodes par groupe
Superblocs de secours stocks sur les blocs :
8193
criture des tables d'inodes : complt
criture des superblocs et de l'information de comptabilit du systme de fichiers : complt
Ce systme de fichiers sera automatiquement vrifi tous les 23 montages ou
tous les 180 jours, selon la premire ventualit. Utiliser tune2fs -c ou -i pour craser la valeur.
user@host:~/temp$ sudo losetup -d /dev/loop0


!i esystem
!i esystem
8ont age de par t i t i ons

du;emount ? dd;emontage des partitions sur le


%ilesystem
mount -t <fstype> <device> <mountpoint>
umount <device|mountpoint>
user@host:~/temp$ mkdir -p /mnt/mountpoint/
user@host:~/temp$ sudo mount -t ext2 -o loop monfs.raw /mnt/mountpoint/
user@host:~/temp$ df /mnt/mountpoint/
Sys. de fich. 1K-blocs Occup Disponible Capacit Mont sur
/home/leucos/temp/monfs.raw
9911 92 9307 1% /mnt/mountpoint
user@host:~/temp$ sudo umount /mnt/mountpoint/


!i esystem
!i esystem
ar t i t i ons ? /etc/fstab

'es partitions @ monter au boot sont dcrites dans /etc/fstab


LABEL=ROOTFS / ext3 defaults 1 1
UUID=ed2d8d56-5c08-4bd4-977e-673f7a1966b2 /usr ext3 defaults 0 0
/dev/hda1 /var reiserfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/cciss/c0d0p2 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/ida/c0d0p1 /home ext3 defaults 1 1

our chaque %ilesystem @ monter; OetcO%stab contient ?

la partition @ monter <OdevOhda)*

le moint de montage <Ovar*

le type de %ilesystem <reiser%s; e&t,; 777*

les options de montage <lecteur seule; propritaire; etc777*

un bool-n @ ) si le %s doit >tre sauvegard par dump

un numro d0ordre pour la vri%ication de %s au boot




!i esystem
!i esystem
ar t i t i ons ? /etc/fstab
LABEL=ROOTFS / ext3 defaults 1 1
UUID=ed2d8d56-5c08-4bd4-977e-673f7a1966b2 /usr ext3 defaults 0 0
/dev/hda1 /var reiserfs defaults 0 0

'es partitions @ monter sont dsignes par ?

un device <OdevOhda)*

un label <#OO(FS*; cr par e2label ou tune2fs -L

un UU$D; identi%iant unique <ed+d5d12P1cL5P.bd.P633eP23,%3a)622b+*;


cr par tune2fs -U

'es UU$D et labels permettent une indpendance par


rapport au device

findfs permet de retrouver un %s par label ou UU$D




!i esystem
!i esystem
Cest i on

d% ? donne l0occupation des %ilesystems monts


df -Th | grep "^/dev/"

hdparm ? tuning du disque <D8:; energie; 777*


sudo hdparm /dev/sda

tune+%s ? tuning du %ilesystem <ma&Pmount; UU$D*


sudo tune2fs -l /dev/sda2

%sc! ? vri%ication du %ilesystem <boot singlePuser*


fsck -a /dev/hda6


!i esystem
!i esystem
Fi l esyst ems spci au&

proc%s

mont dans Oproc

contient des in%ormations sur les processus

Wone %ourrePtout pour les variables e&portes


du !ernel

sys%s

mont dans Osys

contient des in%ormations sur les devices


prsents


!i esystem
!i esystem
Fi l esyst ems spci au& ? l e s9ap

'0espace de s9ap permet de dcharger


temporairement la mmoire physique <#:8*

'a taille empirique recommande est 7 B C"D

'orsqu0un process n0utilise pas une Wone de sa


mmoire <EpageG*; le !ernel peut dcider de la
mettre dans le s9ap <Es9ap outG*

'orsque la mmoire physique se %ait rare; les


Wones ncessaires au& process ?

doivent >tre stoc!es sur le s9ap <Es9ap


outG*

puis relues depuis le s9ap lorsque le process


s0e&cute <Es9ap inG*


!i esystem
!i esystem
i nodes & % i chi er s

Dans un %s uni&; chaque %ichier est


reprsent par un inode

'e %s contient une table d0association


Tnom de %ichierT TinodeT

'0inode contient toutes in%ormations


ncessaires concernant le %ichier ?

numro d0inode

permissions; propritaire

dates <cration; acc-s; modi%ication*

r%rences vers les blocs de donnes




!i esystem
!i esystem
i nodes & % i chi er s


!i esystem
!i esystem
'i ens symbol i ques ? har d l i n!s

Un hard lin! est


simplement une entre
de la D( qui pointe vers
un inode

$l peur y avoir plusieurs


hardPlin!s sur un inode
<et donc plusieurs
EnomsG pour un
m>me contenu*

'es inodes e&istent tant


qu0il y a au moins un
hardPlin! pointant
dessus


!i esystem
!i esystem
'i ens symbol i ques ? so% t l i n!s

'es so%t lin!s <symbolic lin!s O


symlin!s* pointent vers un
autre E%ichierG de la D(

'e lien symbolique n0e&iste que


par l0obHet qu0il pointe ? sans lui;
plus de %ichier


!i esystem
!i esystem
Har d l i n!s et so% t l i n!s ? choi si r

Utilisation des liens ?

hard lin!s ?

ne peuvent %onctionner que sur un m>me


%ilesystem <la tables des inodes est spci%ique au
%ilesystem*

per%ormances ma&imum <rien ne distingue un hardP


lin! d0un autre*

so%t lin!s

peuvent %onctionner entre les %ilesystems

impact sur les per%ormances <indirection*

un symlin! n0est rien sans son hardPlin! =




!i esystem
!i esystem
'i ens symbol i ques ? ln et stat

ln permet de crr des liens


ln original destination
cre un hard lin! <destination* pointant sur
l0inode de original
ln -s original destination
cre un lien symbolique destination pointant sur
original

stat permet de conna4tre toutes les in%os d0un


inode
stat fichier
a%%iche le contenu de l0inode point par fi$hier


!i esystem
!i esystem
'U8 ? 'ogi cal Uol ume 8anagement

Fournit un abstraction du matriel de stoc!age ?

on travaille sur des volumes logiques et non plus sur


des partitions

on travaille sur des volume groups au lieu de disques

on peut aHouter des partitions dans des volumes


groups

on peut agrandir les volumes logiques si necessaire

'U8 permet au %inal de construire des syst-mes de


%ichiers sur des devices ayant des tailles
modulables

'e syst-me de %ichier doit supporter le


redimensionnement pour en pro%iter =


!i esystem
!i esystem
'U8


!i esystem
!i esystem
#:$ D

Diveau& de #:$D <inux6;(5(<=*

>,od 2inear3 ? les disques sont concatnes

raid? 2stri##in)3 ? un morceau de donne sur chaque disque

raid@ 2mirrorin)3 ? un morceau de donne sur tous les disques

raid, ? la parit est stoc!e sur un disque

raidA ? la parit est distribue sur les disques de l0ensemble #:$D

raid5 ? la parit est distribue en double sur les disques de l0ensemble #:$D

raid LN) ? un ensemble raidL en miroir

raid@? 2@=?3 ? un ensemble raid) stripp

Cestion

/sbin/mdadm
/etc/mdadm/mdadm.conf


!i esystem
!i esystem
Fi l esyst ems chi % % r s

CryptFS; EncFS; 'oopP:ES; losetup Pe; (rueCrypt;


dmPcrypt777 * l'aide =

'e choses se stabilisent; et deu& mhodes


mergent ?

4rue+ry#t

multiPplate%orme <'inu&Ocindo9sfO+LL&*

volumes chi%%rs indtectables et indcelables

Linux Unified Bey Setu# <lu!s*

Crypto:$ !ernel

multicle%s

volumes dtectables


Cdi teurs
Cdi teurs
"n infinite number of monkeys typing into ?=+ ema$s would ne'er
make a good program%&
'inus (orvalds


Cdi teurs
Cdi teurs
cat ; echo M

touHours disponible

per%ormances imbattables
user@host:~$ echo "chat "{"noir,",blanc} > texte.txt
user@host:~$ cat texte.txt
chat noir, chat blanc
user@host:~$ cat > texte.txt
chat blanc, chat noir
user@host:~$ cat texte.txt
chat blanc, chat noir
user@host:~$

pas vraiment un diteur777




Cdi teurs
Cdi teurs
vi

tr-s petit

<presque* touHours disponible

incontournable

cryptique
<pour les emacsiens*

apprendre avant d0en avoir besoin

incontournable


Cdi teurs
Cdi teurs
emacs

sait tout %aire777

777m>me le reste <e&tensible*

cryptique <pour les viPistes*

tr-s gros

<presque* Hamais disponible

apprendre avant d0en avoir besoin




Cdi teurs
Cdi teurs
7 7 7 et l es aut r es

C'$ ? aee; ed; e,; Hoe; Hed; nano; pico;7777

fcindo9 ? &ed; &9pe; a&e;777

Cnome ? gedit; gnotepadN; scite;


scribes777

JDE ? !ate; !edit; 777




Cdi teurs
Cdi teurs
Sur vi vr e @ vi

vi a deu& modes ?

mode commande ? ce que l0on tape


est considr comme une commande
et n0a%%iche rien

mode insertion ? ce que l0on tape


s0crit dans le %ichier

Du mode commande au mode insertion ? i; o; 777

Du mode insertion au mode commande ? _EscM




Cdi teurs
Cdi teurs
Commandes vi
/ : rechercher
n : occurence de recherche suivante
:w : ecrit le fichier sur le disque
:q : quitte vi
i : passer en mode insertion
: avancer de n lignes
n +
dd : effacer la ligne courante
o : insrer une ligne en dessous et passer en mode insertion
:q! : quitte vi malgr les avertissements
:x : ecrit le fichier sur le disque et quitte vi (quivaut :wq)
G : aller la ligne n. Si n est omis, va la fin du fichier
n +
dw : effacer le mot courant
D : effacer la fin de la ligne courante


She : &ommandes a/an&es
She : &ommandes a/an&es


9ersonna i ser e she
9ersonna i ser e she
:l i ases

'es alias permettent de crr une


commande personnalise
alias cd..="cd .."
alias la="ls -la"
alias cat="echo Impossible de lire "

alias sans arguments donne la liste des


alias actuellement d%inis

unalias permet de supprimer un alias


unalias cd..


9ersonna i ser e she
9ersonna i ser e she
`O 7 bashdr c; ]pr o% i l ee

'0environnement au dmarrage du shell est


paramtrable

~/.bashrc ? &cut @ chaque shell

~/.bash_profile ? e&cut @ chaque login shell

$l est pr%rable d0utiliser ~/.bashrc; les login


shell se %ont rares777

'a con%iguration par de%aut d0un nouvel


utilisateur est dans /etc/skel

'a con%iguration EsystemP9ideG est d%inie


dans /etc/bash.bashrc et /etc/profile

enser @ personnaliser http_proxy




+ommandes a/an&es
+ommandes a/an&es
"oucl es ? for

for/in ? permet d0e&cuter une srie de


commandes sur chacun des lments d0une liste
for var in list; do things; done
E&emples ?
for i in 1 2 3
do echo i vaut $i
done
for i in mnt boot var; do echo Contenu de /$i; ls /$i; done
for i in b{in,oot}; do echo -n "/$i prend "; du -skh /$i; done


+ommandes a/an&es
+ommandes a/an&es
"oucl es ? bac!t i c!s & seq

seq ? permet de gnrer une liste sur S(DOU(


seq 1 9 a%%iche les chi%%res de de ) @ 6
seq 1 2 9 a%%iche les nombres impairs entre
) et 6

'es `` <bac!tic!s* e&cutent une commande et


se remplacent par la sortie de cette commande
rm `seq 1 3` ? supprime les %ichiers nomms )
+ et ,


+ommandes a/an&es
+ommandes a/an&es
"oucl es ? for, `` et seq ens embl e
for, `` et seq
for i in `seq 3`; do echo i vaut $i; done
for i in `seq 1 2 9`; do echo i vaut $i; done
for i in `seq 9 -2 1`; do echo i vaut $i; done
for i in `ls ~`; do echo Il y a $i dans $HOME; done
for i in ~/tmp/*; do echo -n Le fichier $i est de type" "
file -b $i
done
for i in ~/tmp/*; do echo -n Le fichier $i est de type" "
file -b "$i"
done
for i in ~/tmp/*; do echo -n Le fichier \'$i\' est de type" "
file -b "$i"
done


+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? cut
&ut ? permet d0e&traire une colonne dans un
%ichier @ champs dlimits
cut -f<i> -d<dlim> <file>

cut lit sur S(D$D si file est omis

le sparateur de champ est d>lim <blanc si omis*

e&trait le i
-me
champ sur chaque ligne et a%%iche sur S(DOU(
cut -f1 -d':' /etc/passwd a%%iche tous
les utilisateurs dclars dans OetcOpass9d


+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? sort
sort ? permet de trier les lignes lues dans un
%ichier <ventuellement @ champs dlimits*
sort -k<k> [-n] [-r] -t<dlim> <file>

sort lit sur S(D$D si file est omis

le sparateur de champ est d>lim <ou du blanc si d>lim est omis*

compare en %onction de la cle% @ la position k

avec l0option @r; l0ordre est renvers <WPMa; 6PML*

avec l0option Pn; la comparaison n0est plus alphabtique mais numrique


sort -k3 -nt':' /etc/passwd a%%iche
OetcOpass9d dans l0ordre numrique des U$D


+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? uniq
uniq ? permet de supprimer les lignes
conscutives doublon lues dans un %ichier
uniq [-c] <file>

sort lit sur S(D$D si file est omis

n0a%%iche qu0une ligne lorsque plusieurs lignes conscutives sont lues

avec l0option @$; uniq a%%iche le nombre d0occurences pour chaque ligne
echo -e "aaa\naaa\naaa\nbbb\nbbb" | uniq
n0a%%iche que 0aaa0 et 0bbb0


+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Tstream
editorT*
sed [-r] 's/motif1/motif2/' [fichier]

lit fi$hier ou S(D$D si aucun %ichier n0est spci%i

Pr permet d0utiliser des e&pressions rguli-res <presque* compatibles avec


egrep

remplace 0moti%)0 par 0moti%+0 <les moti%s sont des e&pressions rguli-res
compatibles avec grep*

g)777gn dans moti%+ sont des variables positionnelles reprsentant un match


dans moti%)

crit le rsultat sur S(DOU(


echo "chat noir" | sed -r 's/noir/blanc/'
a%%iche Tchat blancT


+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Estream
editorG*

le modi%icateur 0g0 permet d0attraper plusieurs %ois le moti% sur la


m>me ligne ?
echo "chat noir, trs noir" | sed -r 's/noir/blanc/'
a%%iche Echat blanc; tr-s noirG
echo "chat noir, trs noir" | sed -r 's/noir/blanc/g'
a%%iche Echat blanc; tr-s blancG

le modi%icateur 0i0 permet d0ignorer la casse lors des valuations ?


echo "chat NOIR, trs noir" | sed -r 's/noir/blanc/g'
a%%iche Echat DO$#; tr-s blancG
echo "chat NOIR, trs noir" | sed -r 's/noir/blanc/gi'
a%%iche Echat blanc; tr-s blancG


+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Estream
editorG*

g)777gn dans moti%+ sont des variables positionnelles

ces variables r%renceront les e&pression entre <* dans moti%)

elles ne sont initialises que s0il y a une concordance


echo -e "chat noir" | sed -r 's/chat (.*)/\1 chat/'
a%%iche Tnoir chatT
echo -e "abc" | sed -r 's/(.)(.)(.)/\3\2\1/'
a%%iche TcbaT


+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? sed

#appel sur les e&pressions rguli-res


. n'importe quel caractre
* le caractre prcdent 0 ou plusieurs fois
+ le caractre prcdent 1 fois au moins
? le caractre prcdent 0 ou 1 fois
{n} le caractre prcdent exactement n fois
{m,n} le caractre prcdent de m n fois
{n,} le caractre prcdent n fois ou plus
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre
^/$ le dbut/la fin de ligne
| sparateur pour spcifier
de multiples expressions
(ou logique)

Classes de caract-res
[[:alnum:]]: [a-zA-Z0-9]
[[:alpha:]]: [a-zA-Z]
[[:ascii:]]: caractre ascii (...)
[[:blank:]]: espace ou tabulation
[[:cntrl:]]: caractre de contrle
[[:digit:]]: [0-9]
[[:graph:]]: caractres imprimables
et visibles
[[:lower:]]: [a-z]
[[:print:]]: caractre imprimable
[[:punct:]]: ponctuation
[[:space:]]: espace, tabulation, ...
[[:upper:]]: [A-Z]
[[:word:]] : [a-zA-Z0-9_]
[[:xdigit:]] : [a-fA-F0-9]


+ommandes a/an&es
+ommandes a/an&es
#echer cher des % i chi er s ? find
find argument options
liste les %ichiersOrpertoires situs dans argument selon des crit-res d%inis dans
options7

options
Pname glob ? liste les %ichiers correspondant au shell glob glob
Ptype %OdOl ? ne liste respectivement que les %ichiers; rpertoires; liens
Pe&ec ? e&cute une commandercursi%

patrons de globs
. n'importe quel caractre
* le caractre prcdent 0 ou n fois
+ le caractre prcdent 1 ou n fois
? le caractre prcdent 0 ou 1 fois
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre

e&emples
find ~/mes_docs -type f -name "*.doc"
find ~/mes_docs -type f -name "*facture*" -exec rm -f '{}' \;
find / -name "*log*" -type d


+ommandes a/an&es
+ommandes a/an&es
xargs; compani on de find

&args permet d0utiliser la sortie d0une


commande et de la passer en argument @ une
autre
cut -f6 -d':' /etc/passwd | xargs du -skh

'a commande &args est souvent utilise en


combinaison avec %ind ?
find arguments | xargs commande

C0est l0quivalent de 0%ind Pe&ec0; la per%ormance


en plus ?

%ind Pe&ec e&cute un process pour chaque rsultat

&args cumule la sortie pour ma&imiser le passage


d0arguments


+ommandes a/an&es
+ommandes a/an&es
#echer cher des % i chi er s ? locate

find e%%ectue une recherche sur le


%ilesystem en temps r-l ? long

our la recherche par nom de %ichier;


locate permet de %aire la m>me chose

locate utilise une base de donnes prP


gnre par updatedb

locate permet de rechercher des


e&pressions rguli-res <find ne peut
rechercher que des globs*


She s&ri #ti n)
She s&ri #ti n)
#alk is $heap%
;how me the $ode&
'inus (orvalds


She s&ri #ti n)
She s&ri #ti n)
"ases

Un shell script est un %ichier e&cutable


contenant une srie de commandes shell

Un script commence gnralement par ?


#!/bin/sh

$l doit >tre e&cutable; ou appell par 0sh


script0

ar convention; il se termine en gnral


par E7shG

'es lignes commencant par 0h0 sont des


commentaires


She s&ri #ti n)
She s&ri #ti n)
Uar i abl es

Dans un script; on peut utiliser des


variables locales ou issues de
l0environnement
echo $HOME

En dehors de l0a%%ectation; la variable doit


>tre prcde par 0V0
mavar=bonjour
echo $mavar

'es arguments passs aussi scripts sont


automatiquement a%%ects au& variables
V); V+; 777


She s&ri #ti n)
She s&ri #ti n)
Uar i abl es

'a variable VS donne la valeur de sortie


numrique de la derni-re commande

Un rsultat nul indique <en gnral =* que


la commande a russi
user@host:~$ touch f
user@host:~$ cat f
user@host:~$ echo $?
0
user@host:~$ rm f
user@host:~$ cat f
cat: f: Aucun fichier ou rpertoire de ce type
user@host:~$ echo $?
1


She s&ri #ti n)
She s&ri #ti n)
"r anchement s

'a construction i%OthenOelseO%i permet


d0e%%ectuer des branchements
conditionnels

en %onction de valeur de sortie de


commandes ?
echo -n 192.168.0.254 est
if ping -c1 192.168.0.254
then
echo joignable
else
echo injoignable
fi


She s&ri #ti n)
She s&ri #ti n)
"r anchement s

'a construction i%OthenOelseO%i permet d0e%%ectuer


des branchements conditionnels

en %onction de valeur de variables ?


if [ "$USER" = "root" ]
then
echo Bonjour maitre
else
echo Encore un utilisateur de base...
fi

'a construction [ \ est l0quivalent de la


commande 0test0


She s&ri #ti n)
She s&ri #ti n)
Compar ai sons

'a commande test <ou 0[\0* permet de


comparer des valeurs entrePelles

Comparaison numriques
-eq ? gal <equal*
-ne ? di%%rent <not equal*
-gt ? plus grand que <greater than*
-ge ? plus grand que ou gal @ <greater or equal*
-lt ? plus petit que <less than*
-le ? plus petit que ou gal @ <less o% equal*

Comparaison de cha4nes
i ? gal <cha4nes identiques*
=i ? di%%rent
< ? prc-de <tri alphabtique*
> ? suit <tri alphabtique*


She s&ri #ti n)
She s&ri #ti n)
:r i t hmt i que

'e shell o%%re trois possibilits pour


%ormuler des calculs ?

la commande expr expression ?


valeur=`expr 10 \* 20`
valeur=`expr $valeur + 2`

la construction $[ expression ]
valeur=$[10 * 20]
valeur=$[$valeur + 2]

la construction $(( expression ))


valeur=$((10*20))
valeur=$(($valeur+2))


She s&ri #ti n)
She s&ri #ti n)
"oucl es

9hile conditionOdoOdone permet de boucler tant


que la condition est vraie
num=1
while [ $num -le 5 ]; do
echo $num
num=$[$num + 1]
done
while ping -c1 $host > /dev/null 2>&1; do
echo $host est joignable
done
echo $host est Injoignable


Grer et su#er/i ser
Grer et su#er/i ser
es ressour&es
es ressour&es
Ee all know /inu, is greatFit does infinite loops in G se$onds&
'inus (orvalds


Grer es resssour&es
Grer es resssour&es
Cr er l e t emps

8ettre le syst-me @ l0heure

Depuis un serveur ntp ?


ntpdate time.erasme.org

: la main ?
date --set="20061224 23:59:00"

'ire l0heure
date +FORMAT
e& ? date +%Y%m%d" "%H:%M:%S

Chronomtrer
time commande


Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus

Chaque e&cutable; script; dmon;


appara4t comme un processus sur le
syst-me lorsqu0il est lanc

'orsqu0un processus est lanc; le !ernel


lui attribue un numro <$D*

'a commande Hobs ne permet de voir que


les processus e&cuts dans le terminal
courant

our visualiser les autres processus; il


%aut utiliser 0ps0


Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? ps

Uoir tous les processus


ps -edf

Uoir tous les processus; un peu plus de


dtail
ps awux

Uoir les processus de l0utilisateur courant


ps wux
PID : ID du process
PPID : ID du process parent
VSZ : consommation totale du process (RAM+SWAP)
RSS,RES : taille occup sur la mmoire physique (RAM)
TTY : terminal associ
STAT : tat (R=runnable, S=sleep, T=stopped, Z=zombie)
START : heure de lancement
TIME : cumul temps CPU consomm
M
n

m
o
n
i
q
u
e
s


Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? kill{,all}

kill permet d0envoyer in signal @ un processus

ce processus peut intercepter ce signal et agir en


consquence

kill n0est pas %orcment mal%aisant =

man kill donne la liste de signau& possibles

killall permet d0envoyer un signal @ des


processus par leur nom

un utilisateur ne peut signaler que ses processus

attention ? kill est souvent un builtPin <et non


/bin/kill*; donc help kill et non man kill
pour de l0aide =


Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? kill{,all}
kill -signal pid
killall -signal nom

pid ? numro du process

signal ? numro ou nom du signal


<-1 envoie le signal @ tous les processus*
S(OOCOD( ? quivalents @ _CtrlMPW et %gObg pour les process du terminal
$D( <+* ? arr>t demand par l0utilisateur <gnralement via _CtrlPCM*
(E#8 <)1* ? !ill demande gentiment au process de se terminer
J$'' <6* ? le processus est tu sans sommation
HU <)* ? signal de dconne&ion du terminal; maintenant surtout utilis pour
demander une recon%iguration
US#) ? gnralement utilis pour demander une recon%iguration S
i
)
n
a
u
x

&
o
u
r
a
n
t
s


Grer es ressour&es
Grer es ressour&es
buot as di sque

'a suite d0outils 0quota0 permet de limiter


l0espace disque et le nombre d0inodes ?

par usager

par groupe

Ces limites sont soit ?

rigides ? d-s qu0elles sont atteintes;


impossible de crr d0autres %ichiers

souples ? lorsque les limites sont atteintes;


l0utilisateur peut encore consommer de
l0espace pendant une priode de EgrBceG


Grer es ressour&es
Grer es ressour&es
'i mi t es E:8G

:8 permet d0appliquer un certain nombre de


limites @ un utilisateur ou @ un groupe

Ces limites sont d%inies dans


/etc/security/limits.conf

Elles sont appliques @ la catgorie EsessionG

nombre ma& de process

mmoire ma&imum

priorit des processus

777
voir ulimit -a


Su#er/i ser e systme
Su#er/i ser e systme
r obl -mes cl assi ques

Filesystem plein

6Lj des probl-mes spontans

rsolu %acilement en augmentant la capacit du %s


instaeD LV.

Filesystem corrumpu

pertes tr-s rares avec les %s Hournaliss

rsolu %acilement avec une politique de bac!up e%%icace


instaeD ,ontmia/dum#/ar7eia/(((

Crash disque

Un setup #:$D <so%t ou hard* permet de se prmunir %acilement


d0un crash disque

Un reboot sera peutP>tre ncessaire en %onction du bus du


disque
utiiseD e "AE1 2hard ou fourni #ar e 7erne3


Su#er/i ser e systme
Su#er/i ser e systme
r obl -mes cl assi ques

Surcharge syst-me

traquer les gourmands

optimiser le syst-me
utiiseD #s/to#//mstat/sar(((

Facteur humain

de loin; la plus %orte cause d0indisponibilit du syst-me

rsolu laborieusement par de la pratique et la destruction de


nombreu& syst-mes innocents <de production de pr%rence*
ex#rimenteDF &asseDF #aniqueDF re&ommen&eD
ne donneD #as de she $ n'im#orte qui

iratage

deu& catgories d0admins syst-me ? ceu& qui savent qu0ils ont t


pirats; et ceu& qui ne le savent pas

lutteW au quotidien pour >tre dans la )k catgorie


utiiseD i#ta,esF auditeD et faites auditer /os systmes


Grer es ressour&es
Grer es ressour&es
Fi chi er s ouver t s ? lsof

Uoir tous les %ichiers ouverts


lsof

Uoir tous les processus qui ouvrent fi$hier


lsof fichier

Uoir tous les processus qui ouvrent un fi$hier


sous r>pertoire
lsof rpertoire

Uoir tous les %ichiers ouverts par le processus


HII
lsof -pPID

:%%icher en boucle toutes les ; secondes


lsof -rS


Grer es ressour&es
Grer es ressour&es
Fi chi er s ouver t s ? lsof & fuser

Uoir tous les processus ayant une conne&ion


ouverte avec host
lsof -i @host

Uoir tous les process ayant une conne&ion tcp


sur le port port
lsof -i TCP:port

Uoir tous les processus ouvrant des %ichiers sur


un device ou point de montage
fuser -vm <device|mountpoint>

$dem; en e%%ectuant le EmnageG


fuser -kvm <device|mountpoint>


Su#er/i ser e systme
Su#er/i ser e systme
Cr er l 0 espace di sque

Uoir l0occupation de tous les %ilesystems


df -Th

Uoir l0occupation du %ilesystem contenant le


rpertoire rep
df -Th rep

Uoir l0occupation de tous les %ilesystems e&t,


df -ht ext3

Uoir l0occupation de chaque sous rpertoires de


rep
du -h rep

Uoir l0occupation du rpertoire rep


du -sh rep


Su#er/i ser e systme
Su#er/i ser e systme
Char ge syst -me

'e noyau g-re l0ordonancement de tous les


processus du syst-me

'es processus peuvent >tre dans plusieurs tats;


les plus courants tant ?

# <#unnable* ? le processus demande le processeur ou d0EOS

S <Sleep* ? le processus dort

( <s(opped* ? le processus a t arret <Hob control*

'a charge syst-me <Eload averageG* est le


nombre moyen de processus dans la runPqueue
<tat 0#0* pendant une priode donne

'a charge syst-me ne re%l-te pas %orcment la


charge processeur


Su#er/i ser e systme
Su#er/i ser e systme
Char ge syst -me

'a charge syst-me ne tient pas compte du


nombre de processeurs <ou de EcoresG*

uptime renvoie les load averages des ); 1 et )1


derni-res minutes
user@host:~$ uptime
16:19:59 up 101 days, 6 users, load average: 5.10, 3.23, 2.31
<uptime donne aussi l0heure <=* et le temps de
%onctionnement total du syst-me*

'a charge est touHours disponible dans


OprocOloadavg
user@host:~$ cat /proc/loadavg
5.10 3.23 2.31 4/40 20403


Su#er/i ser e systme
Su#er/i ser e systme
Char ge CU

vmstat permet de conna4tre la charge globale


des processeurs
user@host:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 17708 63868 119956 389016 0 0 60 51 211 605 7 1 91 1

mpstat permet de connatre la charge des


processeurs
user@host:~$ mpstat -P ALL
Linux 2.6.17-10-generic (host) 27.12.2006
16:56:12 CPU %user %nice %sys %iowait %irq %soft %idle intr/s
16:56:12 all 6,91 0,11 0,88 1,13 0,02 0,58 90,37 422,11
16:56:12 0 4,84 0,10 1,11 1,97 0,05 1,15 90,78 422,11
16:56:12 1 8,98 0,11 0,65 0,28 0,00 0,00 89,96 0,00

lorsqu0un nombre n est aHout en ligne de


commande; l0a%%ichage d%ile en continu toutes
les n secondes


Su#er/i ser e systme
Su#er/i ser e systme
'i nu& et l a mmoi r e

'e !ernel utilise la mmoire pour ?

son propre code

ses propres donnes

le code des applications &cuts

les donnes des applications e&cutes

le cache disque

'a mmoire en divise en EpagesG

'es pages les moins utilises sont mises en


mmoire virtuelle <dans le s9ap*; ce processus est
appel Es9apping outG ou Epaging outG

our de bonnes per%ormances; il %aut; si possible;


minimiser les oprations de page out


Su#er/i ser e systme
Su#er/i ser e systme
8moi r e

free permet de conna4tre l0tat de la mmoire


user@host:~$ free -m
total used free shared buffers cached
Mem: 1009 985 24 0 89 333
-/+ buffers/cache: 562 447
Swap: 996 17 978

8em dcrit la mmoire physique <#:8*

S9ap dcrit la mmoire s9ap

'a quantit de mmoire <physique* r-llement disponible


est sur la ligne 0PON bu%%ersOcache0 <ici ..3 8b*

vmstat donne @ peu pr-s les m>mes


in%ormations
user@host:~$ vmstat
procs -----------memory---------- ...
r b swpd free buff cache ...
0 0 17708 19284 92748 338840 ...
la m>moire r>)llement disponible 'aut free+buff+cache


Su#er/i ser e systme
Su#er/i ser e systme
8moi r e vi r t uel l e

vmstat et free permettent aussi de conna4tre


l0tat de la mmoire virtuelle
user@host:~$ vmstat
.... ---swap-- -----io---- -system-- ----cpu----
.... si so bi bo in cs us sy id wa
.... 20 590 59 47 211 578 9 2 88 1
user@host:~$ free
total used free shared buffers cached
Mem: 1034224 1016120 18104 0 43712 440104
-/+ buffers/cache: 532304 501920
Swap: 1020088 17720 1002368

swapon -s permet de conna4tre la liste des


partitions utilises pour le s9ap
user@host:~$ swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 1020088 17720 -1


Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
top ? montre la liste des processus tri
selon les crit-res choisis
4ri
M ? tri par mmoire
P ? tri par CU
N ? tri par $D
T ? tri par temps processeur
See&tion
1 ? a%%iche tous les processeurs
i ? a%%iche les tBches runnables
k ? tue un process
r ? renice


Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
saidar ? a%%iche un rsum tr-s complet
des di%%rents sousPsyst-mes

loadavg

CU <global*

processus

mmoire

rseau

disques


Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
statgrab ? permet d0obtenir des
statistiques E%ormattesG
user@host:~$ statgrab net.eth0.up net.eth1.up
net.eth0.up = false
net.eth1.up = true
user@host:~$ statgrab load.
load.min1 = 0.220000
load.min15 = 0.110000
load.min5 = 0.140000
user@host:~$ statgrab -u mem.cache mem.free
414134272
63537152
user@host:~$ statgrab -u mem.cache mem.free |
tr '\n' ' ' | awk '{ print ($1+$2)/(1024*1024)"M" }'
455.188M


Su#er/i ser e systme
Su#er/i ser e systme
:nal yse Eo% % P l i neG ? sar

sar permet de collecter des in%ormations sur


le syst-me @ intervalles rguliers

ces in%ormations sont stoc!es sur le syst-me


et peuvent >tre analyses @ posteriori
sar option -s debut -e fin
-b ? entres sorties
-B ? paging
-c ? cration de process
-d ? activit sur les devices bloc!
-n ? activit rseau
-P ? activit processeur
-q ? load average
-r ? utilisation de la mmoire
-R ? statistiques mmoire
-u ? utilisation du CU
-v ? utilisation des inodes
-y ? activit des tty


Su#er/i ser e systme
Su#er/i ser e systme
:nal yse Eo% % P l i neG ? sar

sar peut aussi monitorer en temps r-l l0activit d0un processus ?


sar -x PID 1 0
user@lazyserver:~$ sar -u -s 10:00:00 -e 11:00:00
Linux 2.6.17-10-generic (lazyserver) 28.12.2006
10:05:01 CPU %user %nice %system %iowait %steal %idle
10:15:01 all 0,53 0,05 1,09 0,10 0,00 98,22
10:25:01 all 0,16 0,07 0,98 0,01 0,00 98,77
10:35:01 all 1,23 0,06 1,24 0,05 0,00 97,42
10:45:01 all 0,58 0,06 1,19 0,06 0,00 98,11
10:55:01 all 3,47 0,17 1,94 2,35 0,00 92,06
Moyenne: all 1,20 0,08 1,29 0,51 0,00 96,92
user@lazyserver:~$ sar -x 6702 1 0
Linux 2.6.17-10-generic (lazyserver) 28.01.2007
11:18:45 PID minflt/s majflt/s %user %system nswap/s CPU
11:18:46 6702 2702,02 0,00 97,98 2,02 0,00 0
11:18:47 6702 12310,89 0,00 91,09 7,92 0,00 0
11:18:48 6702 7212,00 0,00 94,00 5,00 0,00 1
11:18:49 6702 3215,00 0,00 97,00 2,00 0,00 0
11:18:50 6702 10741,41 0,00 93,94 5,05 0,00 1
11:18:51 6702 8178,43 0,00 93,14 4,90 0,00 1


Su#er/i ser e systme
Su#er/i ser e systme
#eboot er S

#aisons de rebooter un linu& ?

changement de !ernel

aHout de matriel

dmnagement
uptime
donne la dure de %onctionnement du syst-me
shutdown -h time
arr>te le syst-me <equivalent @ 0halt0*
shutdown -r time
reboote le syst-me <equivalent @ 0reboot0*
shutdown -c
annule un shutdo9n programm

time ? hh?mm; Nm ou no9




9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s


9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s
Les #a&7a)es 2#aqueta)es3
ont #our o,>e&tif %

de permettre une installation simple

777777777777777777777777 dsinstallation 77777777

777777777777777777777777 mise @ Hour 77777777

de grer des dpendances entre pac!ages

d0>tre recompilable %acilement




9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s
Cn&ore des &ha#ees *

#8 sous Fedora; #edhat; 8andriva; SuSE777

DE" sous Debian; Ubuntu

tar7gW binaires sous Slac!9are

scripts N tar7gW sources sous Centoo

OpenJC; sorte d0espranto du pac!aging


777sans compter les pac!ages source


9a&7a)es
9a&7a)es
#edhat ac!age 8anager

Fonctionne sur les distributions bases #8


http?OOen79i!ipedia7orgO9i!iO'ist]o%]'inu&]distributionsh#8Pbased]%ree]distributions

Deu& commandes su%%isent pour grer les


paquetages sur les syst-mes bass #8

rpm ? permet de manipuler les %ichiers 7rpm et


de grer les paquetages installs

yum ? permet d0installer des paquetages depuis


di%%rentes sources

'es pac!ages #8 ont une e&tension de %ichier


Jar$hK%rpm <paquetages binaires* ou %sr$%rpm
<paquetages source*

'a commande rpm accepte des U#' <%tpOhttp*




9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? rpm

'es pac!ages sont manipuls avec la seule


commande rpm

Enstaer un pac!age
rpm -i package.rpm

Su##rimer un pac!age
rpm -e package

.ettre $ >our un pac!age install


rpm -u package.rpm

'es options -v et -h rendent l0a%%ichage plus


0humain07


9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? rpm

'a commande query <Pq* permet d0interroger un


pac!age ou la base de donnes des pac!ages
installs

Voir les in%ormations sur un pac!age


rpm -qip package.rpm <query in%ormation*
rpm -qi package <pour un pac!age install*

Lister les %ichiers d0un pac!age


rpm -qlp package.rpm <query ist*
rpm -ql package <pour un pac!age install*

"e&her&her dans quel pac!age se trouve fi$hier


rpm -qf fichier <query find*


9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? yum

'a commande yum permet de rechercher ou


d0installer un paquetage directement depuis un
dp/t <$nternet; CDODUD; disque*

'a liste des dpots est d%inie dans /etc/yum*

Enstaer le paquetage nom


yum install nom

"e&her&her les paquetages contenant la cha4ne


nom
yum search nom

.ettre $ >our les in%ormations depuis les dp/ts


yum update


9a&7a)es
9a&7a)es
ac!ages Debi an

Fonctionne sur les distributions bases Debian


http?OOen79i!ipedia7orgO9i!iO'ist]o%]'inu&]distributionshDebianPbased]%ree]distributions

'es syst-mes debian poss-dent l0quivalent


<appro&imati%* du monde #8 pour grer les
paquetages ?

dpkg ? permet de manipuler les %ichiers 7deb et


de grer les paquetages installs

apt-get ? permet d0installer des paquetages


depuis di%%rentes sources

'es pac!ages Debian ont une e&tension de %ichier


%deb <paquetages binaires*

'a commande dpkg n0accepte pas d0U#'




9a&7a)es
9a&7a)es
ac!ages Debi an ? dpkg
'es %ichiers pac!ages sont manipuls avec la
commande dpkg

Enstaer ou mettre $ >our un pac!age


dpkg -i package.deb

Su##rimer un pac!age
dpkg -r package

Su##rimer un pac!age et sa con%iguration


dpkg -P package

"e&onfi)urer un pac!age
dpkg-reconfigure package


9a&7a)es
9a&7a)es
ac!ages Debi an ? dpkg

"e&her&her un %ichier dans les paquetages


installs
dpkg -S fichier

Lister les %ichiers a$tuellement installs pour un


paquetage7
dpkg -L paquetage

Lister les %ichiers installs par un paquetage7


dpkg -l paquetage

Donne 'tat du pa(uetage install


dpkg -l paquetage


9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-get

'a commande apt-get permet de


rechercher ou d0installer un paquetage
directement depuis un dp/t <$nternet;
CDODUD; disque*

apt-get est tr)s per%ormant par rapport @


yum

'a liste des dpots est d%inie dans


/etc/apt/{sources.list,sources.list.d/}

Enstaer le paquetage nom


apt-get install nom


9a&7a)es
9a&7a)es
ac!ages Debi an ? sour ces apt

les outils de la %amille apt utilisent des sour$es


pour obtenir les pac!ages et les mtadonnes
associes

ces sources; d%inies dans


/etc/apt/{sources.list,sources.list.d/}
ont le %ormat suivant
deb http://fr.archive.ubuntu.com/ubuntu/ edgy main restricted

url du d>pLt distribution se$tions%%%

attention en aHoutant des sources ?

il est imprati% d0utiliser des sources de con%iance

il %aut vri%ier la signature des paquets <apt-key permet


de grer les identits*


9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-get

U#)rader tous les paquetages installs


apt-get upgrade

.ettre $ >our l0in%ormation depuis les


dpots
apt-get update

Su##rimer le paquetage
apt-get remove package

9asser @ une distribution plus rcente


apt-get dist-upgrade

Vrifier l0tat de la base de donnes


apt-get check


9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-*

a#t est en %ait une %amille de commandes


ddies @ la getion de paquetages7
buelques membres de la %amille ?

apt-file ? rechercher un %ichier dans les


dpots apt

apt-cache ? rechercher un pac!age dont la


description ou le nom contient une e&pression
rguli-re
apt-file search `which bash`
apt-cache search tcpdump
apt-cache -n search '.*dump.*'


9a&7a)es
9a&7a)es
t ar ; dg; beWi p

tar permet de crr un %ichier contenant d0autres


%ichiers

$l est souvent utilis en combinaison avec gWip ou


bWip+

tar est par%ois utilis comme syst-me de gestion


de paquetage dans certaines distributions
<Slac!9are*

+rr une archive ar$hi'e%tar contenant fi$hiers


tar cvf archive.tar fichiers

+rr une archive tar compresse gWip


ar$hi'e%tar%g. contenant fi$hiers
tar cvzf archive.tar.gz fichiers


9a&7a)es
9a&7a)es
t ar ; dg; beWi p

+rr une archive tar compresse bWip+


ar$hi'e%tar%b.7 contenant fi$hiers
tar cvjf archive.tar.bz2 fichiers

Lister le contenu de l0archive


tar tvf archive
tar tvzf archive.tar.gz
tar tvjf archive.tar.bz2

Cxtraire une archive tar


tar xvf archive
tar xvzf archive.tar.gz
tar xvjf archive.tar.bz2


9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces

$l est pr%rable d0installer des logiciels


avec le gestionnaire de paquetage de la
distribution

intgration plus %ine dans la distribution

gestion des dpendances et des con%lits

mises @ Hour automatiques

dsinstallation aise

(ous les logiciels ne sont cependant pas


disponible sous %orme de paquetages
E est don& #arfois n&essaire d'instaer
un o)i&ie $ #artir de ses sour&es


9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces

'es logiciels installs en dehors du


gestionnaire de pac!age doivent l0>tre
dans /usr/local/

'a plupart des logiciels sont construits


autour d0outils de dveloppement
communs ?

automakeMauto$onf ? d%inition des param-tres


de compilation en %onction de la plate%orme

make ? automatisation de la construction du


binaire @ partir des sources et installation

Des cas particuliers e&istent souvent^ il n0y


a pas de recette miracle777


9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces; v)

dcompacter les sources

con%igurer la compilation

compiler

installer
$ tar xvzf soft-1.2.tar.gz
$ cd soft-1.2
$ ./configure
....
$ make
...
$ make install
...
E&emple ? installer le logiciel 0so%tP)7+7tar7gW0
D>thode 6 9

: ce stade; si tout s0est bien pass; 0so%t0 doit >tre


install dans divers rpertoires sous OusrOlocalO

Cette mthode ne permet pas de dsinstallation


simple


9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces; v+

dcompacter les sources

con%igurer la compilation

compiler

installer
$ tar xvzf soft-1.2.tar.gz
$ cd soft-1.2
$ ./configure
....
$ make
...
$ sudo checkinstall
...
E&emple ? installer le logiciel 0so%tP)7+7tar7gW0
D>thode 7 9

:pr-s quelques questions; chec!install va %aire un


paquet binaire pour votre distribution et l0installer

Cette mthode permet de trans%ormer un logiciel


source en paquet binaire automatiquement


Goot #ro&essF run e/e sF &ron
Goot #ro&essF run e/e sF &ron


Goot
Goot
'es 1 t apes
2@3 Goot hard0are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services


Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
2;3 +har)eur d'HS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services


Goot
Goot
"oot l oader s ? l i l o; gr ub & co7

'e travail du bootloader ? charger le !ernel


en mmoire

$l doit donc ?

savoir ou le trouver

savoir le charger

:pr-s des annes de domination de lilo;


Crub @ pris le dessus

D0autres bootloaders e&istent <notamment


syslinu&; loadlin; silo; milo; emile; etc777*


Goot
Goot
"oot l oader s ? gr ub

C#U" %onctionne en , temps ?

)
er
tage <1)+b d0assembleur* boot sur le 8"#

)71
-me
tage <`)L!b*; boot au dela du 8"#

+
-me
tage <`)LL!b*; charg depuis ObootOgrub

C#U" sait donc <grBce @ )71*; lire un %ichier sur


un %ilesystem e&t,Oreiser%sO&%sO77

$l lit aussi sa con%iguration directement sur le


%ilesystem ? pas besoin deErinstallerG C#U" @
chaque changement

'e +
-me
tage trouve le !ernel et lui passe la main


Goot
Goot
gr ub ? menu7 l st

/boot/menu.lst est le %ichier de con%iguration de grub

il contient des scripts qui sont interprts par grub lors du boot

ces scripts peuvent >tre dits au boot si besoin

dmarrage en single user

changement du root %ilesystem

grubPinstall permet d0crire les tages ) et )71 sur le disque


sudo grub-install /dev/sda

la commande grub se prsente comme un shell^ par e&emple


les commandes quivalentes @ grubPinstall sont ?
[root@server ~]# grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)


Goot
Goot
gr ub ? menu7 l st
default 0
title Ubuntu, kernel 2.6.17-10-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda6
initrd /boot/initrd.img-2.6.17-10-386
quiet
boot
title Ubuntu, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
quiet
boot
title Windows 95/98/NT/2000
root (hd0,0)
makeactive
chainloader +1


Goot
Goot
gr ub ? edi t i on


Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
2I3 Goot 7erne
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services


Goot
Goot
Jer nel

'e !ernel se dcompresse lui m>me en #:8; et


s0e&cute; passant par di%%rentes phases ?

initialisation des sousPsyst-mes <mmoire; :C$; CU; 777*

initialisation des drivers <$DE; SCS$; 777*

chargement ramdis!

chargement modules du ramdis!

initialisation des <nouveau&* devices

montage des pseudoP%ilesystems <Oproc; Osys*

montage de la <vraie* partition O

e&cution d0init


Berne
Berne
Uer si ons
Versionnement du noyau
Uersions a7b7c[7d\

a7b ? branche principale

b impair ? branche de dveloppement


+7); +7,; +717; 777

b pair ? branche stable


+7L; +7+; +7.; +72; 777

c ? identi%iant unique dans la srie

d ? depuis +7275O+727)); sous versions


mineures intgrant des bug%i&es <stabilisation
de la version 0a7b7c0*
uname -r permet de conna4tre votre version du noyau


Berne
Berne
8odul es

'es modules sont des Emorceau&G de noyau

$ls peuvent >tre chargsOdchargs pendant


l0e&cution du !ernel

$ls sont compils @ partir de sources du !ernel777


777et peuvent aussi provenir de %ournisseurs
commerciau& <EdriversG*

Un dictionnaire <modules7dep* permet de savoir


quel module est ncessaire au %onctionnement
de tel autre module

On les trouve dans /lib/modules/`uname -r`/




Berne
Berne
8odul es

!ernel plus petit <barre des );..8o =*

Empreinte mmoire optimise

Dboguage plus %acile

8odules binaires provenant de tiers

lusieurs version peuvent EcohabiterG

:ttention @ la scurit =
777inter>t S


Berne
Berne
8odul es

Ensertion d0un module dans le !ernel


insmod /chemin/complet/vers/module
modprobe module

"etrait d0un module du !ernel


rmmod module


Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
2J3 init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services


"un e/e s
"un e/e s
init

init est le premier et le seul processus e&cut


directement par le !ernel <$D )*

il est le p-re de tous les autres

du point de vue d0init; le syst-me est dans des


tats discrets ? les runlevels

chaque runlevel d%init un dmarrage spci%ique


du syst-me

les runlevels possibles sont [LP2sS\

le comportement d0init en %onction du runlevel est


d%ini dans OetcOinittab

init a donc pour vocation principale de mettre le


syst-me en tat de marche


"un e/e s
"un e/e s
/etc/inittab
id:levels:action:process

id ? identi%icant unique

levels ? les runlevels pour lesquels cette action s0applique

action ? action ou dclencheur

process ? le<s* processus @ lancer


l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now


Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
2A3 S&ri#ts SysV
dmarrage des services


SysV i ni t
SysV i ni t
St ar t up scr i pt s

init met le syst-me en route en invoquant <indirectement* des


scripts de dmarrage

Ces scripts permettent d0e&cuter des applications


persistantes <par e&emple; un serveur de messagerie*
appeles dmons

Ces scripts peuvent aussi e&cuter des actions ponctuelles


<montage des di%%rents syst-mes de %ichiers; dmarrage du
rseau; 777*

Ces scripts son situs dans des rpertoires /etc/rcN.d


<N ? runlevel*

Ces scripts sont en %ait des liens symboliques vers de vrais


scripts e&istant dans /etc/init.d

$ls sont e&cuts dans l0ordre de leur numros de squence

Ce type d0initialisation est appell ESysU style initG


<D7d7( ? initialisation * la sau$e syst)me $in(*


SysV i ni t
SysV i ni t
St ar t up scr i pt s

'es scripts situs dans les di%%rents rpertoires


correspondant au& runlevels suivent une
convention de nommage prcise ?
[SK][0-9][0-9]label

S/B ? le script sera appell avec le param-tre


start ou stop <7ill*7
N'est la responsabilit> du s$ript d'a$$epter et argument et de
le traiter $on'enablement%

??6<< ? nombre @ deu& chi%%res donnant le


numro de squence7
/es s$ripts sont e,>$ut>s du plus petit num>ro au plus grand%
/'uni$it> n'est pas re(uise%

a,e ? un label unique pour le script7


Norrespond en g>n>ral au nom entier du s$ript original


SysV i ni t
SysV i ni t
#unl evel s
? ? arr>t de la machine
S/s/@ ? single user
mode monoPutilisateur utilis pour la maintenance
pas de rseau; personne ne se loggue
; ? mode multiPutilisateur variant selon la distribution
mode par d%aut sous Ubuntu
mode multiPutilisateur sans rseau sous #edHat
I ? mode multiPutilisateur variant selon la distribution
mode te&te par de%aut sous #edhatOFedora
J ? inutilis sous la plupart des distributions
A ? mode multiPutilisateur
mode graphique par d%aut sous #edhatOFedora
5 ? reboot de la machine
" l'e,$eption des ni'eau, O et , $es $on'entions 'arient d'un uni, * l'autre
'a commande runlevel permet de conna4tre le runlevel prcdent et
le runlevel actuel


SysV i ni t
SysV i ni t
St ar t up scr i pt s
$ ls /etc/rc2.d/
K77ntp-server
S01apport
S05vbesave
S10acpid
S10powernowd.early
S10sysklogd
S11klogd
S13gdm
S14ppp
S16openvpn
S18hplip
S19cupsys
S20apmd
S20dbus
S20festival
S20hotkey-setup
S20laptop-mode
S20makedev
S20nbd-client
S20nbd-server
S20nvidia-kernel
S20postfix
S20powernowd
S20rsync
S20ssh
S20sysstat
S20tftpd-hpa
S20virtualbox
S20xinetd
S25bluetooth
S25mdadm
S89anacron
S89atd
S89cron
S90binfmt-support
S95preload
S98usplash
S99acpi-support
S99rc.local
S89anacron
S89atd
S89cron
S90binfmt-support
S95preload
S98usplash
S99acpi-support
S99rc.local
S99rmnologin
S99stop-readahead


SysV i ni t
SysV i ni t
Dmar r er un scr i pt 0 @ l a mai n0

'es applications qui doivent s0e&cuter au boot


installent un script dans /etc/init.d

$l est ensuite possible de contr/ler cette application


grBce @ ce script

1marrer l0application
/etc/init.d/application start

Sto##er l0application
/etc/init.d/application stop

"edmarrer l0applications
/etc/init.d/application restart

Demander @ l0application de re&har)er sa


con%iguration
/etc/init.d/application reload


"un e/e s
"un e/e s
Changer de r unl evel

:u boot; il est possible de demander un


dmarrage monoPutilisateur @ C#U"

En aHoutant 0S0 ou 0single0 @ la ligne


!ernel; le noyau va demander @ init de
dmarrer en mode 0single user0


"un e/e s
"un e/e s
Changer de r unl evel

En cours de %onctionnement; la commande telinit


demande @ init de modi%ier le runlevel
telinit level

shutdown -h now <ou halt* est l0quivalent de


telinit 0

shutdown -r now <ou reboot* est l0quivalent de


telinit 6


+ron
+ron
Fonct i onnement

cron permet de programmer des tBches


rcurrentes sur le syst-me

ces tBches sont listes dans des EcrontabsG

chaque utilisateur poss-de sa propre crontab

il y a une crontab syst-me

ces %ichiers sont scruts par le dmon


cronOcrondOanacron chaque minute <pas besoin
de redmarrer le dmon*

cron e&cute une tBche si son heure est venue

grBce @ cron; on peut automatiser la rotation


des logs; la mise @ Hour de bases de donnes;
les bac!ups; la gnration d0inde&777


+ron
+ron
Con% i gur at i on
&ron peut >tre con%igur de multiples mani-res

Met$M$rontab
crontab syst-me^ contient les programmations
globales du syst-me

M'arMspoolM$ronM$rontabsMP+;-C
contient la crontab de VUSE#

Met$M$ron%dM
contient des 0miniPcrontabs0 aHoutes par les
pac!ages @ l0installation

Met$M$ron%3hourly,daily,weekly,monthly4
contient des s&ri#ts e&cuts respectivement
toutes les heuresOHoursOsemainesOmois


+ron
+ron
For mat des cr ont abs
min heure jourmois mois joursemaine user command
(le $hamp user n'e,iste (ue dans la $rontab syst)me)
min ? @ quelle minute de l0heure [LP16\
heure ? @ quelle heure [LP+,\
jourmois ? quel Hour du mois [)P,)\
mois ? quel mois de l0anne [)P)+\
joursemaine ? quel Hour de la semaine [LP3\; Li3idimanche
user ? sous quel utilisateur
command ? commande @ e&cuter
our chaque champ chronologique; on peut avoir ?
P une valeur; l0e&cution aura lieu @ cette valeur
P une plage de valeurs :P"; l0e&cution aura lieu @ chaque valeur
P une combinaison de plages spare par des 0;0 <:P";C;DPE;777*
P une 0Z0; correspondant @ la plage enti-re
P un modi%icateur 0On0 pour une plage; provoquant l0e&cution
toutes les n %ois


+ron
+ron
For mat des cr ont abs
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other
# crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h jdm moi jds user command
17 * * * * root commande1
25 6 * * * root commande2
47 6 * * 7 root commande3
52 6 1 * * root commande4
* * * * * root commande5
* */2 * * * root commande6
0-29/3 * * * * root commande7
#


+ron
+ron
Edi t er sa cr ont ab

crontab permet d0diter un %ichier cron


crontab -u user -e
dition de la crontab de user

'0dition se %ait avec l0diteur spci%i dans


$VISUAL ou $EDITOR

'a variable $MAILTO dans une crontab permet


de spci%ier l0adresse @ laquelle envoyer le
rsultat des commandes
MAILTO= envoi au propritaire de la crontab
MAILTO=tux@linux.org envoi a tux@linux.org
MAILTO="" aucun envoi


At
At
E&ecut i on di % % r e uni que

at permet d0e&cuter une commande @ une heure


donne

contrairement @ cron; cette e&cution est unique

at lit les commandes @ e&cuter sur S(D$D

at renvoie par mail S(DOU( et S(DE## renvoy


par les commandes

atq et atrm permettent respectivement de voir la


liste des Hobs et d0en supprimer
echo "echo Anniversaire Tux" | at Aug 25
echo "echo fais chauffer l\'eau" | at teatime
- 5 minutes
echo "md5sum /bin/*" | at now + 1 hour


Lo)s
Lo)s
Sysl og

syso) permet d0uni%ier la gestion des logs sur


un ou plusieurs syst-mes

syslog ?

un dmon

un protocole permettant de transmettre des


logs via un rseau $

syslog permet d0envoyer les logs vers

la console

un tty

des %ichiers; des pipes

des usager loggus localement

un dmon syslog distant




Lo)s
Lo)s
Sysl og ? concept s
syso) repose sur + concepts %ondamentau&

facility
la 0%acility0 est la catgorie de l0v-nement prise
parmi ? auth, authpri', $ron, daemon, ftp, kern,
lpr, mail, news, syslog, user, uu$p, lo$alQO@RS

level
level est le niveau d0un vnement; pris parmi ?
debug, info, noti$e, warning, err, $rit, alert, emerg

chaque vnement envoy au dmon syslog


poss-de une fa$ility et un le'el

syslog va ensuite traiter ce message en %onction


de ces deu& param-tres et de sa con%iguration


Lo)s
Lo)s
Sysl og ? O et cO sysl og7 con%
#
# Exemples de logs
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
uucp.* /var/log/uucp.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err


Lo)s
Lo)s
l ogr ot at e ? r ot at i on des l ogs

Sans intervention; les logs vont devenir de plus


en plus gros
probl-me; le %ilesystem n0est pas illimit =

logrotate est appell priodiquement par cron


et permet ?

d0archiver un log

de compresser un log

de redmarrer un dmon a%in qu0il rouvre


son %ichier de log

$l est tr-s con%igurable et peut %onctionner selon


une priode programmable et conserver autant
d0archives que ncessaire


"seau 4+9/ E 9
"seau 4+9/ E 9
"seau 4+9/ E 9
"seau 4+9/ E 9
(hor i e

'es rseau& sont


gnralement organiss en
Tpiles protocolairesT

chaque couche de la pile


o%%re un niveau d0abstraction
supplmentaire @ la couche
suprieure

chaque couche o%%re un


service supplmentaire par
rapport @ la couche
in%rieure
"seau 4+9/ E 9
"seau 4+9/ E 9
i l es
+ommuni&ation na/i)ateurser/eur 0e,
"seau 4+9/ E 9
"seau 4+9/ E 9
i l es
+ommuni&ation na/i)ateurser/eur 0e,
$'est aussi une $ommuni$ation entre $ha$une des $ou$hes
"seau 4+9/ E 9
"seau 4+9/ E 9
Encapsul at i on
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $

. octets <,+ bits*

L7L7L7L +117+117+117+11
soient +
,+
adresses possibles <`.7, milliards*

n bits pour lladresse rseau

<,+Pn* bits pour lladresse de llh/te

:dresses publiques attribues par ll$C:DD via


di%%rents #$#s <#$E; :#$D; :D$C; ':CD$C; :%riD$C*

lages d0adresses prives d0usage libre ?

)L7L7L7LO5 <)L7L7L7L )L7+117+117+11*

)3+7)27L7LO)+ <)3+7)27L7L )3+7,)7+117+11*

)6+7)257L7LO)2 <)6+7)257L7L )6+7)257+117+11*


"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques

'e masque dtermine quelle est la proportion d0adresse


rseau et d0adresse d0h/te dans une adresse $

Ce concept n0a de sens que pour prendre des dcisions de


routage

'a premi-re adresse d0une plage dsigne le rseau luiPm>me^


la derni-re est l0adresse de broadcast <multiPdi%%usion*

_ )66.; les adresses taient spares par classes <Tclass%ull


addressingT* ?

classe : ? 5 bits adresse rseau; +. bits adresse h/te

classe " ? )2 bits adresse rseau; )2 bits adresse h/te

classe C ? +. bits adresse rseau; 5 bits adresse h/te

M )66.; les adresse $ se %ont rares ? les %ronti-res ne sont


plus %orcment alignes au& classes <5; )2; +. bits*
naissance de C$D# <Classless $nterDomain #outing*
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? C$ D#

'es masques C$D# donnent directement le nombre


de bits rseau dans l0adresse

C$D# permet une <plus* grande souplesse dans


l0usage des adresses

C$D# permet d0agrger des blocs ensemble; a%in de


rduire la taille tables de routage

'0operation de division d0un bloc s0appelle le


TsubnettingT

'0operation d0aggregation de blocs s0appelle le


TsupernettingT
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? C$ D#
"seau 4+9/ E 9
"seau 4+9/ E 9
or t s UDO (C

Cods sur )2 bits <LP211,1*

orts standards attribues au& protocoles


par ll$C:DD

as d0obligation d0utiliser le port standard


<sparation des couches de la pile*

Dumros de port M ,LLLL rarement


utiliss <masquerading; traceroute*

Sous 'inu& <Zni&*; les ports _ )L+. sont


rservs @ root
"seau 4+9/ E 9
"seau 4+9/ E 9
Dmul t i pl e&age
"seau 4+9/ E 9
"seau 4+9/ E 9
#out age des dat agr ammes $
our communiquer; les h/tes transmettent leur paquets
$ @ des TrouteursT
'es TrouteursT sont aussi des h/tes au sens (CO$; avec
la particularit
d0avoir plusieurs inter%aces
de %aire passer des paquets d0une inter%ace @ l0autre
"seau 4+9/ E 9
"seau 4+9/ E 9
#out age des dat agr ammes $
Un datagramme voyage dans plusieurs dimensions

entre les quipements

dans la pile $ de ces quipements

DcapsulationOencapsulation @ chaque noeud selon


TniveauT du Ts9itchT

'e routage $ s0e%%ectue par prise de dcision en


%onction de l0$ de destination


"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? Domai n Dame Syst em


"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on

our >tre %onctionnelle; la pile $ n0a besoin que


d0une chose ? une adresse <avec son masque*

our sortir du ':D; il %audra aussi une


passerelle <gate9ay; ne&tPhop*

our rsoudre les noms en adresse; il %aut un


serveur DDS
A&&sEnternet K adresse = next6ho# 2= 1NS3


"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ifconfig

ifconfig permet d0a%%ecter des adresses $


au& inter%aces de la machine

ifconfig e&iste sur tous les Uni& "SD


ifconfig [interface] [paramtres]
ifconfig
a%%iche les in%ormations sur toutes les inter%aces
ifconfig eth0
a%%iche les in%ormations sur l0inter%ace ethL
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
a%%ecte l0adresse )6+7)257L7)O+. @ l0inter%ace ethL


"seau
"seau
4+9/ E 9
4+9/ E 9
(abl e de r out age ? route

route permet d0a%%ecter des adresses $ au&


inter%aces de la machine

route e&iste sur tous les Uni& "SD


route [add|del] rseau [gw passerelle]
route
a%%iche les in%ormations sur toutes les inter%aces
route add default gw 192.168.0.254
aHoute une route par d%aut via )6+7)257L7+1.
route del default
supprime la route par d%aut


"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip

$l %aut savoir qu0ifconfig et route e&istent777


777 mais il faut utiliser la commande ip

ip g-re ?

l0adressage $ <comme ifconfig*

la table de routage <comme route*

la table arp <comme arp*

les devices <comme ifconfig*

mais apporte aussi du nouveau ?

le policy routing

gestion des autres tables de routage

synta&e cohrente et concision

ip est la commande @ utiliser pour bn%icier


du routage avanc <iproute+* sous linu&


"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip link/addr

Uoir les addresses


ip addr show [dev device]

:%%ecter une adresse avec ip


ip addr add addresse/msk dev device
ip addr add addresse netmask msk dev device
(en $as d'appels multiples, ip ajoute des alias * l'interfa$e)

Supprimer une addresse


ip addr del addresse/msk dev device
ip addr del addresse netmask msk dev device

Supprimer toutes les addresses


ip addr flush dev device

8ettre en routeOcouper une l0inter%ace


ip link set device tat
(>tat 9 up pour mettre en mar$he, down pour $ouper)


"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip route

Uoir la table de routage principale


ip route show

:Houter une route


ip route add addresse/msk via passerelle

Supprimer une route


ip route del addresse/msk

Supprimer toutes les routes


ip route flush table main

Obtenir la route pour un subnet


ip route get addresse/msk

Couper le routage vers un subnet


ip route add blackhole addresse/msk


"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? l e r esol ver

'a rsolution d0adresses est l0a%%aire du r>sol'er

'e rsolver n0est pas un dmon mais une librairie


qui est utilise par les applications <pas de cache*

'e rsolver se con%igure via OetcOresolv7con%

Dans une con%iguration standard; le rsolver


consulte dans l0ordre ?

le %ichier OetcOhosts

le )
er
serveur de noms de OetcOresolv7con%

le +
-me
serveur de noms de OetcOresolv7con%

le ,
-me
serveur de noms de OetcOresolv7con%

par%ois DDS multicast <Ubuntu*




"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? O et cO r esol v7 con%

la directive 0nameserver0 permet de spci%ier les


adresses $ de serveurs de noms <, ma&imum*
nameserver a1.b1.c1.d1
nameserver a2.b2.c2.d2
le rsolver tentera une rsolution sur
a1.b1.c1.d1 puis sur a2.b2.c2.d2 si
in%ructueu&

la directive 0search0 permet d0aHouter


automatiquement un domaine @ un nom sans
point <070* ?
search domaine1.org domaine2.org
une rsolution de 0serveur0 se traduira par la
rsolution de serveur7domaine)7org puis
serveur7domaine+7org si in%ructueu&


"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? O et cO host s
/et&/hosts peut contenir des associations
$Ohostname; permettant ?

de d%inir des noms personnaliss <plus courts;


pour du test; 777*

de surcharger <recouvrir* des noms d0h/tes


e&istants <interception de l0acc-s @ un
hostname; utilisation d0un miroir plus proche*

de rsoudre plus rapidement des noms


%rquemment demands

de rsoudre des noms en l0absence ou


indisponibilt des DDS
a.b.c.d nom.domaine.org nom nombis ...


"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on vi a DHC

DHC se prsente sous %orme d0un dmon

Deu& variantes occupent le terrain ?

dhcpcd <Fedora*

dhclient <Debian*

Dmarrer dhcp sur l0inter%ace ?


dhcpcd eth0
dhclient eth0

Stopper le dmon dhcp ?


dhclient -r
dhcpcd -k


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? connect i vi t $

ping utilise le protocole $C8 pour vri%ier la


connectivit entre deu& h/tes

par d%aut; ping envoie un paquet par


seconde ind%iniment

l0option P% <flood* permet d0envoyer au moins


)LL 0echo request0 par seconde

fping est une variante qui permet de pinguer


plusieurs cibles @ la %ois


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? connect i vi t $
ping [-c nombre] [-f] [-s] adresse
nombre ? nombre de paquets @ envoyer
adresse ? adresse $ destinataire
-f ? %lood <au moins ) paquet toutes les )Lms*
-s ? taille du paquet en bytes
fping [-c nombre] [-g] adresse
nombre ? nombre de paquets @ envoyer
adresse ? adresse $ destinataire
-g ? teste un subnet complet


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age

'orsqu0un routeur transmet un paquet d0une


inter%ace vers une autre; il dcrmente le
champ (('


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age

Si apr-s la dcrmentation; le ((' est @ Wro; le


routeur dtruit le paquet avertit l0e&pditeur

'es outils de la %amille de traceroute


e&ploitent cette particularit du protocole


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x (192.168.0.1) 0.188ms
1: a (192.168.0.254) 22.844ms


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x (192.168.0.1) 0.188ms
1: a (192.168.0.254) 2.84ms
2: b (84.31.2.45) 22.74ms


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x (192.168.0.1) 0.188ms
1: a (192.168.0.254) 2.84ms
2: b (84.31.2.45) 22.74ms
3: c (212.27.55.126) 28.41ms


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x (192.168.0.1) 0.188ms
1: a (192.168.0.254) 2.84ms
2: b (84.31.2.45) 22.74ms
3: c (212.27.55.126) 28.41ms
4: d (193.251.240.45) 31.44ms


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x (192.168.0.1) 0.188ms
1: a (192.168.0.254) 2.84ms
2: b (84.31.2.45) 22.74ms
3: c (212.27.55.126) 28.41ms
4: d (193.251.240.45) 31.44ms
5: y (194.199.76.199) 79.319ms reached


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS

nslookup et dig sont en comptition sur les


diagnostics DDS

nslookup est tr-s largement disponible et


poss-de un mode interacti%

dig a une synta&e plus souple; et permet


d0e%%ectuer plusieurs requ-tes simultanes

'e deu& outils permettent d0obtenir des


rponses sur des enregistrements prcis ?
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS

nslookup en ligne de commande


nslookup [-type=type] nom
<le type est a par d%aut*

nslookup sans argument passe en mode


interacti%

server serveur ? change le serveur DDS


utilis

set type=type ? slectionne le type


d0enregistrement voulu
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS
dig [@server] type nom [type nom]
<le type est a par d%aut*

type ? le type d0enregistrement voulu

@server ? serveur de nom @ interroger

dig est asseW verbeu& ? grep -v '^;' s0impose

l0option P& permet d0e%%ecuter une rsolution


inverse
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$


"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i quer l es conne&i ons

netstat permet d0obtenir la liste de toutes les


Tsoc!etsT ouvertes

une soc!et est une descripteur de %ichier


utilis pour une communication entre
processus <$C*

les conne&ion (C ainsi que les soc!ets


d0coute UD sont lists par netstat
netstat -tunap
m m m m m]]liste les #rocess
m m m m]]liste m>me les soc!ets en coute<all*
m m m]]n0e%%ectue pas la rsolution de noms
m m]]liste les soc!ets UD
m]]liste les soc!ets 4C


"seau
"seau
4+9/ E 9
4+9/ E 9
$ nt er net t e&t e

'inu& dispose d0un nombre consquent d0outils


internet 0te&te0

H((OF( ? wget; curl; lynx; elinks; links

F( ? ftp, ncftp

S8( ? mail(x)

OO$8: ? pine; mutt

88S ? mimms

$#C ? irc
777 et talk; finger; whois; 777


"seau
"seau
4+9/ E 9
4+9/ E 9
$ nt er net t e&t e
Ces outils permettent une grande automatisation des
tBches lies au 9eb ?

obtention de donnes; ventuellement %iltres


elinks -dump http://slashdot.org/ | grep -i tux

suivi de modi%ications de pages 9eb <


elinks -dump www.kernel.org | diff index.html -

tlchargements avec reprise de trans%ert


wget -nd -c ftp://ftp.iso.fr/pub/ubuntu-6.10.iso

crations de mirroirs
wget -m <ou mieu& ? rsync*

envoi de mails en ligne de commande <cat | mail*


elinks -dump www.site.org || logger -plocal0.err "site web
hs" && echo "site web hs" | mail -s "etat du site" me@me.org
E&emple ? Faire sa propre ne9sletter avec les derni-res nouvelles du !ernel S
Simple comme ?
lynx -dump http://www.kernel.org | mail -s "News" me@me.org


"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on au boot

'a con%iguration rseau n0est pas standard

chaque distribution poss-de une implmentation


particuli-re

comme touHours; vous >tes libre de dvelopper


vos propres scripts si l0e&istant n0est pas adapt

Con%iguration commune

OetcOresolv7con% ? con%iguration du DDS

OetcOhostname ? d%inition du nom d0h/te <par%ois


OetcOHOS(D:8E*

OetcOhosts ? %ichier de correspondance ipOh/te

'a lecture des scripts de boot SysU est le


meilleur moyen de dterminer le processus de
con%iguration


"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on Debi anO Ubunt u

OetcOnet9or!Ointer%aces ? con%iguration des inter%aces


auto eth0 eth1
iface eth0 inet dhcp
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.254

OetcOi%tab ? correspondance adresse macOdevice


eth0 mac 00:15:c5:ab:dc:3b arp 1
eth1 mac 00:15:c5:ab:dc:3c arp 1


"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on #edHat O Fedor a

Met$Msys$onfigMnetwork ? param-tres gnrau&; passerelle


par d%aut
NETWORKING=yes
HOSTNAME=server.home.lan
GATEWAY=192.168.0.254

Met$Msys$onfigMnetwork@s$riptsMif$fg@JintK ? con%iguration
ip de l0inter%ace
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:08:02:47:17:71
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet

Met$Msys$onfigMnetwork@s$riptsMroute@JintK ? routes
associes @ l0inter%ace
192.168.100.0/24 via 192.168.0.250


"seau
"seau
4+9/ E 9
4+9/ E 9
Super P ser veur &i net d

&inetd <et tous les dmons type TinetdT* est un


Tsuper serveurT ?

il s0intercale entre le client et le serveur

il permet de recevoir les conne&ion pour des


serveurs (C et UD

une %ois la conne&ion reYue; il va dmarrer le


serveur et lui passer la conne&ion

une instance de &inetd permet de recevoir les


conne&ions destines @ plusieurs serveurs
conomie de ressources O latence accrue

&inetd o%%re en plus des %onctionnalits de


contr/le de ressources et de %iltrage


"seau
"seau
4+9/ E 9
4+9/ E 9
t cp9r apper s

8canisme de %iltrage pour l0acc-s au& serveurs

ermet de ragir au& tentatives %rauduleuses en


lanYant des scripts

'es serveurs doivent e&plicitement supporter ce


mcanisme <compils avec lib9rap*; ou >tre
lancs via &inetd <en utilisant tcpd*

con%iguration dans Met$Mhosts%allow <couples


serveurOclient accepts* et Met$Mhosts%deny
<couples serveurs reHets*
tombe en dsutude ? de moins en moins
de serveurs sont compils avec lib9rap et
&inetd o%%re plus de possibilits


"seau
"seau
4+9/ E 9
4+9/ E 9
i net d & t cp9r apper s


"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? % i l t r age avec i pt abl es

net%ilter est le sous ensemble du !ernel responsable du %iltrage


de paquets

%iltrage selon caractristiques niveau + <inter%ace; mac*

%iltrage selon les champs transport <ports; %lags tcp*

%iltrage selon des champs rseau <source; dest; tos; ttl;


protocole transport; 777*

%iltrage selon tau& d0arrive <rate limiting*

grBce @ net%ilter; il est possible de %aire subir les svices les


plus e&tr>mes au& paquets circulant dans le !ernel

rcriture d0une partie du paquet <adresses $; ports; ttl; 777*

reHet

destruction

noti%ication <log*

traitement en espace utilisateur

net%ilter est con%igur par des r-gles; consitues de chBines et


conditions et de cibles; et regroupes dans des tables


"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? t abl es

les tables sont des ensembles regroupant des


r-gles ayant une vocation particuli-re ?

man)e ? table dans laquelle les paquets sont


gnralement TtritursT ? modi%ication de ttl;
marquage pour l0application de boS; etc777

nat ? table dans laquelle les translations


d0adresse sont opres <nat source; nat
destination

fiter ? table ddie au %iltrage de paquet;


dcide du sort de chaque paquet transitant
dans le !ernel

la table %ilter est la table utilise par d%ault


lorsque la commande iptables est invoque


"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? cha4 nes

les cha4nes sont des lieu& TvirtuelsT traverss par les


paquets ?

EN9U4 ? cha4ne traverse par les paquets entrants et @


destination de la machine

HU49U4 ? cha4ne traverse par les paquets sortant;


mis par cette machine

!H"LA"1 ? cha4ne traverse par les paquets routs


par la machine <i7e7 entrant par une inter%ace et sortant
par un autre*

9"C"HU4ENG ? cha4ne traverse par les paquets reYus


du rseau

9HS4"HU4ENG ? cha4ne traverse par les paquets


mis sur le rseau apr-s la dcision de routage

$haines utilisateurs ? vous >tes libres de crr vos


propres chaines dans une table


"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? ci bl es

les cibles dterminent ce que l0on %ait du paquet

certaines cibles sont nonPterminales <returning targets* ?


le traitement du paquet continue apr-s cette cible

d0autres sont terminales <non@returning targets* ? le


traitement du paquet s0arr-te avec la derni-re cible

:CCE( ? accepte le paquet

D#O ? dtruire le paquet en silence

#EKEC( ? reHeter le paquet avec un message @


l0e&pditeur <code $C8 ou (C reset*

SD:( ? e%%ectue une translation d0adresse source

8$##O# ? retour @ l0envoyeur =

8:#J ? mettre une marque sur le paquet pour


utilisation ultrieure

'OC ? crire une ligne via syslog

bUEUE ? traitement du paquet en espace utilisateur

777 quelques autres diWaines777




"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? pol i t i ques

chaque cha4ne a une politique par d%aut

cette politique sera applique si aucune r-gle


n0a attrap un paquet auparavant

les politiques possibles sont ?

:CCE( ? tout est accept

D#O ? tout est silencieusement reHet

il est trs %ortement conseill d0utiliser D#O


comme politique par d%aut
tout %ermer par d%aut
n0ouvrir que le ncessaire


"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? usage

Dterminer la politique par d%aut


iptables -P <CHAINE> <POLITIQUE>
iptables -P INPUT DROP

$nsrer une r-gle de %iltrage <dbut de cha4ne*


iptables -I <CHAINE> ..rgle.. -j <CIBLE>

:Houter une r-gle de %iltrage <en %in de cha4ne*


iptables -A <CHAINE> ..rgle.. -j <CIBLE>

Supprimer une r-gle


iptables -D <CHAINE> ..rgle.. -j <CIBLE>

'ister les r-gles


iptables -L -v

Uider les r-gles d0une cha4ne


iptables -F <CHAINE>

our les oprations sur d0autres tables que filter; il %aut


spci%ier 0-t table0
ip -t nat -A FORWARD ...


"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? s p c i % i c a t i o ns de r - gl e s

'a r-gle permet de tester des caractristiques du


paquet

'es options prennent la %orme ngative si elles


sont prcdes par 0 ! 0

buand ces options apparaissent dans une m>me


r-gle; un E( logique est e%%ectu
-s ? $ source
-d ? $ destination
-p ? protocol
-i ? inter%ace d0entre du paquet
-o ? inter%ace de sortie du paquet
-m MOD ? charge le module D<I
--sport ? port source <modules tcp; udp*
--dport ? port destination <modules tcp; udp*
777


"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? e&empl es
iptables -P INPUT DROP
politique par d%aut ? on Hette
iptables -A INPUT -p tcp -m tcp -s 10.1.1.0/24 --dport 22 -j
ACCEPT
on accepte les conne&ions tcp sur le port ++ <ssh* si elles viennent du
rseau )L7)7)7LO+.
iptables -A INPUT -p udp -m udp -s ! 10.1.1.23 --dport 53 -j
ACCEPT
on accepte les conne&ions udp sur le port 1, <dns* si elles ne viennent
pas de la machine )L7)7)7+,
iptables -A INPUT -p tcp -m tcp -i lo --dport 3306 -j ACCEPT
on accepte les conne&ions tcp vers le port ,,L2 <mysql* uniquement si
elles arrivent de l0inter%ace loopbac! <cette machine*
iptables -A INPUT -p tcp -m tcp -i ! lo --dport 3306 -j LOG
on se plaint @ syslog si une conne&ion arrive sur notre serveur 8ySb' de
l0e&trieur
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --
limit 5/second --limit-burst 5 -j ACCEPT
on limite le traitement des echo requests icmp
iptables -A INPUT -m multiport -p tcp -s 10.1.1.1 --dports
smtp,imap,pop3 -j ACCEPT
le module multiport permet de 0matcher0 plusieurs ports en une r-gle


"seau
"seau
4+9/ E 9
4+9/ E 9
ar am-t r es par t i cul i er s

:ctiver le routage ?
echo 1 > /proc/sys/net/ipv4/ip_forward

'ogguer les martiens


echo 1 > /proc/sys/net/ipv4/conf/default/log_martians

#e%user les icmp redirects


echo O > /proc/sys/net/ipv4/conf/default/accept_redirects

#eHeter les paquets spoo%s <avec des adresses locales*


echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

(ous les param-tres rseau sont dcrits dans


/usr/src/linux/Documentation/networking/ip-sysctl.txt

sysctl peut aussi >tre utilis pour modi%ier ces valeurs


/sbin/sysctl -w net.ipv4.ip_forward=1

:u boot; le syst-me applique les valeurs spci%ies dans


/etc/sysctl.conf


"seau
"seau
4+9/ E 9
4+9/ E 9
t el net & ssh

telnet permet de se connecter @ un port (C


distant

pour utiliser un shell <protocole telnet*

pour TparlerT un autre protocole <http; smtp; 777*

ssh chi%%re tout le tra%ic entre deu& h/tes; et


permet ?

d0ouvrir un shell sur une machine distante

de copier des %ichiers entre machines <scp*

de rediriger des ports

777

pour les conne&ions distantes; il %aut pr%rer


systmatiquement ssh @ telnet si possible


"seau
"seau
4+9/ E 9
4+9/ E 9
ssh ? aut hent i % i cat i on

ssh a une multitude de possibilits pour


authenti%ier les utilisateurs

il est gnralement plus sIr et plus simple


d0utiliser l0authentifi$ation * $lef publi(ue


"seau
"seau
4+9/ E 9
4+9/ E 9
Scur i t r seau l ment ai r e

Services ouverts

netstat permet de conna4tre la liste des services ouverts


ne dmarreD que es ser/i&es 2dmons3 n&essaires

Services ouverts sur des inter%aces

des services peuvent n0>tre utiles qu0au& serveurs locau&


<e&emple ? 8ySb' pour apache*

netstat permet de lister les inter%aces sur lesquelles unservice


est disponible <un port est ouvert*
n'ou/reD es ser/i&es que sur es interfa&es adquates

FiltreW touHours

il est touHours important de %iltrer; m>me si un service n0est pas


ouvert sur une inter%ace

%iltrer peut permettre de limiter les dnis de service

le %iltrage est un %ilet de scurit en cas d0erreur de con%iguration


utiiseD i#ta,esF et utiiseD des #oitiques 1"H9 #ar
dfaut


E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques


E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
f9i ndo9; fFr ee52; f7 or g

f9indo9 est l0in%rastructure de base des inter%aces


graphiques sous uni& depuis )65.

'0inter%ace graphique est compl-tement optionnelle;


et par%aitement inutile sur des serveurs

f9indo9 est un protocole client serveur ?

l0a%%ichage d0une application est indpendant de


sont e&cution

il peut >tre dport @ travers un rseau

il peut aussi >tre transport via SSH

:uHourd0hui l0implmentation la plus rpandue sous


linu& est &7org; issue de f%ree52


E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
Cnome; JDE; f% ce; e; 7 7 7

'es inter%aces graphiques sont implmentes


par dessus le serveur f <&7org*

Cestionnaire de %en>tres <le Tloo!T* ? g-rent


l0aspect purement mcanique ? iconi%ication;
bordures; dcorations; etc777
blac!bo&; %v9m; 9indo98a!er; %lu&bo&;
t9m

Cestionnaires de bureau <le T%eelT* ? g-rent la


session; les associations mime; les bus entre
applications; les dialogues standard; les
icones; 777
Cnome; JDE; f%ce;


E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
VD$ S':Q

'a variable d0environnement VD$S':Q permet d%inir le


serveur f utilis pour l0a%%ichage

Des terminau& spcialiss <terminau& f* sans disques


durs ni CU utilisent e&clusivement cette %onctionnalit

f9indo9 livre par d%aut la prise en main @ distance


depuis )65.777


Muesti ons N
Muesti ons N
+nless you ha'e a hundred unanswered (uestions in your mind
you ha'en't read enough%%%
djb
#!/bin/sh
read Questions
test $Questions || exit


Ctudes de &as
Ctudes de &as


Ctudes de &as
Ctudes de &as
: l a car t e
Ur)en&es Ur)en&es

Hut of s0a# s#a&e Hut of s0a# s#a&e


raHouter du s9ap @ la vole par un s9ap%ile
raHouter du s9ap @ la vole depuis une partition

4oo mu&h #ro&esses 4oo mu&h #ro&esses

dterminer les causes d0une surcharge en processus

remdier au probl-me

Hut of memory Hut of memory


determiner la cause du manque de mmoire
remdier au probl-me

!iesystem fu !iesystem fu

trouver d0ou vient le probl-me

mettre en place des quotas pour remdier au probl-me

1isque HS 1isque HS
merci le #:$D)
changer le disque d%aillant
tester le disque d%aillant

Au /oeurF mon init * Au /oeurF mon init *

init @ disparu ? booter le syst-me et rparer le probl-me

init @ disparu ? booter sur un CD live et rparer le probl-me


trouver; si possible; le coupable

9irates * 9irates *
vri%ier l0intgrit d0un syst-me suspect
trouver la %aille

quels enseignements S
+onfi)uration +onfi)uration

!itra)e ni/eau 8
compiler un !ernel et iptables et mettre en place du %iltrage
niveau 3

xinetd xinetd
mettre en place &inetd
ouvrir les services echo et chargen

!itra)e !itra)e

%iltrer tous les services

ouvrir chargen

1#oiement de ssh 1#oiement de ssh


dterminer les causes d0une surcharge en processus
remdier au probl-me

Loo#in) ,a&7 Loo#in) ,a&7


mettre en place un %ilesystem chi%%r en loopbac!

mettre en place un %ilesystem sur #:$D en loopbac!

mettre en place un %ilesystem 'U8+ en loopbac!

mettre en place une combinaison <deu& ou trois ensemble*

L'attaque des &ones L'attaque des &ones


cloner un syst-me avec dd

Syn&hroniser des r#ertoires distants Syn&hroniser des r#ertoires distants

scp scp

tar & ssh tar & ssh

rsync rsync

fuser % tout monter fuser % tout monter

compilation de curl%tps compilation de curl%tps

monter un %ilesystem depuis un serveur %tp monter un %ilesystem depuis un serveur %tp

%aire unscript type SysU pour le montage %aire unscript type SysU pour le montage


"f ren&es
"f ren&es


"f ren&e
"f ren&e
#accour ci s bash
ESC d +
CTRL +
: efface le mot droite du curseur
: mot prcdent
CTRL + : mot suivant
CTRL k + : coupe de la position courante jusqu' la fin de la ligne
CTRL y + : colle ce qui a t prcdemment coup
CTRL d + : efface le caractre droite du curseur
ESC t + : transpose le mot prcdent avec le mot suivant
CTRL t + : transpose le caractre sous le curseur avec le caractre suivant
CTRL r + : recherche dans l'historique
CTRL e + : dbut de ligne
CTRL a + : dbut de ligne


"f ren&e
"f ren&e
#accour ci s l ess
/ : rechercher
n : occurence de recherche suivante
> : va la fin du fichier
v : edite le fichier en cours dans $VISUAL ou $EDITOR
< : va au dbut du fichier
ESPACE : avancer d'une page
n b + : reculer de n lignes
b : reculer d'une page
: avancer d'une ligne
: avancer de n lignes
n +
q : quitter
! : excute la commande cmd dans un shell +
cmd


"f ren&e
"f ren&e
Compl t i on et hi st or i que bash
!
$HISTFILESIZE : taille du fichier historique (par dfaut 500)
TAB
r
+ : affiche une liste des compltion possibles
: commande suivante
: commande prcdente
! nombre : excute la commande numro nombre
texte : excute la dernire commande dbutant par texte
$HISTFILE : fichier historique (par dfaut ~/.bash_history)
CTRL
TAB
+
TAB
texte : recherche texte dans l'historique
: complte la saisie en cours
Compltion
Compltion
Historique
Historique


"f ren&e
"f ren&e
K ob cont r ol
z
fg [%n] : met le dernier job [ou job n] en avant plan
CTRL + : suspension de la tche en cours
bg [%n] : met le dernier job [ou job n] en arrire plan
c CTRL + : termine le processus l'avant plan
kill [-SIGX] %n : envoie le signal SIGTERM (ou SIGX) au job n
jobs : affiche la liste des jobs en cours
commande & : excute commande directement en arrire plan
nohup commande & : excute commande directement en arrire plan et
dtache le terminal


+on/enti ons ty#o)ra#hi ques
+on/enti ons ty#o)ra#hi ques
noms de commande ou de fichiers en courrier-10
saisies utilisateur en courrier-10 gras
paramtres en italique
S(D$D en bleu <parties concernant les descripteurs de %ichiers*
S(DOU( en vert <parties concernant les descripteurs de %ichiers*
S(DE## en rouge <parties concernant les descripteurs de
%ichiers*
console dans une fentre grise en courrier-10
8anipulations
#accourcis clavier


+rdi tsF /ersi onF i &en&e
+rdi tsF /ersi onF i &en&e
+rdits
4ux n 'arry E9ing; http?OO9997isc7tamu7eduO`le9ingOlinu&O
GNU Head n Etienne Suvasa; http?OO9997gnu7orgOgraphicsOagnuhead7html
E&ones ? (ango roHect <http?OOtango7%reedes!top7org*
Ga,y 9in)ouin ? http?OO99979eb9eaver7nuOclipart
Systmes <p),* ?

:C8E Systems http?OO99979eb9eaver7nuOclipart

D:S: :mes #esearch Center

Cray $nc7

$"8 Corporation


+rdi tsF /ersi onF i &en&e
+rdi tsF /ersi onF i &en&e
Version : historique
Uersion +LL3L.L.]L)
20070404_01 MB : cration p245, mise jour de graphes p250, p256 et p261
20070217_01 MB : typos, coquilles, schmas partitionnement, notes
20070211_01 MB : cosmtique
1ure
Cette %ormation s0e%%ectue normalement sur . Hours7
Li&en&e
n 8ichel "lanc; :vril +LL3
Ce document peut >tre distribu librement; selon les termes de la version +7L de la
licence Creative Commons ? aternit P artage sous conditions identiques
(http9MM$reati'e$ommons%orgMli$ensesMby@saM7%OMfrMdeed%fr)
Vous -tes i,res %

de reproduire; distribuer et communiquer ce document au public

de modi%ier ce document
Seon es &onditions sui/antes %

Haternit>7 Uous deveW citer le nom de l0auteur original7

Hartage des Nonditions Initiales * l'Identi(ue7 Si vous modi%ieW; trans%ormeW ou adapteW cette cration;
vous n0aveW le droit de distribuer la cration qui en rsulte que sous un contrat identique @ celuiPci7

: chaque rutilisation ou distribution; vous deveW %aire appara4tre clairement au& autres les
conditions contractuelles de mise @ disposition de cette cration7

Chacune de ces conditions peut >tre leve si vous obteneW l0autorisation du titulaire des droits7