Vous êtes sur la page 1sur 37

Gnu/Linux Operating System Overview

I- LE SYSTEME - INSTALLATION .............................................................................................................................. 4


I.1. DEFINITION DES PARTITIONS ..........................................................................................................................................5
Quelques mots concernant « swap » ........................................................................................................................5
Ou peut-on créer les « swaps ».................................................................................................................................5
I.2. DUAL BOOT AVEC WINDOWS .........................................................................................................................................6
I.3. ETAPES DE L’INSTALLATION DE GNU/LINUX........................................................................................................................6
II- LE SYSTEME - LE NOYAU ..................................................................................................................................... 7
II.1- LE ROLE DU NOYAU......................................................................................................................................................8
II.2- ACCEDER AUX SERVICES DU NOYAU .................................................................................................................................8
II.3- MODIFIER OU CONSTRUIRE UN NOUVEAU NOYAU ..............................................................................................................8
III- ADMINISTRATION SYSTEME – LES COMMANDES DE BASES................................................................................ 9
III.1- INTRODUCTION........................................................................................................................................................10
III.2- QUELQUES COMMANDES POUR DEBUTER .....................................................................................................................10
a. Informations Systèmes ....................................................................................................................................10
b. Commandes générales de gestion des répertoires ..........................................................................................10
c. Commandes générales de gestion des Fichiers ...............................................................................................11
d. Redirection des entrées-sorties .......................................................................................................................11
e. Rechercher des fichiers et des répertoires .......................................................................................................12
f. Critères de recherche de nom de fichier ..........................................................................................................12
g. Les tubes ..........................................................................................................................................................12
h. Les filters .........................................................................................................................................................13
III.3. GESTION DES UTILISATEURS ET GROUPES .......................................................................................................................14
a. Les utilisateurs .................................................................................................................................................14
o Le fichier /etc/passwd .....................................................................................................................................15
o Le fichier /etc/shadow .....................................................................................................................................16
b. Les Groupes .....................................................................................................................................................16
c. Les commandes de gestion des utilisateurs ....................................................................................................16
d. Les commandes de gestion des groupes .........................................................................................................19
o Suppression d'un groupe .................................................................................................................................20
e. Changer d'identité ...........................................................................................................................................21
IV- ADMINISTRATION SYSTEME – LES EDITEURS .................................................................................................... 22
IV.1 VI ..........................................................................................................................................................................23
a. Les modes de Vi ...............................................................................................................................................23
b. Les commandes de base ..................................................................................................................................23
c. Les commandes d'édition.................................................................................................................................23
d. La recherche et le remplacement ....................................................................................................................23
e. Le copier-coller et couper-coller.....................................................................................................................24
IV.2 EMACS .................................................................................................................................................................25
V- ADMINISTRATION SYSTEME - GESTION DES PROCESSUS .................................................................................. 27
V.1 INTRODUCTION ........................................................................................................................................................28
V.2 EXECUTION D’UN PROCESSUS .......................................................................................................................................28
V.3 LES SIGNAUX : ...........................................................................................................................................................28
V.4 HERITAGE.................................................................................................................................................................28
o Les commandes externes.................................................................................................................................29
o Les commandes internes .................................................................................................................................30

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

VI- ADMINISTRATION SYSTEME - VERS LA PROGRAMMATION SOUS LINUX .......................................................... 31


VI.1 LE FICHIER « MAKEFILE » ........................................................................................................................................32
i. Définition .........................................................................................................................................................32
ii. Edition .............................................................................................................................................................32
VI.2 LES MACROS: ...........................................................................................................................................................32
i. Définition .........................................................................................................................................................32
ii. Les macros internes (prédéfinis) ......................................................................................................................32
VII- ADMINISTRATION SYSTEME – LA GESTION DES PAQUETAGES ......................................................................... 36
VII.1INTRODUCTION ........................................................................................................................................................37
VII.2DEFINITION .............................................................................................................................................................37
VII.3LA MISE EN ŒUVRE DE RPM .......................................................................................................................................37

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

AVANT PROPOS

Pour bien accomplir sa mission, l’administrateur doit respecter les règles de bon sens et être
méthodique : sauvegarder son système – tenir un journal de bord – agir de manière réversible
- automatiser les procédures – anticiper les problèmes. Cette manuelle présente quelques une
de ses règles à travers l’explication et la définition de chaque commande …. Cette manuelle
qui se base principalement sur la distribution FEDORA v.11 et présente d’une manière
générale l’environnement Gnu/Linux, sera peut être suivie d’une autre qui sera cette fois
orientée réseaux - sécurité et se basera sur trois autres distributions – à savoir Debian, IPcop,
et BackTrack.

Nos sincères remerciements au Professeur Khalid .AMECHNOU et à l’élève Ingénieur JAMAL


Bounasseh .

Auteurs :

KABASELE KALALA KALABI IGOR

RANDRIAMAMPIONONA JOSE JOHNNY

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

I- Le Système - Installation

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

I.1. Définition des partitions

L’installation du système Gnu/Linux requiert au minimum deux partitions : une partition « swap" et une
partition racine notée « / » d’une taille dépendante du nombre de paquetages que l’utilisateur souhaite
installer.

Quelques mots concernant « swap »


Le « swapping » est un mécanisme d’échange de données entre la mémoire RAM et un espace sur disque
spécialement aménagé à cet effet. Pour réaliser les échanges avec le maximum d’efficacité, linux oblige dès
l’installation du système, à créer un disque de « swap primaire » réservé à cet usage avec une taille égale au
moins deux fois la taille de la « RAM ». L’administrateur peut affiner le calcul de la taille du disque de swap :
la règle de calcul n’est pas complexe mais prend souvent en compte des informations que l’administrateur
ignore. Si sa taille s’avère insuffisante : le fichier « /proc/swaps » (qui contient la définition des différents
espaces de swap) ou la commande « free » permettent de surveiller son utilisation.

Ou peut-on créer les « swaps » :


Sur un nouveau disque dédié, le disque est une partition qui occupe éventuellement la totalité d’un disque
physique ; ou dans un fichier (voir man mkswap).Les zones de swap sont généralement activées
automatiquement au démarrage. Le premier disque de swap est créé lors de l’installation du système, la
commande « mkswap » permet d’ajouter des swaps secondaires et qu’on peut activer manuellement par la
suite grâce à la commande « swapon ».

Le tableau suivant fournit les descriptions de quelques partitions :

Partition Description
/ Elle contient le système de fichiers principal
/boot Elle contient les fichiers de « boot grub »
(« LILO ») et le noyau linux et doit résider en deçà
du cylindre 1023 du disque
/usr Elle contient les commandes et les services pour
les utilisateurs. C’est de loin la plus volumineuse
/var Elle est le pendant de « /usr ». elle contient les
requêtes adressées aux services des utilisateurs et
les fichiers historiques(log files)
/tmp Elle contient des fichiers temporaires créés par des
commandes et des services. La création spécifique
d’une partition pour /tmp évite la saturation de la
partition root, où /tmp réside sinon, par des
fichiers temporaires volumineux
/home Elle contient les répertoires de connexion des
utilisateurs du système. La création spécifique
d’une partition pour /home évite la saturation de
la partition root, où /home réside sinon, par des
utilisateurs trop gourmands
/usr/src Elle contient les sources du noyau et des

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

paquetages. Elle est indispensable pour régénérer


un noyau personnalisé.
/bin Contient les commandes binaires utilisateurs
/sbin Contient les d binaires systèmes
I.2. Dual Boot avec Windows:

Si la totalité de l’espace est occupé par le système Windows (ce qui est souvent le cas) : le CD-ROM
d’installation de la plupart de distributions de Gnu/linux propose un utilitaire déjà prêt(Gparted pour
Debian ), et ou la commande \dosutils\fips.exe qui permet de modifier la taille de la partition allouée à
WinXP afin de libérer de l’espace pour linux. Cette opération peut être réalisée par n’importe quel
logiciel qui sache bouger dynamiquement, sans perte de données, les frontières des partitions (Ghost,
Partition magique …)

I.3. Etapes de l’installation de Gnu/linux

a) Démarrer l’ordinateur avec le système linux


Insérer le CD dans le lecteur et redémarrer l’ordinateur en étant sur que le choix de démarrage à partir
d’un CD est activé comme premier choix dans le BIOS
b) Choix de la langue
Après avoir validé le type d’installation « installation classique », sélectionner « french » comme type
de langue
c) Choisir le clavier
Sélectionner « fr-latin9 »
d) Partitionnement
e) Sélection des paquetages à installer
Faites attention aux noms des « packages » : le nom n’indique pas nécessairement son utilité. On peut
néanmoins distinguer ceux qui correspondent à des services, comme les paquetages associés au réseau,
ceux qui sont utiles au développement, ceux qui permettent la régénération du noyau et les autres. A
noter qu’il existe parfois des dépendances entre certains paquetages : quand le programme d’installation
détecte une dépendance, il vous propose d’installer le paquetage dont dépend celui en cours pour la
satisfaire. Le programme d’installation copie ensuite tous les fichiers des paquetages sélectionnées et
crée un fichier historique de l’installation /tmp/install.long. Pendant cette étape, un écran montre : le
nombre de paquetages à installer, la taille de tous les paquetages à installer, le nombre et la taille de ce
qui restent à installer, le temps(en mn) pour tout installer (avec le temps écoulé et le temps restant).
f) Configuration du réseau
Il s’agit du paramétrage de la carte réseau - la configuration de base de TCP/IP : le nom du domaine, le
nom de l’hôte, l’adresse IP, le masque, la passerelle par défaut.
g) Configuration de la zone géographique
Cette information permet de configurer linux avec l’heure spécifique du pays, le Maroc.
h) Choix du mot de passe de root
Le programme d’installation demande dans cette étape de saisir le mot de passe du super-utilisateur : ce
mot de passe, d’une importance capitale, doit être saisi deux fois avant d’être mémorisé.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

II- Le Système - le Noyau Après ce petit survol sur


l’installation, nous présentons, d’une
manière superficielle dans cette
partie le noyau de linux : son rôle -
comment accéder à ses services.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

II.1- Le rôle du noyau

C’est d’abord un fichier exécutable qui existe sur le disque boot, dans le répertoire /boot. Son nom, qui
n’est pas standardisé est souvent « vmlinuz ». Il assure la gestion des ressources physiques et logiques
du système informatique :

 La gestion des périphériques qui est réalisée par les pilotes de périphériques intégrés au noyau.
 La gestion des fichiers qui s’appuie sur la couche VFS (« Virtual File System »). Ce dernier
permet une vision uniforme des systèmes des fichiers, même si chaque système de fichiers
possède son propre pilote.
 La gestion des processus qui est prise en charge par l’ordonnanceur (« process scheduler ») qui
assure l’allocation du ou des processeurs aux processus qu’il contrôle. Dans un mode de
fonctionnement en temps partagé, cas le plus fréquent pour les systèmes linux, le partage du
processeur vise à l’équité entre le processus.

II.2- Accéder aux services du noyau

Les processus adressent des demandes de services au noyau, par le biais d’une interface de
programmation (API) qui regroupe un ensemble des fonctions du même noyau, des primitives.

Les primitives sont le seul et unique moyen que le processus ont pour accéder aux fonctionnalités du
noyau : leur syntaxe les rend directement accessibles en langage C et permet la portabilité des
programmes d’un système linux et Unix, à condition que les systèmes intègrent les mêmes API. L’API
POSIX, définie par IEEE et normalisée par l’ISO, est la plus utilisée par les programmeurs
d’applications systèmes du monde Unix : linux est conforme à POSIX.

Mots clés : Linus Thorvald – Alan Cox – RMS

II.3- Modifier ou construire un nouveau noyau

Nous (en tant que root) pouvons être amenés à construire un nouveau noyau ou à modifier le noyau sur
notre système. Cette partie présentera tout simplement les principales raisons possibles qui peuvent
nous obligent à agir ainsi, plutôt que comment le faire. Le noyau de l’installation est générique : ses
composants (pilotes, systèmes de fichiers, et fonctionnalités diverses) correspondent souvent à notre
besoin, néanmoins il existe des situations particulières où nous serons obligés de concevoir un nouveau
noyau :

o L’ajout d’un périphérique qui doit être reconnu dès le démarrage par exemple.
o L’ajout d’une fonctionnalité qui n’est pas configurée dans notre noyau actuel : c’est le cas par
exemple si on veut rendre une distribution normale (comme Fedora) en routeur …
o Le retrait des composants, pilotes ou systèmes des fichiers, inutilisés.
o L’installation d’un noyau qui ne gère pas des modules (monolithiques)
o Le remplacement du noyau actuel par un noyau récent, intégrant de nouvelles fonctionnalités.

Pour plus de détails : www.kernel.org

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

III- Administration Système – les commandes de bases

Cette partie a pour but de faire découvrir les commandes de base :


elles vont nous permettre de copier, renommer, créer, supprimer des
fichiers et des répertoires en console ou dans un terminal. A noter que
toutes les commandes disposent d’un manuel complet qui peut être
obtenu en tapant « man la_commande ».

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

III.1- Introduction

o Le Shell

C’est l’interpréteur de commandes (l’interface) entre l’utilisateur et le système d’exploitation, d’où son
nom « shell » qui signifie « coquille ». Le shell est ainsi chargé de faire l'intermédiaire entre le système
d'exploitation et l'utilisateur grâce aux lignes de commandes saisies par ce dernier. Son rôle consiste à
lire de commande, interpréter sa signification, exécuter la commande, puis retourner le résultat sur les
sorties. Il existe plusieurs types de shells, les plus connus depuis Unix ayant une version améliorée sous
Linux. Le fichier «/etc/shells » contient une liste de tous les Shell disponibles : « bash »(version
améliorée du Shell Bourne), ksh (version améliorée de Korn) et tcsh (version améliorée du Shell C) sont
les plus connus. La commande help affiche la liste des commandes internes du shell : par défaut c’est le
shell bash qui est installé avec linux, c’est aussi le plus puissant et le plus utilisé (c’est celui que nous
utiliserons dans la section qui suit). Chaque utilisateur possède son propre shell par défaut qui sera
lancé à l’ouverture d’une invite de commande : il est précisé dans le fichier de configuration
/etc/passwd dans le dernier champ de la ligne correspondant à l’utilisateur concerné. Il est possible de
changer de Shell dans une session en exécutant tout simplement le fichier exécutable correspondant, par
exemple : /bin/bash.

III.2- Quelques commandes pour débuter

a. Informations Systèmes
Le nom du Système installé : $ uname –a

Connaitre la distribution installée : $ cat /etc/issue

Connaitre les utilisateurs en cours d’utilisation du système : $ who

b. Commandes générales de gestion des répertoires


La commande mkdir
Pour créer un répertoire mkdir [option] [nom_rep]

La commande rmdir
Permet de supprimer un répertoire vide rmdir [nom_rep]

Dans le cas ou le répertoire est non vide il est pratique la commande : rm -r


[nom_rep]

La commande mv
Selon l’existence ou pas du répertoire D2 elle agit de la manière suivante :

mv [D1] [D2] Pour le déplacement de D1 dans D2

mv [D1] [D2] Changement du nom D1 en D2

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

La commande ls
Affiche les fichiers et sous répertoires d’un répertoire ls [option]
[nom_rep]

Options Utiles :
F : ajout d’une indication de type

l : affiche les principaux attributs des fichiers et répertoires :


Sorties : Type droits liens propriétaires groupes taille date nom

a : affiche les fichiers et répertoires dont le nom commence par un point

d : n’affiche pas le contenu du répertoire

R : Affichage récursif

La commande cd (change directory)


Permet un déplacement sous le répertoire passé en argument cd [nom_rep]

c. Commandes générales de gestion des Fichiers

Création d’un fichier vide


touch [nom_fichier]
Affichage du contenu d’un fichier (texte)
cat [F1]
more [F1]
Copier un fichier
cp [F1] [F2] Copier le fichier F1 en F2
cp [F1] [F2] [D] Copier F1, F2 et F3 dans le répertoire D
Supprimer un fichier
rm [option] [F] …
Options Utiles :
i : Affiche une demande de confirmation de suppression
r : Suppression récursive (aucune demande de confirmation)
f : Devient important lorsqu’on cherche à supprimer des fichiers appartenant a un autre
propriétaire
Renommer ou déplacer un fichier

mv [F1] [F2] Renommer F1 en F2


mv [F1] [F2] [D] Déplacer F1, F2dans D

d. Redirection des entrées-sorties

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

Permet à une commande d’utiliser le contenu d’un fichier comme données à la place d’une lecture
clavier : commande < fichier_de_reddirection

Permet aussi de récupérer le résultat d’une commande dans un fichier Exemple :$ who > fich

e. Rechercher des fichiers et des répertoires

La commande find parcourt les répertoires et leurs sous-répertoires de manière récursive à la


recherche de fichiers
Syntaxe : find [répertoire] [critere_de_sélection] [option]
- répertoire : répertoire à partir duquel la recherche doit commencer
- critere_de_sélection : critère de recherche à mettre en œuvre
- option : Que doit – il se passer lorsqu’un fichier répond au critère
Options de sélection des fichiers et répertoires :
name : recherche par nom de fichier
type : recherche par type
user : recherche par propriétaire
group : recherche par l’appartenance à un groupe
size : recherche par taille de fichier

f. Critères de recherche de nom de fichier


Model de nom de fichier
* : remplace une chaine vide ou de longueur variable
? : remplace un caractère unique quelconque
[] : représente une série ou une plage de caractères
[ !...] : inverse de la recherche
Exemples :
a* : les fichiers dont le nom commence par a
a?? : les fichiers en trois lettres commençant par a
[aA]* : Fichier dont le nom commence par un a ou A
[a-m]* : Fichier dont le nom commence par une lettre de la plage a-m

g. Les tubes
Un tube (pipe) permet d’établir une liaison directe entre le canal de sortie standard d’une commande
avec le canal d’entrée standard d’une autre

commande1 | commande2 | commande3 |…| commanden

Exemple :

ls | wc –l : Combien de fichier sont contenus dans un répertoire

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

h. Les filters

o La commande head
Vous pouvez utiliser la commande head si vous ne désirez que visualiser le début d'un fichier.
La commande est :
head [nom-du-fichier]

La commande Head peut être utile, mais comme elle se limite à afficher les premières lignes du
fichier, vous ne pouvez savoir sa longueur réelle. Par défaut, seules les dix premières lignes
peuvent être lues, bien que vous puissiez modifier ce nombre au moyen de la commande
suivante

head -20 <nom-du-fichier>

o La commande tail

La commande tail est exactement le contraire de la commande head, c'est-à-dire qu'elle


permet de visualiser les dix dernières lignes d'un fichier.

o La commande cut
La commande cut présente 2 formes suivant que l'on sélectionne des colonnes de caractères ou qu'on
distingue des champs séparés par un caractère précis.

 sélection colonne : cut -c(sélection_colonnes) [fichiers]

Exemples

affiche le 5ième caractère :cut -c5 fichier

affiche du 5ième au 10 ème caractère : cut -c5-10 fichier

affiche le 5ième et le 10 ème caractère :cut -c5-10 fichier

affiche à partir du 5ième (jusqu'à la fin) ; cut -c5- fichier

 sélection champs : cut -d(séparateur) -f(sélection_champs) [fichiers]

o La commande grep

La commande grep est utile pour trouver une chaîne de caractères spécifiques dans un
fichier.

Syntaxe : grep [option] model_de_criteres [F1 …]

Les options les plus utilisées :

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

i : pour ne pas tenir compte des majuscules/minuscule


v : toutes les lignes ne contenant pas le critère
n : pour avoir les numéros de ligne
E : pour des expressions régulières plus compliquées
l : pour lister seulement les fichiers et non pas la ligne contenant la chaine recherchée
c : retourne le nombre de lignes trouvées.
Le model de critère peut contenir les caractères spéciaux suivant :
[…] : Plage de caractère permis à cet emplacement
[^…] : Plage de caractère non permis à cet emplacement
. : Un caractère quelconque (y compris un espace)
* : Signe de répétition, agit sur les caractères placés devant le *
$ : Matérialise la fin d’une ligne
| : Désigne le ou
^ : Début de ligne
Exemples :
Nombre de lignes commençant par ! dans le fichier F1 :

grep "^ !" F1 | wc -l

Recherche de STOP/stop avec le numéro de la ligne :

grep –n –i stop F1

Liste de tous les fichiers qui n’ont pas "image" ou "son" dans leur nom

ls | grep –vE "(image|son)"

III.3. Gestion des utilisateurs et groupes


a. Les utilisateurs

Unix est un système multi-utilisateurs. Plusieurs personnes peuvent l'utiliser de façon


simultanée (dans le cas de configurations en réseau).Pour le système, un utilisateur n'est pas
obligatoirement une personne physique. Un utilisateur peut détenir des fichiers, exécuter des
programmes ou encore déclencher automatiquement des fonctions systèmes. Par exemple, un
utilisateur peut être créé dans le seul but de détenir des fichiers publics. On parle alors de
pseudo utilisateur.

Un utilisateur possède un nom d'utilisateur appelé aussi login lui permettant d'établir une
connexion. Ce login est associé à un mot de passe personnel. Pour accéder aux ressources du
système, l'utilisateur doit entrer la bonne paire login/mot de passe : c'est l'authentification(le
login).Les utilisateurs sont identifiés par le système grâce à un UID (identifiant d'utilisateur)
unique. Cet identifiant est une valeur numérique.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

o Le fichier /etc/passwd

Le fichier /etc/passwd contient les informations relatives à tous les utilisateurs du système. On
y trouve leur :

 login
 mot de passe (chiffré)
 UID
 GID principal
 nom complet et autres informations
 répertoire principal
 leur shell

La syntaxe de "/etc/passwd" est très simple, chaque ligne concerne un utilisateur. Les différents
champs sont séparés par des ":" :

login:mot-de-passe:UID:GID:info-utilisateur:répertoire-principal:shell

Détaillons les champs :

 Login : c'est l'identifiant que doit entrer l'utilisateur pour s'authentifier. La convention
veut qu'un utilisateur Kalala Igor possède Kigor ou Kalala_igor comme login.

 Mot de passe : il est évident que le mot de passe n'apparait pas en clair dans le fichier, il
est chiffré en md5. C'est la commande passwd qui s'occupe de chiffrer le mot de passe. Ce
champ peut prendre plusieurs significations :

- "*" : il est impossible de s'authentifier sur le système avec ce compte

- "!!" : Le compte est désactivé

- "x" ou "!" : le mot de passe est dans un fichier shadow (voir ci-après)

- champ vide : Il n'y a pas de mot de passe pour ce compte.

 UID : il s'agit de l'identifiant unique de l'utilisateur.


- L'utilisateur root possède l'UID 0

- Par convention, les UID inférieurs à 100 sont réservés aux comptes système.
 GID : l'identifiant du groupe principal de l'utilisateur

 Info utilisateur : des informations sur l'utilisateur. chaque information est séparée par
une virgule (le nom complet, numéro de poste ...).

 répertoire personnel : Il s'agit du répertoire dans lequel sont stockés les fichiers
appartenant à l'utilisateur. En général de la forme /home/login.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

 shell : c'est l'interpréteur de commandes qui sera lancé après l'authentification.

o Le fichier /etc/shadow

Le fichier « /etc/passwd » est accessible à tout le monde. En effet, certaines commandes ont
besoin de connaitre la liste des utilisateurs ou la correspondance login/UID.

La présence du mot de passe dans « /etc/passwd », même crypté, pose un problème de sécurité.
La solution à ce problème est de stocker les mots de passe dans un fichier différent :
« /etc/shadow ». Pour garantir la sécurité, seul l'administrateur peut le lire. Notons que sous
Linux, si le fichier « /etc/shadow » n'est pas utilisé, l'utilitaire « pwconv » permet, à partir
d'un fichier « /etc/passwd » unique, de créer le fichier « /etc/shadow » qui lui correspond.

b. Les Groupes

Le fichier « /etc/group » contient les informations relatives au groupes présents sur le système.

Voici sa syntaxe : groupe:*:GID:utilisateurs

 groupe : le nom du groupe


 * : la présence de ce champ est lié aux anciennes versions d'Unix et n'est plus utilisé. Il
peut rester vide ou contenir le caractère "*" ou "x".
 GID : c'est l'identifiant unique du groupe sous la forme d'une valeur numérique.
 utilisateur : il s'agit de la liste des utilisateurs appartenant au groupe. Ils sont séparés
par des virgules :

compta:x:230:Igor,Johnny

c. Les commandes de gestion des utilisateurs

Afin de manipuler les fichiers « passwd », « shadow » et « group » facilement, des commandes
ont été crées. Elles automatisent les vérifications (l'utilisateur à créer existe-t-il déjà ? le mot de
passe est-il assez compliqué ?...) évitant ainsi toute erreur de saisie.

o Ajouter un utilisateur

La commande useradd permet de créer un utilisateur : useradd [options] login

Principales options de useradd

Options Descriptions
-c commentaire Informations concernant l'utilisateur (nom, poste)

-d répertoire Chemin du répertoire personnel de l'utilisateur

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

-e date Date d'expiration du compte. Le format est AAAA-MM-JJ


-f nombre de C'est le nombre de jours suivant l'expiration du mot de passe
jours après lequel le compte est désactivé. La valeur 0 permet de
désactiver le compte dès que le mot de passe expire. La valeur
-1 permet de désactiver cette caractéristique. La valeur par
défaut est -1

-g groupe Le nom du groupe ou le numéro du groupe de connexion


principal initial de l'utilisateur. Le nom ou le numéro du groupe doivent
exister. Le numéro de groupe par défaut est 1
-G groupes Les autres groupes auxquels appartient l'utilisateur (séparés par
upplémentaire des virgules)

-m Le répertoire de l'utilisateur sera créé (par défaut, cela n'est pas


fait)

-k [ A utiliser si et seulement si l'option -m est présente. Permet de


répertoire ] copier les fichiers et répertoires contenus dans le répertoire
répertoire (/etc/skel si non spécifié) dans le répertoire de
l'utilisateur

-p le mot de Vous pouvez saisir le mot de passe en option. Il doit être


passe chiffré chiffré (pour récupérer la version cryptée d'un mot de passe il
faut utliser la bibliothèque crypt). Le comportement par défaut
est de désactiver le compte

-s chemin vers Shell lancé à la connexion de l'utilisateur


un exécutable
-u uid L'identifiant unique de l'utilisateur

Exemple : nous voulons créer l'utilisateur Johnny :

 commentaire : "utilisateur Johnny "


 son shell : /bin/zsh
 son répertoire personnel : /home/ Johnny
 nous recopions le contenu de /etc/skel dans son répertoire
 il appartient aux groupes "dev" et "final"
 le compte sera désactivé immédiatement après expiration du mot de passe

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

root@localhost # useradd -c "utilisateur Jonhy " -f 0 -G final,dev -m -k /etc/skel


-s /bin/zsh Johnny

La commande useradd -D montre les options par défaut :

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

Il est possible de changer les valeurs par défaut grâce aux options suivantes :

Options de useradd –D

-h répertoire Répertoire dans lequel créer les


répertoires utilisateurs

-e date La date d'expiration du compte


-f nombre de jours Délai de désactivation après expiration
du mot de passe

-g GID Le groupe par défaut

-s chemin vers un exécutable Le shell par défaut

o Suppression d'un utilisateur

La commande userdel permet de supprimer un utilisateur :

root@localhost # userdel options login

L'option -r efface le répertoire personnel de l'utilisateur.

o Changer le mot de passe d'un utilisateur

La commande passwd permet de changer le mot de passe d'un utilisateur. L'administrateur


peut changer n'importe quel mot de passe. Un utilisateur normal ne peut changer que son
propre mot de passe.

passwd [options] [login]

Si l'argument login n'est pas spécifié, le changement de mot de passe s'applique sur l'utilisateur
courant.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

Options passwd

-k Indique que seul le mot de passe doit être mis à jour sans toucher
aux propriétés d'expiration

-l Permet de verrouiller le compte spécifié en préfixant le mot de passe


crypté par le caractère "!". Seul l'utilisateur root peut utiliser cette
option

--stdin Le mot de passe doit être lu à partir de l'entrée standard qui peut alors
être un tube (pipe)

-u Déverrouille le mot de passe du compte. Seul l'utilisateur root peut


utiliser cette option

-d Supprime le mot de passe d'un compte. Le champ réservé au mot de


passe crypté sera supprimé dans le fichier de configuration. Seul
l'utilisateur root peut utiliser cette option

-S Affiche des informations sur le statut du mot de passe pour un compte


donné. Seul l'utilisateur root peut utiliser cette option

o Afficher des informations sur un utilisateur

Pour connaître l'identité de l'utilisateur courant (bien que cela soit affiché dans la majorité des
prompts par défaut) on utilise la commande whoami.

Elle affiche le login de l'utilisateur courant. Les commandes who, users et w permettent
de connaître les utilisateurs actuellement connectés sur la machine.

d. Les commandes de gestion des groupes

o Créer un groupe

La commande groupadd permet de créer un nouveau groupe :

root@localhost # groupadd option groupe

Options de groupadd

-g Permet de choisir la valeur numérique du GID du nouveau groupe. Cet


identifiant doit être unique

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

-r Cette option permet d'ajouter un groupe système (dont le GID est inférieur à
500)

-f Permet de stopper la commande lorsque le groupe ou le GID du nouveau


groupe existe déjà

o Suppression d'un groupe

Pour supprimer un groupe, on utilise la commande groupdel : groupdel GID

Note : on ne peut pas supprimer un groupe si c'est le groupe principal d'un utilisateur.
o Modifier les groupes secondaires d'un compte

Pour modifier les groupes secondaires d'un utilisateur, on utilise la commande usermod qui est
similaire à useradd et supporte les mêmes options :

root@localhost # usermod -G toto, users, fileshare, dev toto

Ceci permet d'ajouter l'utilisateur "toto" dans les groupes "toto", "users", "fileshare" et "dev".
♠Attention : lors de l'utilisation de la commande usermod -G il est nécessaire de rappeler
l'ensemble de groupes secondaires auxquels appartient l'utilisateur.On peut aussi ajouter et
enlever des utilisateurs d'un groupe grâce à la commande gpasswd.

Options de gpasswd

-a Ajout d'un utilisateur

-d Suppression d'un utilisateur

o Afficher des informations sur les groupes

Pour connaître les groupes auxquels appartient un utilisateur, on utilise la commande groups.
Sans argument, elle affiche les groupes de l'utilisateur courant. Pour connaître les groupes d'un
utilisateur particulier, il suffit de passer son login en argument de la commande :

root@localhost#groups root wheel disk adm sys daemon bin


luser@localhost$ groups toto toto users fileshare

Sur de très anciens Systems, il n'était pas possible d'activer plusieurs groupes simultanément
pour le même utilisateur. La commande id permet de connaître les groupes actifs :

root@localhost#iduid=0(root)gid=0(root)groupes=0(root),10(wheel),6(disk),4(adm),3(sy
s),2(daemon),1(bin)

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

Pour changer le groupe actif sur un tel système, on utilise la commande newgrp. Lorsqu'elle est
utilisée sans argument, elle active le groupe principal de l'utilisateur (le groupe qui figure dans
"/etc/passwd").

e. Changer d'identité

Il se peut qu'un utilisateur soit obligé d'effectuer des tâches avec une identité différente. La
situation la plus courante étant un utilisateur normal voulant effectuer quelques tâches en tant
qu'administrateur.

La commande su (switch user), permet de changer d'identité:

su Sans option, su permet de se connecter en tant


qu'administrateur
su lambda Agir en tant qu'utilisateur lambda

su - lambda Se connecter en tant que lambda. Avec "-" on


récupère tout l'environnement de l'utilisateur lambda

su -c "mount /dev/cdrom l'option -c permet simplement d'exécuter la


/mnt/cdrom" commande entre guillemet en tant que root (pas
d'option). Une fois la commande terminée, on
reprend son identit

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

IV- Administration système – les éditeurs

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

IV.1 vi

« vi » est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec
« Emacs » et « pico») malgré son ergonomie très limitée. Sous Linux il existe une
version libre de vi appelée vim (Vi Improved). « vi » (prononcez Vihaille) est un éditeur
entièrement en mode texte, ce qui signifie que chacune des actions se fait à l'aide de
commandes texte. Cet éditeur, bien que peu pratique à première vue est très puissant et peut
être très utile en cas de non fonctionnement de l'interface graphique.

La syntaxe pour lancer Vi est la suivante : vi nom_du_fichier

Une fois le fichier ouvert, il vous est possible de vous déplacer à l'aide des curseurs, ainsi que
des touches h, j, k et l (au cas où le clavier ne possèderait pas de curseurs fléchés).

a. Les modes de Vi

Vi possède 3 modes de fonctionnement :

 Le mode normal: celui dans lequel vous êtes à l'ouverture du fichier. Il permet de taper des
commandes

 Le mode insertion: Ce mode permet d'insérer les caractères que vous saisissez à l'intérieur du
document. Pour passer en mode insertion, il suffit d'appuyer sur la touche Insert de votre
clavier, ou à défaut de la touche i.

 Le mode de remplacement: Ce mode permet de remplacer le texte existant par le texte que
vous saisissez. Il vous suffit de ré appuyer sur r pour passer en mode remplacement, et
d'appuyer sur la touche Echap pour revenir en mode normal

b. Les commandes de base

:q Quitte l'éditeur (sans sauvegarder)


:q! Force l'éditeur à quitter sans sauvegarder (même si des modifications ont été
apportées au document)
:wq Sauvegarde le document et quitte l'éditeur
:filenom Sauvegarde le document sous le nom spécifié

c. Les commandes d'édition

x Efface le caractère actuellement sous le curseur


dd Efface la ligne actuellement sous le curseur
dxd Efface x lignes à partir de celle actuellement sous le curseur
nx Efface n caractères à partir de celle actuellement sous le curseur
x>> Indente x lignes vers la droitee à partir de celle actuellement sous le curseur
x<< Indente x lignes vers la gauche à partir de celle actuellement sous le curseur

d. La recherche et le remplacement

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

Pour rechercher un mot dans un document, il vous suffit (en mode normal) de taper / suivi de la
chaîne à rechercher, puis de valider par la touche entrée. Il est alors possible d'aller
d'occurrence en occurrence grâce à la touche n.

Pour remplacer une chaîne de caractère par une autre sur une ligne, il existe une commande
très puissante sous Vi utilisant les expressions régulières. Voici sa syntaxe :

:s/chaine_a_remplacer/chaine_de_remplacement/

Il est possible de la généraliser à tout le document grâce à la syntaxe suivante :

:%s/chaine_a_remplacer/chaine_de_remplacement/

e. Le copier-coller et couper-coller

Il est possible sous vi de copier-coller une sélection de lignes. Pour ce faire, il suffit de taper
la commande suivante pour copier n lignes : nyy
Par exemple la commande suivante copiera dans le tampon 16 lignes : 16yy

Pour coller la sélection, il suffit de taper la lettre p.


Un couper-coller de n lignes se fera de façon similaire avec la commande : ndd
Exemple :

Après le lancement de vi nous sommes en mode commande : appuyez sur la touche "Echap"
puis sur "a" ("a", comme "append", permet d'ajouter du texte après le curseur). Vous voyez en
bas de l'écran apparaître la ligne "-- INSERT --". Nous pouvons commencer notre texte :

Linux est gratuit puissant en perpétuelle évolution.


Linux est stable. Linux existe depuis 1991 seulement et pourtant quel chemin parcouru !

N'oubliez pas de placer retour chariot au bout de chaque ligne.

Sauvons le fichier : nous sortons d'abord du mode texte en appuyant à nouveau sur la touche
"Echap". La mention "-- INSERT --" disparaît, nous sommes en mode commande. Tapez
maintenant ":w linux-test" et sur la touche retour chariot (afin d'écrire ("write") le
fichier). Vous devez obtenir en bas de l'écran ceci :

"linux-test" [New File] 3 lines, 142 characters written

o D’autres commandes:
A permet d'ajouter du texte à la fin de la ligne. i permet d'ajouter du texte avant le curseur.
o permet d'ajouter une ligne en dessous du curseur. O permet d'ajouter une ligne au dessus du curseur.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

IV.2 emacs

Emacs date de la fin des années 70 et ne cesse d'évoluer depuis, ce qui fait de lui, sans aucun
doute possible, l'éditeur le plus puissant au monde. Bien plus qu'un éditeur, « emacs » est
un environnement de travail : édition, programmation, mail, news, shell ... bref on peut
rester sous « emacs » sans avoir besoin de quoi que ce soit d'autre, ses adeptes sont très
nombreux.

Lançons emacs : [root@localhost root]# emacs

Ouvrons maintenant le fichier linux-test que nous avons créé précédemment sous vi :

Pour cela utilisez la séquence de touches suivante : Ctrl-x Ctrl-f

Vous voyez apparaître en bas de l'écran : Find File : ~/

Tapez le nom du fichier et faites un retour chariot.

Nous retrouvons notre charmant petit texte. Vous le comprenez, la touche Ctrl permet de
passer des commandes et de passer du mode texte au mode commande. Vous pouvez le
modifier à souhait. Les touches Backspace et Suppr fonctionnent comme sous n'importe
quel éditeur.

Pour sauver le fichier, tapez la séquence de touches suivante :Ctrl-x Ctrl-s

Si vous êtes bloqués dans la ligne de commande d'emacs après avoir effectué de mauvaises
manipulations et que vous souhaitez retrouver le mode texte, tapez la séquence suivante :
Ctrl-g

Si vous avez fait des erreurs dans le texte, la séquence suivante permet de supprimer les
dernières modifications : Ctrl-x u

Si vos touches de direction ne fonctionnent pas, voici plusieurs séquences de touches qui vous
permettent de vous déplacer dans votre document :

Ctrl-p : monter d'une ligne.

Ctrl-n : descendre d'une ligne.

Ctrl-f : avancer d'un caractère.

Ctrl-b : reculer d'un caractère.

Ctrl-v : avancer d'un écran (ou d'une page si vous préférez).

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

Alt-v : reculer d'un écran.

Ctrl-d : supprimer le caractère sur lequel le curseur se trouve.

Une commande utile est : Ctrl-s qui permet de faire une recherche "dynamique"
("incrémentale") sur une suite de caractères dans le texte.

Meta-% permet de lancer un "Rechercher et remplacer". La touche Meta est en général


confondue avec la touche Alt Pour quitter emacs, utiliser la combinaison de touches
suivante : Ctrl-x Ctrl-c

Avec cette rapide présentation vous pourrez déjà vous familiarise un peu avec emacs. si vous
souhaitez en savoir plus sur la commande emacs, cette séquence vous permettra de rentrer dans
l'aide d'emacs : Ctrl-h.Ou bien lancez le "tutorial" : Ctrl-h t

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

V- Administration Système - Gestion des Processus

Dans cette partie seront


développés les concepts
fondamentaux des processus
du système linux : les démons
et les commandes usuelles et le
service « cron » pour
automatiser l’exécution des
tâches périodiques

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

V.1 Introduction
Lorsqu’un utilisateur demande à exécuter une commande externe le noyau crée un processus i.e. une
tâche qui exécute les instructions de la commande. Ce processus est une entité qui, de sa création à sa
mort, est identifiée par une valeur numérique, le PID (Process Identifier) et transite par différents états
selon qu’il exécute (actif), attend que le noyau lui alloue le processus (prêt) ou qu’un événement se
produise (en attente). A un instant t donné, un PID est unique dans le système, ce qui garantit
l’identification sans ambigüité d’un processus. La création d’un processus est réalisée par la primitive
« fork(2) » (2 : section 2 de la manuelle de référence : ensemble des primitives programmables, entre
autres, en C) du noyau. Les primitives créent un clone du processus qui l’exécute ; ce clone que l’on
appelle processus fils, exécute le code d’une autre commande grâce à la primitive « exec(2) » : arbre de
processus. Tout processus dérive de « init » qui est créé au démarrage du système et se trouve à la
racine de cet arbre : son PID est 1.

V.2 Exécution d’un processus

« Foreground » ou en avant plan : c’est le mode normal d’exécution d’une commande. Le shell de
connexion est le père du processus qui exécute la commande. Il attend que le processus fils se termine
pour afficher à nouveau le « prompt ».

« Background » ou à l’arrière plan : c’est le mode utilisé quand on termine une ligne de commande par
un « & ». Dans ce cas le shell affiche immédiatement le « prompt » sans attendre la fin du processus
fils, et est insensible au caractère de contrôle (comme ctrl+c).

En mode détaché : le processus dans ce cas n’a plus de terminal de contrôle, on voit le caractère « ? »
dans la colonne TTY à la sortie de la commande « ps »

« Daemon » ou les démons : ce sont des processus détachés associés aux services du système souvent
en mode client-serveur, donc créés par les scripts de démarrage et détruits à l’arrêt du système.

V.3 Les signaux :

Le seul moyen d’agir sur l’exécution d’un processus détaché est de lui envoyer un
signal (conventionnellement pour dire à démon de relire ses fichiers de configuration). Exemple, lors de
l’arrêt du système avec la commande « shutdown », ce dernier envoie à tous les processus actifs le
signal 15 (« TERM »). Le signal 9 tue le processus sans qu’il puisse intercepter le signal et exécuter une
quelconque action avant de se terminer : ainsi il ne doit pas être utilisé qu’au dernier recours.

V.4 Héritage

Les éléments (plus intéressants) hérités par le fils du père sont : le répertoire courant de son père « . »,
le « umask »( sert à définir les droits par défaut des fichiers créés par le processus), le
« ulimit » (fixe la taille du plus gros fichier que le processus peut créer), les variables
d’environnement (dont le processus reçoit une copie), le répertoire racine « / » (qui peut être changé par

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

« chroot »), le fichier « /etc/profile » (définissant les variables valables pour tous les
utilisateurs) …

o Les commandes externes

i. ps
affiche les informations sur un processus en cours, ajoutée l’option « u » affiche le nom du propriétaire,
« a » les processus des autres utilisateurs, « l » les informations supplémentaires (type BSD), « e » les
informations sur tous les processus, « f » affiche le nom du propriétaire –le PID du père –la commande
qui l’a exécuté.

ii. kill
Envoie un signal à un processus : 9 pour tuer.

killall
Envoie un signal à tous les processus qui exécutent une commande spécifique : envoie de
« SIGTERM »

iii. su
Exécuter un processus avec une autre identité : grâce à l’option « -c », il est possible de n’exécuter
qu’une commande fournie immédiatement sur la même ligne de commande

iv. Ident
Affiche les informations sur la version d’une commande (équivalent de what)

v. Strace, truss

Permettent d’exécuter une application et de visualier les appels système qu’elle exécute

vi. strings

Affiche les chaines des caractères ASCII

vii. fuser

Fournit à la sortie les informations sur les processus qui ont ouvert un fichier, même un disque.

viii. lsof

Permet de lister les fichiers ouverts et de connaître les applications qui y accèdent

ix. at

Exécute des commandes en différé

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

x. crontab

Exécute des commandes périodiquement

xi. env

Visualise l’environnement d’un shell

xii. ldd

Lise toutes les bibliothèques partagées (fichiers *.so) utilisées par un exécutable

o Les commandes internes

& pour envoyer en arrière plan

xiii. wait

pour attendre que le processus à l’arrière-plan soient terminées pour poursuivre l’exécution du shell

xiv. exec

remplace le code du shell par le code de la commande, il n’y pas de création de processus

xv. unscript

Le shell courant exécute lui-même le script « unscript »

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

VI- Administration Système - Vers la programmation sous linux

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

VI.1 Le fichier « makefile »

i. Définition :

C'est un fichier nommé « makefile » qui permet, en ne tapant que « make » , dans le répertoire
où il se trouve de compiler tout notre projet. Par conséquent il rassemble toute les directives de
compilation de du projet. Par conséquent à partir d'un certain nombre de fichier source, il
devient tout à fait indispensable au lieu de taper gcc fichier.c -Wall -c etc... pour chacun de nos
fichiers …

ii. Edition

Les Commentaires sont unilignes et commencent par #: # commentaire...


Un tel fichier contient un ensemble de règle, une règle se compose de la manière suivante:

cible : dépendances
<tab> commandes

remarque : <tab> correspond à une véritable tabulation..

La cible est le fichier à construire, les dépendances sont les fichiers dont on a besoin pour créer
la cible. Les commandes sont les commandes à exécuter pour générer la cible.

Exemple : pour créer un fichier *.o nous avons besoin d'un fichier *.c et de fichiers *.h

main.o : main.c main.h autre.h

<tab> gcc main.c -c -Wall

le lancement de la commande make va générer main.o : pour construire la cible, make se


relance récursivement. Ce qui fait que l'ordre des règles importe peut.

VI.2 Les macros:

i. Définition : Ce sont des variables de type chaîne de caractères.

Définition: MACRO = Valeur


Référence: $(MACRO) -> sert à son utilisation

Exemple:
MODULE = main.o aux.o

main : $(MODULE)
<tab> gcc $(MODULE) -o main

ii. Les macros internes (prédéfinis)

$@ Contient le nom de la cible

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

$* Contient de nom de la cible sans suffixe ( si cible = main.c; $* = main)

$^ Contient le nom de toutes les dépendances

$? Liste des dépendances dont la date est postérieure à la cible

$< Contient la dépendance qui a provoqué la reconstruction de la cible

Les macros prédéfinies que l'on peut modifier:

$(CC) Contient le nom du compilateur

$(CPPFLAGS) Liste des options de pré-processage

$(CFLAGS) Liste des options de compilation

$(LDFLAGS) Liste des options de pré-édition des liens.

exemple :

CC = gcc
CFLAGS = -Wall -O3
LDFLAGS = -lm

programme : main.o matrice.o


<tab> $(CC) $^ -o $@ $(LDFLAGS)

main.o : main.c matrice.h


<tab> $(CC) main.c -c $(CFLAGS)

matrice.o : matrice.h matrice.c


<tab> $(CC) $*.c -c $(CFLAGS)

Ici, l'exécution de la commande make, compilera le fichier 'programme ', en générant les fichiers *.o
intermédiaires.

Remarque, le lancement de make ne génère que la première cible, et génère les autres s’ils en a besoin
pour la construire. Pour compiler une cible particulière, on lance make avec le nom de la cible:

$ make matrice.o // Genère le fichier matrice.o

Les directives:

Ce sont des options pour le make. Elles sont à placer dans le fichier makefile.En voici quelques unes:
.INIT : <commande à exécuter au début du make>

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

.DEFAULT : <commande à exécuter en cas d'erreur >


.DONE : <commande exécuter à la fin de make>

.IGNORE: Evite au make de s'arrêter en cas d'erreur


.SILENT: N'affiche pas les commandes exécutées
.PRECIOUS: <fichier>* Ne pas détruit pas les fichiers..
.PHONY : <cible>* Déclares les cibles qui ne sont pas des fichiers
Exemple:

On veut créer une cible clean qui ne correspond pas à un fichier, qui une fois appeler dans le make va
nettoyer le dossier actuel. On déclare donc clean comme cible non fichier.

.PHONY: clean

clean:
<tab> rm -f *.o
<tab> rm -f *~

Ainsi la commande $ make clean , va supprimer tous les fichiers *.o et les fichier *~ .En général
on définie également une cible « all » qui regroupe toutes les fichiers à produire. De façon à ce que la
commande $ make all construise tous les fichiers désirés.

.PHONY: clean all

all: prog1 prog2 prog3

Ainsi, la commande $make all ordonne la compilation des 3 programmes. Terminons cette partie par un
exemple complet d'un projet devant générer deux programmes:

# Début du make file


# Déclaration des macros

CC = gcc
CFLAGS = -Wall -O3
LDFLAGS = -lm

.PHONY: all clean

all : prog1 prog2

prog1 : main.o affichage.o lecture.o


<tab> $(CC) $^ -o $@ $(LDFLAGS)

prog2 : main2.o affichage.o matrice.o


<tab> $(CC) $^ -o $@ $(LDFLAGS)

main2.o : main2.c affichage.h matrice.h


<tab> $(CC) main2.c -c $(CFLAGS)

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

main.o : main.c affichage.h lecture.h


<tab> $(CC) main.c -c $(CFLAGS)

affichage.o : affichage.h affichage.c


<tab> $(CC) affichage.c -c $(CFLAGS)

# etc...

clean:
<tab> rm -f *.o
<tab> rm -f *~

La commande $make all, générera ainsi prog1 et prog2.La commande $make prog2, ne
générera que le prog2.

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

VII- Administration Système – la Gestion des paquetages

Après la lecture de cette partie,


l’élève a des amples connaissances
concernant les caractéristiques
des paquetages : les installer et les
retirer

Computer Science Club – National School of Applied Sciences


Gnu/Linux Operating System Overview

VII.1 Introduction

Cette partie est développée suivant la distribution Fedora 11, donc on ne parlera que des paquets «.
rpm » ou Red Hat Package Manager qui est un système qui permet de gérer l’installation ou la
désinstallation d’application fournies sous forme de paquetages (« package »). L’équivalent
(manipulation des « .deb ») sous le système Universel Debian sera dispensé en TP.

VII.2 Définition

Un paquetage ou « package » se présente sous forme d’un fichier au format RPM et a pour extension
« .rpm » : il contient les fichiers à installer, mais aussi des informations générales sur le paquetage en
question, comme la version, la description, et le script d’installation. La gestion des packages rpm se
fait généralement par la commande rpm (qui a une version avec interface graphique « gnorpm »).

VII.3 La mise en œuvre de rpm :

Syntaxe : rpm – option_principale [options_secondaires ] [le_paquetage]

Principales options :

Options Descriptions
-i Installer
-U Mise à jour
-e Désinstaller
-q Afficher les informations sur le packages
-V Vérifier le package
--checking Vérifie la signature

Quelques combinaisons intéressantes

o Installer un package en visualisant la progression de l’installation

[root@localhost root]# rpm –ivh package_ko.rpm

[root@localhost root]# rpm –ivh [url_ftp/package_ko.rpm]

o Mettre à jour un package ou l’installer s’il ne l’était pas

[root@localhost root]# rpm –Uvh package_ko.rpm

Computer Science Club – National School of Applied Sciences