Vous êtes sur la page 1sur 33

Linux LP2I 2010 - 2011

UNIVERSITE IBNOU ZOHR, FACULTE DES SCIENCES DEPRTEMENT D’INFORMAIQUE AGADIR

Cours

LINUX

2010-2011

LP2I

Responsable : Abdellah MASSAQ

Linux LP2I 2010 - 2011

Chapitre

Présentation générale de Linux/UNIX

1. Bref historique de Linux / Unix

Unix est un système d’exploitation moderne, complet et efficace. Il a été écrit en 1969 par Ken Thompson dans les laboratoires de Bell en langage B, et réécrit en C par Dennis Ritchie. Il est utilisé en calcul scientifique, serveurs réseaux, PDA, embarqué Linux est une version d’Unix développé à l’origine par Linus Torvalds à l’université de Helsinki (1 ère version en 1991).

de Helsinki (1 è r e version en 1991). 2. Caractéristiques du système Linux est un

2. Caractéristiques du système

Linux est un système multitâche, Multi-Utilisateurs et multi plate formes, il est gratuit et

librement diffusable (open source – logiciel libre). De plus, il est :

- Populaire car fonctionnant sur des machines très économiques (exemple Intel 386) et reconnaissent de plus en plus de périphériques de tout genre.

- Gratuitement téléchargeable.

- Il s’installe sur une machine disposant déjà d’un autre système d’exploitation de type Windows et il peut même reconnaître ses fichiers et les accéder.

- Doté d’une impressionnante logithèque, en bureautique (Star Office ou Open Office),

serveur d’application

web (Zope), serveur d’impression (Samba), Firewall (filtrage de paquet par IPTables).

- Largement documenté exemple projet LDP (Linux Documentation Project) www.linuxdoc.org.

serveur web (Apache), serveur de données (MySQL, Postgree

),

Linux LP2I 2010 - 2011

- Portable du fait de la disponibilité des codes sources des logiciels qui le composent.

- Interopérable car il prend en charge de nombreux système de fichiers outre que le natif ext2fs : VFAT, NTFS, ISO9660, System V, BSD, MS-DOS…

- Communiquant puisqu’il prend en charge les protocoles TCP/IP, AppleTalk, X-Window, NFS, PPP, ATM…

- Système modulaire et donc facile à maintenir et à faire évoluer car conçu en ouches avec au premier niveau le noyau, au second niveau l’interprète des commandes et les applications utilisateurs et au troisième niveau les menus ou interfaces des applications utilisateurs.

Il existe plusieurs distributions de Linux (une centaine), on peut citer les principales sur le marché actuellement : Redhat, Mandrake, Suse, Debian, Caldera, Corel, EasyLinux, Slackware (le 1 er ). Pour plus de détails voir : www.linuxplanet.com ou www.linuxiso.org.

détails voir : www.linuxplanet.com ou www.linuxiso.org . 3. Open source : GNU/Linux GNU a pour but

3. Open source : GNU/Linux

ou www.linuxiso.org . 3. Open source : GNU/Linux GNU a pour but de rappeler que Linux

GNU a pour but de rappeler que Linux ne serait rien sans le travail de la Free Software Foundation : FSF (http://www.gnu.org) qui permet de fournir un système informatique libre. Linux est issu d’un mode de développement ouvert, Linus Torvalds ayant soumis son code au net. La FSF a formalisé ce type d’approche dans la notion de logiciel libre, dont les idées sont les suivantes :

Linux LP2I 2010 - 2011

– liberté d’utiliser le logiciel ;

– accès au code source ;

– possibilité de modifier le code ;

– liberté de diffuser le programme, avec ou sans modifications.

Des variantes du concept de logiciel libre sont apparues, dont la plus importante est le mouvement open source : http://www.opensource.org. Pour les logiciels open source : www.sourceforge.net.

. Pour les logiciels open source : www.sourceforge.net . 4. Services de Linux Parmis les services

4. Services de Linux

Parmis les services qu’offre Linux aux utilisateurs :

- Utilitaire : main (aide en ligne), lpr (impression)

- Outils de programmation (exemple compilateur C : gcc)

- Communication inter-utilisateur : mail, talk…

-Editeur de texte : Vi, pico… -Interfaces graphiques : les plus courantes KDE e GNOME.

5. Partition et installation de linux (voir TP n°2)

Si Windows est déjà installé sur votre machine :

- Faire des sauvegardes car la partition est une opération complexe et dangereuse (écrasement de Windows par Linux)

- Défragmenter les disque afin de pouvoir réduire la taille de la partition Windows et créer des partitions pour Linux.

- Il faut au minimum deux partitions pour Linux : une partition pour les fichiers de système et ceux des utilisateurs et une partition d’échange (SWAP) utilisée dans le cadre de la gestion de mémoire virtuelle. c'est l'équivalent du fichier d'échange de Windows, c'est dans ce fichier qu'est déchargée la mémoire vive (RAM) lorsqu'elle atteint un certain

Linux LP2I 2010 - 2011

pourcentage d'occupation. L’idée est de séparer les fichiers du système des fichiers de l’utilisateur. Exemple de partition pour un disque dur de 30 Go :

DOS/Win / SWAP /USR /home 2 Go 250Mo 350Mo 3Go Gestion de la mémoire Fichiers
DOS/Win
/
SWAP
/USR
/home
2 Go
250Mo
350Mo
3Go
Gestion de la
mémoire
Fichiers utilisateurs
Installation Linux

Les principales phases d’installation, sont les suivantes :

1) Créez des disques d’amorçage pour Linux. 2) Amorcez Linux à partir d’une disquette. 3) Partitionnez le disque dur. 4) Créez une partition de mémoire secondaire. 5) Créez un système de fichier Linux. 6) Installez le système Linux. 7) Configurez le noyau. 8) Configurez le processus d’amorçage du système. 9) Relancer Linux à partir du disque dur.

6. Composante du système Le système Unix, peut être présenter selon une structuration en couches (figure ci dessus) :

Linux LP2I 2010 - 2011 Boîtes à outils Interprètes de commande ed C Vi Pascal
Linux LP2I 2010 - 2011
Boîtes à outils
Interprètes de
commande
ed
C
Vi
Pascal
Emacs
Fortran
Noyau
make
Cobol
lint
Basic
lex
Lisp
yacc
Ada
sccs
Prolog
Sh, csh, ksh
tar
fsck
rpm
acct

Figure : Structuration d’un système d’exploitation Unix.

De façon générale, on y trouve :

- des appels système mettant en œuvre directement le noyau (access, alarm, chdir, exit, kill,

pause, mknod, umask, unlink, wait )

- des fonctions définies dans des bibliothèques standards (atoi, crypt, errno, fflush, getppid, malloc, nice, perror, tolower )

- des interprètes de commandes (sh, bash, csh, ksh, rsh, mc…)

- des commandes interprètes par un shell (awk, bc, cd, cat, date, echo, diff, grep, ls )

- des outils de développement (cc, lex, yacc, make, awk, perl, gdb )

- des langages de programmation (Pascal…)

- des outils d’administration système(tar, fsck )

7. Structure du noyau Unix Le noyau de l’Unix renferme une série de composantes qui doivent nécessairement réaliser les diverses taches de gestion des ressources logicielles et matérielles mises à la disposition des programmes utilisateurs. On cite par elles : l’interface des appels système, le sous-système de fichiers, le sous-système de processus, et l’interface au matériel.

Linux LP2I 2010 - 2011

Programme utilisateur

Niveau utilisateur

Trappe

Trappe

Niveau noyau

bibliothèques

Interface des appels systèmes

Niveau noyau bibliothèques Interface des appels systèmes Sous-système des processus InterProcess Communication

Sous-système des processus

InterProcess

Communication

Scheduler

Gestionnaire de la mémoire

Sous-système

De fichiers

Caches tampons
Caches
tampons

Caractère

Bloc

Pilotes de périphériques

tampons Caractère Bloc Pilotes de périphériques Niveau noyau Contrôle du matériel Niveau utilisateur

Niveau noyau

Contrôle du matériel

Niveau noyau Contrôle du matériel

Niveau utilisateur

HARDWARE

Figure : Composantes du noyau Unix Les tâches à réaliser par ces diverses composantes du noyau sont mises en œuvre selon le schéma simplifié qui suit :

- Toute demande de service du système passe par une trappe réalisée par une instruction d’appel

au superviseur. L’interface des appels systèmes dirige la demande vers soit le sous-système de fichiers, soit vers le sous-système de processus.

- Le sous-système de fichiers se charge de la gestion correcte des fichiers et effectue le contrôle

des autorisations d’accès. Il doit transmettre aux pilotes périphériques concernés les accès fichiers désirés. La distinction est faite entre pilotes dotés d’une mémoire tampon et les autres. -Le sous-système de processus affecte à chaque programme une zone mémoire, répartit entre eux la mémoire centrale et permet leur communication. -Qu’il s’agisse du sous-système de fichiers ou de processus, les deux utilisent ensuite une interface avec le matériel pour satisfaire la demande qui lui a été faite.

9. Différences entre Linux et Windows

- Gestionnaire de fenêtres

Linux LP2I 2010 - 2011

Sous Windows il n’y a qu’un seul environnement graphique, intégré au système. Sous Linux, l’environnement graphique est séparé du système, ce qui a plusieurs avantages :

On peut en changer comme on le désire sans que cela puisse avoir des implications sur l’utilisation des applications développées pour un environnement ou un autre, Si l’environnement graphique se plante, cela n’a aucune conséquence sur le système qui ne se plante pas. Attention : La beauté d’une interface graphique n’est pas un critère de qualité.

- Les périphériques disques Sous Windows, les lecteurs sont présenté comme une arborescence de fichiers séparée :

Poste de travail

une arborescence de fichiers séparée : Poste de travail A:\ C:\ - Mes Documents - Program
une arborescence de fichiers séparée : Poste de travail A:\ C:\ - Mes Documents - Program
une arborescence de fichiers séparée : Poste de travail A:\ C:\ - Mes Documents - Program

A:\

C:\ - Mes Documents

- Program Files

- Windows

D:\

- Documents Personnel

- Autres Programmes

E:\

disquette

disque dur 1, partition 1

disque dur 1, partition 2

cd-rom

Sous Linux, comme dans tous les Unix, il n’y a qu’une et unique arborescence de fichiers. Les unités disques (disque dur et disquette) sont représentés par un répertoire spécial appelé « point montage » ; par exemple /mnt/floppy pour la disquette.

disque dur 2, partition 1

 
 

etc

 

home

disque dur 2, partition 2

 
 

mnt

 

- floppy

disquette cd-rom disque dur 1, partition 1

- cdrom

-C- - ----Mes documents

-

D

disque dur 1 partition 2

8

- Correspondance des répertoires de base :

Linux LP2I 2010 - 2011

Répertoire sous Linux

Equivalent Windows

/bin

C:\Windows

/lib

C:\Windows\System32

/usr/bin

C:\Program Files

/mnt/floppy

A:

/mnt/cdrom

D:

/tmp

C:\Temp

/home/lp2i

C:\Mes Documents

Chapitre Les fichiers Linux

Linux LP2I 2010 - 2011

Le

système de fichier est géré par le noyau. Les fichiers UNIX correspondent soit à des fichiers

de

données sur disque dur, soit à des répertoires, soit encore à des fichiers spéciaux permettant la

gestion de certaines ressources du système.

1. Types de fichiers

Nous appelons fichier tout point dans l’arborescence des fichiers. On distingue 4 types de

fichiers:

– les fichiers ordinaires, qui contiennent des données. UNIX (fichiers de texte, binaires, images…)

les répertoires

les fichiers spéciaux, associés par exemple à des pilotes de périphériques ;

les tubes et sockets, utilisés pour la communication entre processus ;

les liens symboliques (fichiers “pointant” sur un autre fichier).

2.

Répertoires

Unix utilise un système de fichiers hiérarchisés (FHS) ainsi que la notion de dossier (ou répertoire). Au sommet de la hiérarchie se trouve le dossier racine (root) de nom “ / ”. Tous les fichiers peuvent être atteints par un chemin dans la hiérarchie à partir du dossier racine.

un chemin dans la hiérarchie à partir du dossier racine. F igure 1 Exemple d’arborescence de

Figure 1 Exemple d’arborescence de fichiers sous Unix. La racine de l’arbre est le répertoire / (en haut). Ce répertoire contient ici 4 sous répertoires.

(point point). Le

premier, qui a pour symbole (.), permet de référencer le répertoire lui-même (répertoire courant).

Dans chaque répertoire, on trouve au moins deux fichiers, nommés. (point) et

Et

le second, qui a pour symbole (

),

permet d’accéder au répertoire parent (répertoire situé juste

au

dessus).

A

chaque instant, toute tâche possède un répertoire courant, ou répertoire de travail. La

commande pwd affiche ce répertoire. La commande cd permet de changer le répertoire courant.

2-1- Chemins absolus et relatifs Pour désigner un fichier quelconque, on peut utiliser soit un chemin absolu, soit un chemin relatif. Un chemin absolu spécifie la suite des répertoires à traverser en partant de la racine, séparés par des caractères / (et non \ comme sous DOS). Par exemple, le chemin « /usr/bin/compress »

Linux LP2I 2010 - 2011

désigne le fichier compress, qui se trouve dans le répertoire bin, lui-même dans le répertoire usr

de

la racine. Le premier caractère / indique qu’il s’agit d’un chemin absolu.

Il

est souvent pratique d’utiliser un chemin relatif, à partir du répertoire courant. Par exemple, si

l’on travaille dans le répertoire dupond de la figure 1, on peut accéder au fichier durand en

spécifiant le chemin «

Du même endroit, on peut accéder au fichier compress via le chemin «

Tout chemin qui ne commence pas par un caractère / (prononcé slash) est interprété comme un

chemin relatif au répertoire courant.

/durand »

/ /usr/bin/compress

».

2-2 Répertoire de connexion

A chaque utilisateur connu du système est associé un répertoire de connexion (home directory).

L’utilisateur y place ses fichiers personnels, et peut y créer autant de sous-répertoires qu’il le désire. Dans l’exemple figure 1, le répertoire de connexion de M. Dupond est « /users/dupond. » Après le login, l’interpréteur de commande a pour répertoire courant le répertoire de connexion

de l’utilisateur. Le compte root est réservé pour le superviseur du système.

Le répertoire de connexion contient aussi certains fichiers de configuration permettant à l’utilisateur de personnaliser son environnement de travail. Ces fichiers sont normalement invisibles (car leur nom commence par un point).

2-3 Répertoires importants Quelques répertoires importants sous linux/unix:

/bin/, /sbin/ contient les binaires et les scripts exécutables. /bin pour l’utilisateur. Le répertoire /sbin contient également des binaires et scripts exécutable, mais plutôt destinés au super- utilisateur et/ou aux routines de démarrage. /boot/ contient l’image du noyau et les fichiers de démarrage /etc/ les fichiers de configuration du système /home Répertoires privés (user et daemons : pgm qui se lance au démarrage de la machine) /usr/ Programmes et librairies utilisateurs /var/lock/ Verrous servant à éviter les conflits /var/log/ Historiques : Erreurs et messages des daemons /var/spool/ Queues : Files d’attentes imprimante, courrier /dev/ contient les devices (périphérique) /tmp fichiers temporaires, vidé à chaque démarrage /lib/ bibliothèques /mnt les dossiers pour les points de montage temporaires /proc Accès direct aux paramètres du noyau

3 Les liens (ln) Les liens sont des fichiers assez spéciaux puisqu’ils permettent d'associer plusieurs noms à un seul et même fichier. Pour créer un lien, on utilise la commande ln. L'utilité des liens est évidente puisqu'ils permettent à partir d'un seul fichier physiquement présent sur l'espace disque, d'avoir plusieurs références de noms différents et localisées en des lieux différents d'un même fichier qu'il n'est plus besoin de copier. Lorsque le fichier pointé est volumineux, l'emploi des liens est donc très avantageux. Les liens peuvent êtres de deux types :

Lien symbolique

Linux LP2I 2010 - 2011

Un lien symbolique est un simple pointeur vers un autre fichier bien réel.

La commande ln -s permet de créer un lien symbolique sur un fichier. Ce lien sera présent sous la forme d'un fichier dont le nom sera affiché après le symbole @.

Syntaxe : ln -s nom-du-fichier-à-pointer nom-du-lien-symbolique

Lien physique Un lien physique sur un fichier est un fichier qui occupe exactement le même espace disque que

le fichier vers lequel il pointe.

Ainsi les deux fichiers : le lien et le fichier pointé sont physiquement les mêmes bien que

virtuellement (pour le système de fichiers) ils portent des noms différents et puissent être localisés dans des répertoires différents.

Syntaxe : ln nom-du-fichier-à-pointer nom-du-lien-symbolique

Exemple : Supposons qu’on a créé le fichier /usr/bin/test et que vous désirez disposer du même dans le répertoire /usr/tim, il suffit de créer un lien physique l’aide :

Ln /usr/bill/test /usr/tim/test Tout changement apporté à l’un sera immédiatement visible dans l’autre.

4-Commandes de base de gestion de dossiers et de fichiers

Il existe un très grand nombre de commandes sous Linux. Ces commandes sont exécutées depuis

l'invite du shell et ont la syntaxe suivante : nom_commande [-options] <cible1> <cible2> Exemples :

mv

f1

f2

f3 dossier

(déplace f1, f2 et f3 dans dossier).

mv

f1 f2

(change le nom de f1 en f2).

rm -r : supprime un répertoire. La commande cd

cd .

ne change pas de place

cd

va dans le répertoire parent

cd

/

saute vers le répertoire racine

cd

/home se déplace vers le répertoire home fils de la racine

cd

/

Remonte de deux crans.

cd

va directement au répertoire utilisateur

5- Les archives

- Les archives tar :

Les archives les plus souvent utilisées sont les archives tar, ce sont des fichiers qui contiennent plusieurs fichiers, ou même toute une arborescence de répertoires, le tout non compressée. Les options de tar :

v

: (verbose/parlant) permet d'obtenir une description du contenu archivé (facultatif)

c

: (create/créer) pour créer une archive

f

: (file/fichier) pour spécifier un nom pour l'archive (en paramètre)

x

: (extract/extraire) pour extraire les fichiers

t

: pour obtenir la liste de tous les fichiers contenus dans une archive.

z

: compresser ou décompresser en faisant appel à gzip

tar -tf mon_fichier.tar Pour créer l'archive toto.tar contenant le fichier toto et le répertoire repertoto :

$tar cvf toto.tar toto repertoto

Pour extraire cette archive

Linux LP2I 2010 - 2011

$tar xvf toto.tar $tar -xvf toto.tar "*.jpg" : Extrait dans le fichier "toto" tous les fichiers ayant l'extension ".jpg".

- La compression :

gzip permet de compresser des fichiers :

$gzip salut.c On obtient salut.c.gz. gunzip permet de décompresser. $gunzip salut.c.gz Par défaut, la vitesse et la qualité de la compression sont à -6 ; la meilleure compression est la -9 (c'est la plus lente) et la plus rapide est la -1 (c'est la moins fiable) :

gzip -9 salut.c Ces outils peuvent être combinés pour faire des archives compressées directement :

tar czf toto.tgz toto repertoto crée directement le .tar compressée, .tar.gz est souvent abrégé en .tgz. Il suffit de remplacer le c par le x dans les options de tar pour le décompresser.

6 - La redirection des entrées/sorties :

Lorsque le shell traite une commande, il assigne au programme d’exécution de la commande trois fichiers standards :

• stdin : un fichier d’entrée standard dans lequel le programme lit ses données (par défaut le

clavier),

• stdout : un fichier de sortie standard dans lequel le programme écrit ses résultats (par défaut

l’écran),

• stderr : un fichier d’erreurs standard qui reçoit les messages d’erreur générés lors de l’exécution (Par défaut l’écran). Ces flux d’entrées-sorties peuvent être redirigés vers d’autres fichiers très simplement. Exemple 1 : calcul est un programme exécutable quelconque. - Les données étant entrées au clavier, et les résultats étant à afficher sur l’écran on tape la commande :

$ calcul

- La sortie devant se faire dans calcul.s et les données étant entrées au clavier :

$ calcul > calcul.s

La redirection > a pour effet de créer le fichier calculs, si ce fichier existait déjà, il est tout simplement écrasé (supprimé et recréé), pour ne pas perdre ce qu'il contient, vous disposez donc de la redirection >> :

$ calcul >> calculs

Le fichier calculs n'est pas écrasé, mais la sortie standard est ajoutée en fin de fichier, à la suite

du texte qui était déjà dans le fichier.

- Les données étant à lire dans le fichier calcul.e et les résultats à afficher à l’écran :

$ calcul < calcule

- les données étant à lire dans calcule et les sorties à écrire dans calculs :

$ calcul < calcule > calculs

- Les erreurs peuvent être redirigées à l’aide du symbole 2> :

$ calcul 2> fichier_erreur

Linux LP2I 2010 - 2011

Exemple 2 :

(ls; pwd; who) > liste : permet de rediriger le résultat de la suite de commandes vers le fichier liste. En l'absence de parenthèses, seule le résultat de la dernière commande serait redirigée.

7 - Les pipes

Un pipe (tube de communication) permet de rediriger la sortie d'une commande vers une autre. En d'autres termes, pour rediriger les résultats (la sortie) d'une commande, on a vu qu'on pouvait

taper :

commande1 > sortie1

On redirige cette sortie vers une autre commande, ça devient donc une entrée pour cette dernière commande, pour cela vous tapez :

commande2 < sortie1

En fait la syntaxe commande1|commande2 ( | (ou ^)étant le symbole de pipe) est totalement équivalente aux deux lignes de commandes précédentes.

8 - Les Filtres

Un filtre est une commande qui lit les données sur l’entête standard, effectue des traitements sur

les lignes reçues et écrit le résultat sur la sortie standard.

- grep est un filtre. Il peut trouver un mot dans un fichier, par exemple :

$grep malloc *.c Cherche la chaîne de caractères malloc dans tous les fichiers dont le nom se termine par .c (*.c).

- Compter les caractères, les mots, les lignes:

wc [options] [fichiers

Permet de compter le nombre de lignes, de mots et de caractères de chaque fichier.

Les options sont:

• -l: compte les lignes,

• -w: compte le nombre de mots,

• -c: compte le nombre de caractères. Exemple :

(compte le nombre de ligne dans toto)

]

$wc -l toto

- Les commandes cat, more et less

cat f1 f2 less f1 f2

less f3 >> f ajoute le contenu du fichier f3 à la suite du contenu du fichier f

> f concatène f1, f2

dans le nouveau fichier f

> f concatène les fichiers f1 f2

en un seul fichier f (comme cat)

9 - Les droits d’accès

Pour afficher les attributs principaux des fichiers, il faut utiliser ls –l :

$ ls -l - rwx r-x r-x 1 user (1) (2) (3) (4)
$ ls
-l
-
rwx r-x r-x
1
user
(1)
(2)
(3)
(4)

1 : type de fichier :

- : fichier normal

bin 1996 Mar 15 2007 fichier (5) (6) (7) (8)
bin
1996
Mar
15
2007
fichier
(5)
(6)
(7)
(8)

d

: répertoire

b

: fichier spécial (périphériques…)

l

: lien symbolique

s

: socket

p

: pipe (tube)

Linux LP2I 2010 - 2011

3 : Nombre de liens physiques qui pointent vers ce fichier

4 : nom du propriétaire

5 : nom du groupe du fichier

6 : taille du fichier

7 : date de la dernière modification

8 : nom du fichier

2 : les autorisations : pour des raisons de sécurité, les fichiers sont protégés en lecture (r),

écriture (w) ou exécution (x).

Pour chaque fichier, il existe trois catégories d’utilisateurs :

- Le propriétaire (u) : la première partie : rwx

- Son groupe (g) : la deuxième partie : r-x

- Les autres (Others : O) : la troisième partie : rwx

Changer les permissions La commande chmod permet de changer les droits d’accès à un fichier. Seul le propriétaire d’un fichier a le droit d’en modifier les droits d’accès. Pour cette commande, il existe deux modes :

-mode symbolique Ce mode utilise les lettres u, g et o. (+) : ajouter, (-) supprimer, (=) définir des permissions et remplacer les droits existants. Exemples :

chmod +x fichier chmod ug+x fichier chmod u+rwx fichier chmod o = rx fichier (définit les droits de lecture et d’exécution à tous les autres utilisateurs). Avec l’option -R de chmod, les permissions sont propagées aux fichiers se trouvant dans le répertoire, ex : chmod -R u-w monrep/ (change les permissions pour le répertoire monrep et les fichiers qu’il contient). -mode numérique Pour obtenir les permissions exprimées en octal, il suffit d’ajouter en octal les nombres de la table de correspondance ci dessous :

propriétaire

 

groupe

autre

lecture

écriture

exécution

lecture

écriture

exécution

lecture

écriture

exécution

400

200

100

40

20

10

4

2

1

On additionne en suite, les droits pour chacun. Le mode de protection par défaut est en général pour :

Les fichiers rw-rw-rw- Les répertoires rwx rwx rwx

Le masque de protection Pour attribuer les droits d’accès par défaut, il faut exécuter la commande umask et attribuer un numéro particulier.

Linux LP2I 2010 - 2011

Exercices :

1) Tapez la commande umask, de manière à ce que les fichiers lors de leur création aient par défaut les droits 640 (rw-r-----), et les répertoires 750 (rwxr-x---). Solution :

Pour un fichier :

masque maximum pour un fichier

666

rw-rw-rw-

à

retirer

026

----w-rw-

droit par défaut

640

rw-r-----

Pour un répertoire

 

masque maximum pour un répertoire

777

rwxrwxrwx

à

retirer

027

----w-rwx

droit par défaut

640

rwxr-x---

Soit la commande:

umask 027 (Pour un fichier retirer 026 ou 027 est équivalent) 2) umask 077 donnera une protection rw- --- --- pour les fichiers et rwx- --- --- pour les repertoires.

10 – Génération de noms de fichiers Le shell offre la possibilité d’utiliser les métacaractères pour générer les noms de fichier à fournir aux commandes. * : permet de remplacer une chaîne de caractères ? : remplace un seul caractère [Liste de caractères] : Signifie un caractère quelconque parmi ceux de la liste. Par exemple [a-b] signifie un caractère compris entre a et z. [ !Liste de caractères] : Signifie un caractère quelconque, sauf ceux de la liste donnée. Exemples :

$ rm *.c

$ ls

$ ls -l?a*

* .???

Commande linux équivalent MsDos

Commandes

équivalent

à quoi ça sert

 

Exemples :

linux

MsDos

 
       

cd

cd

cd

change le répertoire courant.

-

va dans le répertoire parent du répertoire courant

cd

/home/user/.nsmail

-

va dans le répertoire désigné

Linux LP2I 2010 - 2011

     

ls

-

affiche le contenu du répertoire courant

ls

-l

ls

dir

affiche le contenu d'un répertoire

affiche le contenu du répertoire courant de manière détaillée

-

ls

-a /home/user

affiche le contenu du répertoire désigné (ainsi que les fichiers cachés)

-

     

cp

toto /tmp

-

copie le fichier toto dans le répertoire /tmp

cp

toto titi

cp

copy

copie un ou plusieurs fichiers

xcopy

-

copie le fichier toto sur le fichier titi

   

cp -R /home/user /tmp/bak

copie le répertoire /home/user ainsi que tout ce qu'il contient dans /tmp/bak

-

     

rm toto titi

-

efface les fichiers toto et titi

rm

del

efface un ou plusieurs fichiers

rm -f toto titi

efface les fichiers toto et titi sans demander confirmation

-

   

efface un répertoire et son contenu

rm -rf /tmp/*

rm -rf

deltree

efface (sans demander de confirmation) tous les fichiers et répertoires de /tmp

-

     

mkdir /home/user/mes_documents

-

crée le répertoire mes_documents dans le sous

mkdir

md ou mkdir

crée un répertoire

répertoire /home/user (éviter de mettre des espaces

dans les noms de fichiers ou de répertoires)

   

efface un répertoire s'il est vide

rmdir /home/user/.nsmail

rmdir

rm

-

efface le répertoire .nsmail de /home/user si celui-

 

ci

est vide

Linux LP2I 2010 - 2011

     

mv

tata titi

-

renomme tata en titi

mv

* *.bak

ren

déplace ou renomme un ou des fichiers

mv

-

ne fonctionne pas !!!!

move

 

mv

* /tmp/bak

-

déplace tous les fichiers du répertoire courant vers

le répertoire /tmp/bak

   

trouve un fichier répondant à certains critères

find /home -name "*bash*"

find

dir -s

trouve tous les fichiers contenant le mot bash dans leur nom se trouvant dans le répertoire /home

-

     

locate bash

locate

dir -s

trouve un fichier d'après son nom

trouve tous les fichiers contenant le mot bash dans leur nom complet (avec le répertoire) : à la différence de find, locate trouve ses informations dans une base de donnée créée par updatedb

-

   

affiche l'aide concernant une commande particulière

man ls

man

help

-

affiche l'aide (page de manuel) de la commnade

ls. On quitte man en appuyant sur la touche 'q'

     

chmod o+r /home/user

autorise les autres (o=other) (ie: ceux qui ne sont ni le propriétaire, ni membre du groupe

-

modifie les permissions d'un fichier

propriétaire) à lire (r=read) le répertoire /home/user

chmod

cacls

chmod a+rw /home/user/unfichier

 

-

autorise tout le monde (a=all) à lire et écrire

(w=write) dans le fichier /home/user/unfichier

chown

pas

modifie le propriétaire d'un fichier

chown user unfichier

d'équivalent

rend user propriétaire de unfichier.

chgrp

pas

modifie le groupe proprétaire d'un fichier

chgrp -R nobody /home/httpd

d'équivalent

-

rend le groupe : nobody (un groupe ayant très

Linux LP2I 2010 - 2011

     

peu de droit sur un système linux) propriétaire de /home/httpd ainsi que tout les fichiers qu'il

contient (-R)

     

ln -s /dev/fd0 /dev/disquette crée un lien vers /dev/fd0 (le lecteur de

pas

ln -s

d'équivalent

crée un lien vers un fichier

disquette) nommé /dev/disquette. La

manipulation de /dev/fd0 et /dev/disquette (sauf l'effacement).

   

recherche une chaine dans un fichier (en fait recherche une expression régulière dans plusieurs fichiers)

grep chaine *.txt

grep

pas

-

recherche la chaine 'chaine' dans tous les fichier

d'équivalent

se terminant par .txt.

   

trouve le répertoire dans lequel se trouve une commande

which emacs

pas

which

-

d'équivalent

retourne le nom du répertoire dans lequel se trouve la commande emacs.

cat

type

affiche un fichier à l'écran

cat ~/.bashrc

-

affiche le contenu du fichier ~/.bashrc

Linux LP2I 2010 - 2011

Chapitre Programmation Shell

Introduction Le shell est un interpréteur de commandes. C'est un programme spécial qui joue le rôle d'intermédiaire en interprétant les commandes passées par l'utilisateur. Pourquoi la programmation Shell ? Aucun langage de programmation n'est parfait. Il n'existe même pas un langage meilleur que d'autre ; il n'y a que des langages en adéquation ou peu conseillés pour des buts particuliers.

Une connaissance fonctionnelle de la programmation shell est essentielle à quiconque souhaite devenir efficace en administration de système, même pour ceux qui ne pensent pas avoir à écrire un script un jour. Pensez qu'au démarrage de la machine Linux, des scripts shell du répertoire /etc/rc.d sont exécutés pour restaurer la configuration du système et permettre la mise en fonctionnement des services. Une compréhension détaillée de ces scripts de démarrage est importante pour analyser le comportement d'un système, et éventuellement le modifier.

Écrire des scripts shell n'est pas difficile à apprendre car, d'une part, les scripts peuvent être construits par petites sections et, d'autre part, il n'y a qu'un assez petit nombre d'opérateurs et d'options spécifiques au shell à connaître. La syntaxe est simple et directe, similaire à une suite d'appels de différents utilitaires en ligne de commande et il n'existe que peu de « règles » à apprendre. La plupart des petits scripts fonctionnent du premier coup et le débogage, même des plus longs, est assez simple.

Un script shell est une méthode « rapide et sale » pour prototyper une application complexe. Avoir même un sous-ensemble limité de fonctionnalités dans un script shell est souvent une première étape utile lors d'un projet de développement. De cette façon, la structure de l'application peut être testée et les problèmes majeurs trouvés avant d'effectuer le codage final en C, C++, Java ou Perl.

La programmation shell ramène à la philosophie classique des UNIX, c'est à dire, casser des projets complexes en sous-tâches plus simples et assembler des composants et des utilitaires. Beaucoup considèrent que cette approche de la résolution de problème est meilleure ou, du moins, plus abordable que l'utilisation de langages de nouvelle génération puissamment intégré comme Perl, qui essaient de tout faire pour tout le monde mais au prix de vous forcer à changer votre processus de réflexion pour vous adapter à l'outil.

D'après Herbert Mayer, « un langage utile doit comprendre des tableaux, des pointeurs et un mécanisme générique pour construire des structures de données. » Suivant ces critères, les langages des scripts shell ne sont pas « utiles ». Peut-être que si.

Quand ne pas utiliser les scripts shell

Pour des tâches demandant beaucoup de ressources et particulièrement lorsque la rapidité est un facteur (tri, hachage, etc.) ;

Linux LP2I 2010 - 2011

Pour des procédures impliquant des opérations mathématiques nombreuses et complexes, spécialement pour de l'arithmétique à virgule flottante, des calculs à précision arbitraire ou des nombres complexes (optez plutôt pour le C++ ou le FORTRAN dans ce cas) ;

Pour une portabilité inter-plateformes (utilisez le C ou Java à la place) ;

pour des applications complexes où une programmation structurée est nécessaire (typage de variables, prototypage de fonctions, etc.) ;

pour des applications critiques sur lesquelles vous misez votre avenir ou celui de la société ;

pour des situations où la sécurité est importante, où vous avez besoin de garantir l'intégrité de votre système et de vous protéger contre les intrusions et le vandalisme ;

pour des projets consistant en de nombreux composants avec des dépendances inter-verrouillées ;

lorsque des opérations importantes sur des fichiers sont requises (Bash est limité à un accès fichier en série, ligne par ligne, ce qui est particulièrement maladroit et inefficace) ;

si le support natif des tableaux multidimensionnels est nécessaire ;

si vous avez besoin de structures de données, telles que des listes chaînées ou des arbres ;

si vous avez besoin de générer ou de manipuler des graphiques ou une interface utilisateur (GUI)

;

lorsqu'un accès direct au matériel est nécessaire ;

lorsque vous avez besoin d'accéder à un port, à un socket d'entrée/sortie ;

si vous avez besoin d'utiliser des bibliothèques ou une interface propriétaire ;

pour des applications propriétaires, à sources fermées (les sources des shells sont forcément visibles par tout le monde).

1) Les différents shells

Il existe plusieurs shell (bash: version améliorée du shell Bourne sous Unix, csh, tcsh : shell C sous Unix) et le langage de programmation des scripts diffère d'un shell à l'autre. Pour connaître le shell sous lequel on travaille :

$echo $SHELL qui affichera /bin/bash par exemple Pour changer le shell :

On utilise la commande chsh

2) Exemple

Le script suivant a pour nom Bonjour :

#!/bin/bash # afficher un message

Linux LP2I 2010 - 2011

echo "Bonjour, c’est mon premier script" A part la première ligne, les lignes commençant par le caractère # sont des commentaires, c'est-à-dire des textes qui doivent aider à comprendre ce que fait un programme. Ces lignes ne sont pas interprétées par le shell.

La première ligne d'un script doit toujours indiquer le shell qui doit être utilisé pour l'interpréter. Par exemple, pour le bash, la première ligne d'un script doit être :

#! /bin/bash Il est nécessaire de donner l'adresse absolue du shell, à partir de la racine.

3) Exécution d’un script shell :

Avant de lancer un script shell, il faut s’assurer qu’il est exécutable. On affecte simplement le droit d’exécution par la commande :

$ chmod +x nomScript

ou

$ chmod 755 nomScript

L’exécution du script :

$ ./nomScript

ou simplement :

$ nomScript

Pour des raisons de sécurité, le répertoire courant (./) n'est pas inclus par défaut dans le $PATH de l'utilisateur. Avant tout, il faut s’assurer que la variable PATH de votre machine, contient la référence au répertoire courant. Pour changer la variable PATH :

$ PATH = $PATH :.

Exemple :

$./Bonjour

Bonjour, c’est mon premier script

Enfin, après les tests et le débogage final, déplacer le script dans /usr/local/bin (en tant que root), pour le rendre utilisable par vous et par tous les autres utilisateurs du système. Le script pourra alors être appelé en tapant simplement nomScript sur la ligne de commande. Remarque : Le script shell peut s’exécuter en différé (en arrière plan). Il suffit de terminer la ligne de commande avec un caractère &

4) Exemples de commandes shell

- Alias

Pour abréger certaine commande, il est possible d’utiliser le mécanisme d’alias qui permet de

donner un nom à une commande. Exemple :

alias rm = ‘rm -i’ # Pour conformation à chaque destruction de fichier.

- Redirection

echo "Je suis étudiant de smi" > test1

echo "Je suis inscrit en smi3" >> test1

Linux LP2I 2010 - 2011

- Trions un fichier wc -l < test2 # affiche le nombre de lignes du fichier test2

-Caractères spéciaux

a) caractère >

Si on veut afficher un texte comportant le caractère > :

$echo poids1 > poids2 Crée un fichier poids2 qui contient le mot poids1, car > est un caractère interprété par le shell. Pour annuler cette interprétation, il faut faire précéder chaque caractère à annuler par un \.

$echo poids1 \ > poids2

# affiche poids1 > poids2

b) Caractères quottes

exemple1 :

$ echo "$HOME"

interne, qui permet d’afficher le répertoire personnel de l’utilisateur.

# affiche /home/smi et non pas $HOME, car $HOME est une variable

Pour annuler cette interprétation

$ echo '$USER'

# affiche $USER et non pas smi

exemple2 :

$echo `Chemins : `cd /tmp ; pwd`, $HOME`

Affiche : Chemins : `cd /tmp ; pwd`, $HOME`

$echo "Chemins : `cd /tmp ; pwd`, $HOME"

Affiche : Chemins : /tmp, /home/smi

Exemple3 :

$echo "Mon répertoire de travail est `pwd`" Affiche : Mon répertoire de travail est /home/smi/doc

5) Les variables internes

Le shell reconnaît de nombreuses variables. Voici quelques unes des variables d’environnement du bash.

HOSTNAME : Contient le nom de la machine $echo $HOSTNAME

tintin

HOSTTYPE : Type de la machine $echo $ HOSTTYPE

i486

Linux LP2I 2010 - 2011

LANG : Définit la langue utilisée par la machine(fomat de l’affichage de la date) $echo $LANG fr_FR

PATH : Indique les chemins de recherche pour les commandes à exécuter. Il s’agit d’une liste de répertoires, séparés par des doubles points : que l’interpréteur consulte lorsqu’il recherche une commande. $echo $PATH :/bin :/usr/bin:/usr/X11R6/bin:/usr/local/bin

PPID : Donne le numéro du processus parent du shell. Le numéro du processu courant es accessible via le paramétre $. $echo $PPID

7454

$echo $$

7455

RANDOM : Donne un entier aléatoire.

SECONDS : Donne le nombre de secondes écoulées depuis le lancement du shell depuis l’affectation d’une nouvelle valeur à cette variable.

MAILMSG : message d'alerte à l'arrivé d'un courrier

6) Les paramètres :

Il est possible de faire passer plusieurs paramètres à un script. Les paramètres sont placés à la

suite du nom du script, et séparés par des espaces, comme pour une commande standard.

A l'intérieur du script, la valeur de ces paramètres est récupérée grâce aux variables '1' à '9'.

Par exemple, la ligne echo $3 Renverra la valeur du troisième paramètre si il existe, rien sinon

$0

Contient le nom du script tel qu'il a été invoqué

$*

L'ensemble des paramètres sous la forme d'un seul argument

$@

L'ensemble des arguments, un argument par paramètre

$#

Le nombre de paramètres passés au script

$?

Le code retour de la dernière commande

$$

Le PID su shell qui exécute le script

$!

Le PID du dernier processus lancé en arrière-plan

Linux LP2I 2010 - 2011

Le code de retour d'une commande est un mécanisme fourni par le shell (quel qu'il soit) qui signale à l'utilisateur si l'exécution de cette commande s'est bien déroulée ou bien s'il y a eu un problème quelconque. Le code de retour est un petit entier positif ou nul, toujours compris entre 0 et 255.

Par convention, un code de retour égal à 0 signifie que la commande s'est exécutée correctement. Un code différent de 0 signifie soit une erreur d'exécution, soit une erreur syntaxique.

Exemple 1:

$ pwd

/home/sanchis

$

echo $?

0

=> la commande s'est exécutée correctement

$

ls -l vi

ls: vi: Aucun fichier ou répertoire de ce type

$ echo $?

1 => erreur d'exécution !

Exemple 2: soit le script qui porte le nom essai :

echo "La commande $0 a

$# arguments"

echo

'$1 =

'$1

echo

'$2 =

'$2

echo

'$* =

'$*

shift

echo "Maintenant il y a $# arguments"

echo '$1 =

'$1

Exécutons ce script :

$ ./essai alpha beta gamma

Résultat :

La commande ./essai a 3 arguments

$1=alpha

$2=beta

$*=alpha beta gamma Maintenant il y a 2 arguments $1 = beta

# a 3 arguments

La fonction shift permet de décaler la liste des paramètres d’un cran vers la gauche (efface alpha).

7) La programmation shell

Linux LP2I 2010 - 2011

Le shell offre les mêmes structures de contrôle qu’un langage de programmation comme le C.

Structure conditionnelle L'instruction if permet d'e_ectuer des opérations si une condition est réalisée, et d'autres sinon. La structure la plus simple est la suivante :

if <condition> then <liste d'instructions> else <suite d'instructions> fi

On peut écrire des conditions à l'aide de la commande test qui peut être utilisée pour comparer deux entiers :

-eq pour = -ne pour différent -lt pour < -le pour < ou = -gt pour > -ge pour > ou =

Exemple :

#!/bin/bash # estPositif if test $1 -gt 0 then echo "l'argument est positif" fi

La boucle for :

Cette instruction permet de répéter une instruction pour un ensemble de paramètres.

for variable in liste do <suite de commande> done

Exemple :

$ for fichier in *.txt do chmod o-r $fichier done

Pour tous les fichiers texte, on enlève le droit de lecture aux autres utilisateurs.

While/Until Ces deux commandes permettent de faire exécuter une liste d'instruction tant qu'une (ou jusqu'à ce qu'une) certaine condition soit réalisée :

while condition

do

liste_commandes

Linux LP2I 2010 - 2011

done

ou

until condition

do

liste_commandes

done

Exemple :

#! /bin/bash

a=1

# a est une variable initialisée à 1

# evalue a+b et le place dans b

b=0

# b est initialisée à zéro

until test $a = 10 do b=’expr $a + $b’ a=’expr $a + 1’

# Jusqu'à ce que a=10, faire

# evalue a+1 et le place en 1

done echo $b fi

# Affiche la valeur de b

La réponse au lancement de ce script est : 45

8) Les opérateurs logiques

Pour former des expressions un peu plus complexe, les opérateurs ! (« non »), -a(« et ») et –o (« ou ») peuvent être utilisés, mais également le parenthèse. Exemple :

= then echo "a est égal à b ou a est différent de c" else echo "a est différent de b et égal à c" fi

If test

$a

$b

-o

$a !=

$c

9) Calculs arithmétiques

expr $a + $b Donne le résultat de l’addition de a et b. expr $a - $b Donne le résultat de la soustraction de a et b. expr $a \* $b Donne le résultat de la multiplication de a et b. expr $a / $b Donne le résultat de la division de a par b. expr $a % $b renvoie le reste de la division entière de a par b.

10) Comparaisons de chaînes de caractères

La commande suivante :

expr $str2 : $str1 compare la chaîne de caractères str1 à la chaîne de caractères str2 et s’arrête dès que les chaînes de caractères différent ou à la fin de str1. Elle renvoie le nombre de caractères en commun si les chaînes coïncident jusqu’à la fin de str1 et la valeur 0 sinon Exemple :

compar = 'expr $1 : $2' if test $compar = 0 then echo $1 différe de $2

else echo $1 est égale à $2

Linux LP2I 2010 - 2011

fi

11) La commande test

Comme son nom l'indique, cette commande permet d'effectuer différents tests sur des fichiers, des répertoires ou des expressions arithmétiques. Elle s’utilise en association avec if, while et until pour évaluer le résultat vrai ou faux d’une expression. -r fichier : vrai si le fichier existe et est accessible en lecture (R) -w fichier : vrai si le fichier existe et est accessible en écriture (W) -x fichier : vrai si le fichier existe et est exécutable (X) -f fichier : vrai si le fichier existe et est un fichier régulier -d fichier : vrai si le fichier existe et est un répertoire

12) Les fonctions Shell

Une fonction est un ensemble de commandes qui sont regroupées sous un même nom. Sa syntaxe est la suivante :

Function nom()

{

liste_de_commandes

}

Ces fonctions sont appelables comme les autres commandes standards ou fichiers de commandes.

Il est alors possible de leur passer des arguments en utilisant les notations : $1 , $2 Une fonction peut retourner une valeur d’état avec le mot réservé return.

13) Les variables

Les variables Bash ne sont pas typées, à l'inverse de nombreux langages de programmation, Bash ne regroupe pas ses variables par « type ». Essentiellement, les variables bash sont des chaînes de caractères mais, suivant le contexte, Bash autorise des opérations entières et des comparaisons sur ces variables, le facteur décisif étant la seule présence de chiffres dans la variable.

Exemple Entier ou chaîne?

#!/bin/bash # int-or-string.sh : Entier ou chaîne de caractères ?

a=2334

let "a += 1" echo "a = $a " echo

b=${a/23/BB}

echo "b = $b" declare -i b echo "b = $b"

# Entier.

# a = 2335 # Entier, toujours.

# Substitue "BB" à "23". # Ceci transforme $b en une chaîne de caractères. # b = BB35 # Le déclarer comme entier n'aide pas. # b = BB35

# Ceci transforme $b en une chaîne de caractères. # b = BB35 # Le déclarer

Linux LP2I 2010 - 2011

let "b += 1" echo "b = $b" echo

# BB35 + 1 = # b = 1

c=BB34

echo "c = $c"

# c = BB34

d=${c/BB/23}

# Substitue "23" à "BB".

echo "d = $d" let "d += 1" echo "d = $d" echo

#

Ceci fait de $d un entier. # d = 2334 # 2334 + 1 = # d = 2335

# Et à propos des variables nulles ? e=""

echo "e = $e" let "e += 1"

# e = # Les opérations arithmétiques sont-elles permises sur

echo "e = $e" echo

#

une variable nulle ? # e = 1 # Variable nulle transformée en entier.

# Et concernant les variables non déclarées ?

echo "f = $f" let "f += 1" echo "f = $f" echo

# f = # Opérations arithmétiques permises ? # f = 1 # Variable non déclarée transformée en entier.

# Les variables dans Bash sont essentiellement non typées.

exit 0

14- la commande read

Grâce à la commande read on peut lire des parametres. Prenons le script suivant :

#!/bin/sh

# Fichier "mon-nom"

echo "Bonjour

Comment vous-appelez-vous ?"

read nom

echo "Je vous souhaite, $nom, de passer une bonne journée."

La commande read permet de lire des variables. Si vous exécutez ce script, après avoir affiché la ligne

Linux LP2I 2010 - 2011

Bonjour

Comment vous-appelez-vous ?

le shell va attendre que vous tapiez votre nom. Tapez par exemple Toto, puis appuyez sur Entrée, et vous verrez :

Bonjour

Comment vous-appelez-vous ?

Toto

Je vous souhaite, Toto, de passer une bonne journée.

La commande read doit être suivie du seul nom de la variable, non précédé du signe dollar. Le signe dollar ne doit précéder le nom de la variable que lorsque l'on cite son contenu.

Lire plusieurs variables

La commande read permet également de lire plusieurs variables. Il suffit pour cela d'indiquer à la suite les noms des différentes variables. Exemple :

#!/bin/sh # Fichier "administration"

echo "Écrivez votre nom puis votre prénom :" read nom prenom echo "Nom : $nom" echo "Prénom : $prenom"

Vous aurez :

Écrivez votre nom puis votre prénom :

Hugo Victor Nom : Hugo Prénom : Victor

Linux LP2I 2010 - 2011

INSTALLATION ET PARTAGE DE LINUX

Avant de pouvoir installer Linux Mandrake 10.0 il serait utile de savoir si votre matériel est bien compatible avec. Pour cela, rendez-vous sur le site officiel (www.linux-mandrak.com) de Mandrake. Tout d'abord assurez vous que votre ordinateur boote (permet de démarrer) bien sur le lecteur cd. (Cette option peut se régler dans le SETUP du BIOS).

Installation

Mettez le CD 1/3 de Linux Mandrake 10.0 dans votre lecteur de CD et redémarrez l'ordinateur. Sélectionnez bien sur Français (dans la rubrique Europe) et cliquez sur « Next »

Choisissez votre clavier (pour moi ce sera Français) et cliquez sur « Suivant » Sécurité : Si vous êtes en tant que client et que vous avez simplement besoin d'être connecté à Internet, vous pouvez choisir le mode par défaut "Standard" Plus vous montez dans les niveaux de sécurité, plus il y a des restrictions. Logique! En fait, les autres modes, à savoir: "Elevé", "Plus élevé" et "Paranoïaque", sont destinés à un usage en tant que serveur. Le niveau "Elevé" peut s'employer dans les 2 cas, mais si en tant que serveur on a besoin d'avoir beaucoup de connexions simultanées, le niveau « Plus élevé » devient indispensable. Donc pour notre cas ce sera "Standard" Partitionnement Maintenant, nous arrivons à une étape importante de l'installation de Linux : Le partitionnement du disque dur. Note: il est utile de défragmenter les partitions Windows avant d'installer Linux car lors du redimensionnement des partitions Windows vous pourrez alors obtenir un gain de place. Plusieurs possibilités s'offrent à vous:

Soit vous installez Linux sur une machine sur laquelle Linux sera le seul système d'exploitation et dans ce cas vous pouvez choisir l'option "Utiliser l'espace libre" (tout va se faire automatiquement, vous pouvez sauter l'étape du partitionnement).

Soit vous voulez faire cohabiter Windows (toutes versions) et Linux. Donc dans ce cas optez pour "Partitionnement personnalisé" et cliquer sur suivant.

La configuration est la suivante: un seul disque dur nommé

Les disques durs physiques IDE sont nommés

Donc si vous avez plusieurs disques durs sur votre pc choisissez le bon disque qui doit accueillir Linux. Et les partitions se nomment respectivement (pour le premier disque dur physique, qui se situe

sur la première nappe):

Vous avez 2 possibilités de partitionner votre disque dur une fois que vous êtes dans "partitionnement personnalisé" :

Vous allez avoir besoin de créer 2 partitions pour Linux. Une partition système, système de

fichier retenu

et une partition swap, c'est l'équivalent du fichier d'échange de Windows.

C'est dans ce fichier qu'est déchargée la mémoire vive (RAM) lorsqu'elle atteint un certain pourcentage d'occupation. Donc pour en revenir au partitionnement que nous devons effectuer:

Si vous voulez faire cohabiter Windows et Linux vous devez sûrement avoir une ou deux (ou

plus) partitions

Il va falloir (s'il ne reste pas de partition vierge) redimensionner une partition Windows afin d'y mettre Linux. Pour ce faire:

-Cliquez sur la partition à redimensionner et un nouveau menu devrait apparaître.

hda hda , hdb , hdc ,
hda
hda
, hdb
, hdc
,
hda1 , hda2 ,
hda1
,
hda2
,
ext3"
ext3"
FAT32
FAT32
NTFS .
NTFS
.

ou

Linux LP2I 2010 - 2011

-Cliquez ensuite sur redimensionner et libérez de l'espace pour Linux, validez par "Ok" (vous devez au minimum libérer 2Go) Maintenant une nouvelle partition vierge vient d'être créée! -Cliquez une fois dessus afin de faire apparaître les options pour cette nouvelle partition et cliquez sur "Créer".

Vous allez créer votre partition avec pour système de fichier

Vous allez aussi en même temps, redimensionner cette partition pour laisser 300Mo à 500Mo pour la future partition de swap.

ext3
ext3
300Mo à 500Mo pour la future partition de swap. ext3 / , puis validez par "Ok"

/

, puis validez par "Ok"

Laissez ou mettez s'il n'y est pas, le point de montage sur

La partition système est créée avec pour système de fichier ext3 Nous allons maintenant créer notre partition de swap :

Cliquer sur la partition qui reste vide puis cliquez sur "Créer"

Ici pour la taille occupez la taille maximale proposée. Pour le système de fichier se sera swap. Valider par "Ok"

Partitionnement automatique Alors là rien de plus simple, pour libérer de la place reprenez les étapes du partitionnement à la main, et ensuite sélectionnez votre unique partition qui doit accueillir Linux et cliquez sur "partitionnement personnalisé" La différence entre le partitionnement à la main et le partitionnement personnalisé:

Le gain de temps.

L'"isolement" du répertoire

ne perdriez pas tous vos fichiers personnels qui seront stockés dans le répertoire

/home
/home

, car en effet si un jour vous devriez mettre à jour votre Mandrake, vous

/home
/home

Donc, j'ai juste expliqué le partitionnement "à la main" (qui est moins propre que celui automatique mais c'était pour que vous compreniez un peu ce qui se passe au niveau des partitions.

Linux LP2I 2010 - 2011

Conclusion: je vous conseille malgré tout le partitionnement Automatique. Le choix des paquets :

Une fois l'installation de package terminée, vous devriez arriver ici:

Vous devez définir le mot de passe "root". Root est en fait l'administrateur du système, c'est lui qui a tous les droits. Il est donc indispensable de choisir un mot de passe "solide". Ensuite, il va falloir créer un ou plusieurs utilisateurs.

Lilo Lilo, est le programme qui vous permet de choisir au démarrage entre les différents systèmes d'exploitations installés sur votre machine (pour nous Windows et Linux) Je vous conseille de le mettre sur le MBR (Master Boot Record) Ou alors sur une disquette si vous voulez par exemple "cacher" la présence de Linux sur votre Pc Dans ce cas choisissez "sur disquette" et pour démarrer Linux il faudra que vous bootiez sur la disquette qui vous chargera LILO en mémoire vive et qui vous permettra alors de booter sous Linux. Valider par "Suivant". Configuration du matériel Soit tout est automatiquement bien configuré et c'est tant mieux. En général, la configuration se fait selon nos besoins.