Cours D'initiation À GNU LINUX CHAP1 2022-2023
Cours D'initiation À GNU LINUX CHAP1 2022-2023
Cours D'initiation À GNU LINUX CHAP1 2022-2023
Programme
Chapitre 1 : Introduction à GNU/Linux
Chapitre 2 : Les commandes sous linux
Chapitre 3 : La Gestion des fichiers
Chapitre 4 : La gestion des utilisateurs et des
groupes
Chapitre 5 : La gestion des processus
Chap 6 : Réseau et Gestion des paquets
Chap 7 : les scripts bash
PLAN DU COURS
Introduction .................................................................................................................................................................. 3
1. Introduction à la notion de SE .............................................................................................................................. 3
1.1. Qu’est-ce qu’un SE ? ..................................................................................................................................... 3
1.2. Le noyau du SE .............................................................................................................................................. 3
1.3. Fonctionnement d’un SE .............................................................................................................................. 3
2. Histoire de linux .................................................................................................................................................... 4
2.1. C’est quoi GNU ? ........................................................................................................................................... 4
2.2. C’est quoi GNU/Linux ................................................................................................................................... 4
3. Définition de quelques termes liés à la communauté libre.................................................................................. 4
4. Les branches et standard d’UNIX (UNiplexed Information and Computing Service) .......................................... 6
5. Quelques distributions linux ................................................................................................................................. 7
6. Comment accéder à une distribution linux ? .....................................................................................................10
7. Tableau Comparatif de quelques distributions GNU/linux ................................................................................10
8. L’environnement de bureau ...............................................................................................................................11
8.1. Unity ...........................................................................................................................................................12
8.2. KDE..................................................................................................................................................................12
8.3. Gnome-Shell ...................................................................................................................................................12
8.4. Cinnamon........................................................................................................................................................12
8.5. XFCE ................................................................................................................................................................12
On distingue aussi les environnements de bureau tels que Mate, LXDE, Enlightenment qui sont également utilisés
dans des distributions linux. .......................................................................................................................................12
9. L’environnement matériel des systèmes UNIX ..................................................................................................12
10. Démarrage d’un SE GNU/Linux .......................................................................................................................13
10.1. Le BIOS ....................................................................................................................................................13
10.2. Le MBR ....................................................................................................................................................14
10.3. Le programme d’amorçage GRUB (GRand Unified Booloader) ..............................................................14
10.4. Le noyau..................................................................................................................................................15
10.5. Les niveaux d’exécution sont :................................................................................................................15
10.6. Runlevel ..................................................................................................................................................15
11. Structure d’un SE UNIX ...................................................................................................................................17
12. Interface des systèmes GNU/Linux.................................................................................................................18
13. Installation de quelques distributions GNU/Linux .........................................................................................20
TRAVAUX PRATIQUES EN CONTINU ...........................................................................................................................51
1. Introduction à la notion de SE
Avant d’aborder le cours sur GNU/Linux, il est important de connaitre au préalable ce que c’est qu’un SE de
manière générale et comment il fonctionne.
1.2. Le noyau du SE
Le noyau d’un système d’exploitation, (encore appelé kernel) est l’une des parties fondamentales des systèmes
d’exploitations. C’est le programme qui gère les ressources de l’ordinateur et permet aux différents composants
matériels et logiciels de communiquer entre eux. En d’autres termes, c’est le noyau qui réalise l’ensemble des
fonctions du SE.
Il faut dire d’entrée de jeu avant de parler de SE que l’ordinateur est constitué de deux parties : la partie
matérielle et la partie logicielle. La partie matérielle est composée de tout ce qui est physique, c'est-à-dire ce
qu’on peut voir et qu’on peut toucher en occurrence la carte mère et ses composants (RAM,CPU, Disque dur,
condensateur, transistor, bloc d’alimentation, lecteurs,…), la coque, le bouton d’alimentation,… cette partie
matérielle est pilotée par un logiciel spécial appelé Système d’exploitation. C’est le SE qui commande le
fonctionnement de ces composants matériels.
En effet, ces différents composants ont chacun un rôle précis dans l’ordinateur, tous travaillent en symbiose pour
traiter l’information. Cela signifie que ces unités fonctionnelles (composants matériels) communiquent entre
elles. Le processeur a par exemple besoin de la RAM pour exécuter les instructions des programmes en cours de
traitement, ce même processeur a besoin des entrées/sorties pour traiter les requêtes venant des périphériques
externes, la RAM a besoin du disque dur pour étendre son stockage lorsque son espace d’adressage est limité.
Bref, ces unités fonctionnelles travaillent ensemble pour traiter l’information.
La communication entre ces composants matériels est coordonnée, contrôlée ou commandée par le Système
d’Exploitation. C’est le SE qui autorise les échanges entre ces périphériques, c’est lui joue le rôle d’arbitre lorsqu’il 3
y a un conflit matériel ou même logiciel, c’est lui qui permet aux applications installées dans l’ordinateur
d’accéder aux ressources matérielles de la machine, c’est toujours lui qui autorise aux applications que nous
Le SE supervise donc le fonctionnement global de l’ordinateur. Il est structuré autour d’un bloc de code appelé
noyau qui renferme ses fonctions essentielles. Lorsqu’un programme veut s’exécuter, ce dernier lance une
requête encore appelée appel système à l’endroit du SE et celui-ci se charge de l’exécuter. Un appel système est
une requête initiée par un programme utilisateur à l’adresse du noyau afin que celui-ci puisse l’exécuter. Les
interruptions initiées par les périphériques ou les programmes sont également redirigées vers le SE qui fera appel
à des procédures spécifiques pour répondre à toutes ces requêtes. On comprend donc que Le SE se comporte
comme un roi qui contrôle son territoire et qui est le garant du bon fonctionnement de ce dernier.
2. Histoire de linux
Linux a été créé en 1991 par un américano-Finlandais appelé Linus Benedict Torvalds. Il s’inspire du système
Minix développé en 1987 par Andrew TANENBAUM (américain né le 16 mars 1944 à New York), Minix étant
lui-même inspiré du système UNIX créé en 1969 par KENNETH THOMPSON (né le 4 février 1943 à La Nouvelle-
Orléans). Initialement appelé Freax, Linux fut au départ un projet d’étudiant qui n’a pas malheureusement été
achevé. Linus TORVALDS prend la décision de publier son code source pour se faire aider par la communauté.
Il finit par obtenir avec l’aide des uns et des autres un système complet qu’il baptise sous le nom de LINUX qui
est une contraction de LINUS et UNIX. Linux est donc à la base un système de type UNIX qui a épousé la
philosophie du projet GNU développé au départ par Richard STALLMAN (américain, né à Manhattan, le 16
mars 1953) dont le but était de créer un système d’exploitation libre afin d’obtenir un système robuste et
fiable.
Unix est un système d'exploitation, il est multi-utilisateurs et multi-tâches. Avant d’évoquer les branches d’Unics,
il est important de connaitre la genèse de ce Système d’Exploitation, surtout que les branches et standards d’Unix
sont indissociables de ses origines.
Au commencement, les origines d'Unix remontent à la fin des années 1960 où l’entreprise Bell Labs d’AT&T
(American Téléphone & Telegraph Corporation) développait le Système d’Exploitation « Multics ». Multics
(Multiplexed Information and Computing System) n’a pas connu un grand succès mais cela n’a pas empêché à
Kenneth THOMPSON, l’un des concepteurs d’Unics à continuer à travailler dans le but de l’améliorer. En 1970,
Brian Kernighan, un collaborateur de Thompson, suggère le nom « UNIX », un jeu de mot sur Multics. Unics
connait un essor lorsqu’il est réécrit en C, abandonnant ainsi le langage assembleur.
Les différentes familles d'Unix naissent du fait de la libéralisation du code source d’unix par Bell Labs. Cette
libéralisation est due au fait que Bell Labs qui une entreprise de télécommunications a fait l’objet d’un décret
antitrust qui leur interdisait de vendre du matériel autre que celui de leur secteur, les télécommunications, il est
donc contraint de distribuer le code source des systèmes UNIX. A la suite de cette libéralisation, Il se crée donc
des visions différentes, à savoir les Unix de type BSD (Berkeley Software Distribution). et les Unix de type System
V.
BSD a été developpé par l'Université de Californie de Berkeley. C’est une branche Unix ancienne qu’on peut
assimiler à la branche des systèmes Unix libres. Les systèmes issus de cette branche sont FreeBSD, NetBSD, et 6
OpenBSD,
la branche d’Unix System V est celle des versions d’Unix qu’AT&T (en réalité Bell Labs) a vendu aux grands
constructeurs de matériel comme Sun Microsystems, IBM, DEC ou encore Hewlett-Packard. Chacun de ces grands
Cours d’Initiation à GNU/Linux 2020-2021 (L1D,L1E,L1F) | Chapitre I
groupes a développé Unix selon ses propres besoins et intérêts, créant ainsi son propre Unix. Les systèmes issus
de cette branche sont par exemple Solaris (Sun Microsystems), HP-UX (Hewlett-Packard), AIX (IBM), IRIX (SGI)...
Après la libéralisation du code source d’Unix par Bell Labs, il s’est posé un problème de standard d’Unix afin
d'assurer une portabilité maximale entre les systèmes. Étant donné que tout SE n’est pas Unix, il faut définir des
critères ou bien des contraintes ou encore des procédures qu’un système devrait respecter pour qu’il soit
compatible Unix. C’est ainsi que l’IEEE (Institute of Electrical and Electronics Engineers) définit Le standard
UNIX sous le nom POSIX 1003.1 ( Portable Operating System Interface) le X fait référence à Unix. POSIX est donc
un ensemble de normes appliqué à tout système devant être compatible Unix. Ces normes définissent d’une
manière générale les différentes fonctionnalités d’un système de type Unix ainsi que les procédures à respecter
par tout systèmes pour qu’il soit assimilable à un système Unix. D’autre standards existent comme ceux de The
Open Group ils sont ouverts et libres, ces normes sont : Single Unix Specification, Unix95, Unix98, Linux Standard
Base…
- Débian : Debian est une distribution open source. il est très utilisé et très apprecié par la
communauté libre. il se distingue par sa robustesse et sa stabilité. Le petit inconvénient de ce
système est qu’il est fait pour un public averti, c’est-à-dire des personnes s’y connaissant déjà
dans linux. Il n’y a que les packages indispensables qui viennent par défaut à l’installation du
système, les autres packages seront installés par l’utilisateur pendant l’utilisation. Ce système est
très utilisé sur les serveurs, particulièrement les serveurs web. Débian est issu de plusieurs
autres distributions et a donné également naissance aux distributions telles Knoppix, Morphix
(basé sur knoppix), Elive (basé sur Morphix)
- Ubuntu : c’est un système édité par la société Canonical dont le siège se trouve sur l'île de Man
en Afrique du Sud. Ubuntu est simple d’utilisation, ce qui fait de lui un système très populaire. 7
Un novice dans linux prend facilement la main à sa première utilisation. Ubuntu est basé sur
débian et connait plusieurs variantes telles que Kubuntu, Cubuntu, Xubuntu, lubuntu ainsi
qu’une version serveur
Cours d’Initiation à GNU/Linux 2020-2021 (L1D,L1E,L1F) | Chapitre I
Figure : Logo d’ubuntu
- Red Hat Linux : souvent appelée simplement Red Hat, Red Hat Linux est une distribution
orientée pour les serveurs et entreprises à cause de sa sécurité qui est très évoluée. Elle a été
éditée par la société américaine Red Hat. C’est une distribution commerciale mais possède
également des versions offertes au grand public comme la version 9.0. la version entreprise de
Red Hat est Red Hat Enterprise Linux (RHEL). RHEL est un système payant, sa version libre
est CentOS (Community Enterprise Operating System)
- CentOS : c’est une distribution issue de Red Hat, elle est peu connue mais très efficace pour les
serveurs
8
Figure: logo CentOS
- OpenSUSE : openSUSE, anciennement SuSE Linux, est une distribution d'origine allemande
développée par l'entreprise SUSE, filiale de l'entreprise américaine The Attachmate Group elle
est basée sur Slackware qui une ancienne distribution linux (lancée en 1993). OpenSuse est
réputée pour sa simplicité. Il sert de base à SUSE Linux Enterprise.
- Slackware : créé en 1993 par l'américain Patrick Volkerding, Slackware est un système destiné
aux utilisateurs aguerris à cause de son orientation serveur. C’est un système stable et simple et
très apprecié par les professionnels.
- Mageia : c’est une distribution Issue de Mandriva Linux (ex-Mandrakelinux), elle a pour
environnement de bureau par défaut KDE. Elle est Simple d'utilisation et conviviale, elle se 9
destine principalement au grand public.
- Kaella : elle est basée sur la distribution Knoppix. C’est une distribution grand public utilisée
pour des tâches de bureautique et autres.
- Kali
C’est une distribution spécialisée dans la sécurité des réseaux et des systèmes d'information
- Android c’est la distribution Linux de Google. Bien qu’elle ne soit pas considérée comme une
distribution GNU/Linux, android contient tout de même le Noyau Linux elle est surtout utilisée
pour les smartphones tactiles.
Pour accéder à une distribution linux, cela se fait généralement en téléchargement. Vous allez
sur le site du developpeur, vous telechargez le fichier ISO ou encore le package contenant le
fichier ISO du système que vous gravez par la suite sur un DVD ou le faire monter sur un live USB
(clé bootable). On peut également y accéder en commandant sur internet, il faudra juste
supporter les frais de transport. On peut aussi facilement y accéder à partir d’une connaissance
qui possède déjà la distribution demandée.
env.
public paquet utilisation issue de dérivées création
bureau
Kubuntu,
Ubuntu débutant deb Unity bureau Debian Xubuntu, 2004
Lunbuntu
SUSE Linux
openSUSE débutant rpm KDE bureau Slackware 1994
Enterprise
10
GNOME,
Mandrake débutant rpm bureau 1998
KDE
Linux XP,
RHEL confirmé rpm GNOME serveur fedora CentOS, 1994
Aurox
Red Hat
Fedora confirmé rpm GNOME bureau 2003
Linux
GNOME, bureau,
Arch avancé pacman 2002
serveur
KDE,Xfce
GNOME,
CentOS avancé rpm bureau Red Hat 2004
Cinnamon
Pour les logiciels, c'est la licence d'utilisation qui détermine ce que l'utilisateur a le droit de faire ou pas. les
principales licences libres sont les suivantes :
Elle provient du projet GNU et décrit les règles d’utilisation des logiciels (utilitaires) libres issus particulièrement
de ce projet.
C’est une licence qui provient également du projet GNU. Elle a été conçue pour les documents sous gauche
d'auteur c’est-à-dire des documents dont l’auteur a donné l’autorisation de pouvoir utiliser librement, les
modifier et les diffuser.
8. L’environnement de bureau
un environnement de bureau est un logiciel (ou ensemble de programmes) qui permet de
manipuler l'ordinateur à travers une interface utilisateur en mode graphique. On distingue 11
plusieurs environnements de bureau utilisés dans les distributions GNU/Linux.
8.2. KDE
KDE est un environnement de bureau attrayant et facile à utiliser. Il est personnalisable et très complet
en terme de programmes et recherche d’information. Comme unity, il est également gourmand en
ressource matérielle.
8.3. Gnome-Shell
Gnome-Shell est l’environnement de bureau le plus apprecié par les utilisateurs des systèmes
GNU/Linux. C’est un environnement de bureau qui a une forte communauté,ce qui permet d’avoir
différentes extensions pour la personnalisation. Tout comme Unity, Gnome-Shell est assez gourmand en
ressource matérielle.
8.4. Cinnamon
C’est un environnement de bureau développé par et pour Linux Mint, basé sur Gnome3. Il est simple
d’utilisation, beau et convivial. C’est également un environnement de bureau moderne.
8.5. XFCE
XFCE est un environnement de bureau léger, fluide et peut être personnalisé via le gestionnaire de
fenêtre Compiz. sa dernière version a un menu proche de celui de XP.
On distingue aussi les environnements de bureau tels que Mate, LXDE, Enlightenment qui sont
également utilisés dans des distributions linux.
GNU/Linux est un système utilisé en Ligne de commande et en mode graphique.la plupart des
distributions ont des versions graphiques et des versions console. Les versions consoles sont beaucoup
plus orientés serveur
12
Comme tout système d’exploitation et tout logiciel, les distributions GNU/Linux exigent aussi des
ressources minimales pour leur installation et leur utilisation. En parlant de matériel, on fait allusion à la
RAM, au processeur, au disque dur, au chipset et ainsi qu’à la carte graphique. Les systèmes linux sont
compatibles avec la plupart des processeurs tels x86, AMD64, Intel 64 et Itanium. Il est vrai que chaque
Cours d’Initiation à GNU/Linux 2020-2021 (L1D,L1E,L1F) | Chapitre I
système a ses exigences matérielles, il peut donc arriver qu’une distribution ne soit pas compatible à
une version d’un processeur.
Toutefois, avant d’installer un SE, il faut d’abord connaitre ses exigences matérielles et se rassurer que
votre ordinateur a des caractéristiques minimales qu’il faut pour accueillir ce système. On vérifie les
exigences matérielles d’une distribution via une notice (ou livre) de la distribution, ou via le site du
développeur.
D’une manière générale, les distributions GNU/Linux peuvent s’installer dans un environnement ayant
une RAM de 128 Mo avec un processeur inférieur à 750 Mhz et un espace disque de 1.5 Go. S’il faut
faire une recommandation, la RAM devrait être à 1Go, le processeur à 1,5 Ghz et un espace disque de 10
Go, avec ces ressources, on peut travailler sans trop se plaindre.
Le Démarrage des systèmes GNU/Linux se fait d’une manière générale en 6 étapes avant que la fenêtre
d’identification n’apparaisse. Il s’agit de l’étape du BIOS, de la recherche du MBR, de l’exécution du programme
d’amorçage (GRUB), la décompression du noyau, de l’initialisation des taches systèmes par INIT et du
déroulement des niveaux d’exécutions (RUNLEVEL)
10.1. Le BIOS
Lorsque l’utilisateur appui sur le bouton power ON de son ordinateur, cela déclenche le processus de démarrage
du système. Comme vu précédemment, l’ordinateur est constitué de deux principales parties : une partie
matérielle et une partie logicielle. La partie matérielle est contrôlée par un programme qui s’apparente à peu près
à un mini système d’exploitation et dont la particularité est de pouvoir comprendre les signaux émis par les
différents périphériques et de pouvoir les interpréter. Ce programme s’appelle BIOS (Basic Input Output System 13
c’est-à-dire système d’exploitation des entrées sorties). Il est situé dans la mémoire morte (ROM) de la carte mère
et regorge un ensemble de fonctions lui permettant d’effectuer des opérations élémentaires lors du démarrage
de la machine. Ces opérations sont :
10.2. Le MBR
MBR signifie Master Boot Record. C’est le premier secteur adressable d’un disque dur. Sous linux, on
l’appelle communément /dev/hda ou /dev/sda. Le MBR contient un programme appelé routine
d’amorçage ou boot loader dont le but est de charger le système d’exploitation présent sur la partition
active. Dans certaines distributions ça peut être GRUB ou LILO. Le MBR a une taille de 512 octets au
maximum, elle est organisée ainsi qu’il suit :
14
10.4. Le noyau
Le noyau regorge les fonctions essentielles du système d’exploitation. Ces fonctions vont se charger en
mémoire et peuvent donc en ce moment être appelées par les programmes utilisateurs. Pour éviter un
gaspillage d’espace mémoire et une instabilité du système, toutes les fonctions du noyau ne sont pas
chargées en mémoire. Initrd va donc permettre lors de son initialisation d’avoir un système minimal
pouvant ainsi charger le système de fichier principal. C’est ainsi que le noyau va monter le système de
fichier racine (root) afin que les données présentes dans l’ordinateur puissent être accessibles.
Le programme init
Après le chargement du noyau en mémoire, il est maintenant question de savoir si le système sera
utilisé en mode graphique ou en mode console, en mode mono-utilisateur ou en mode multi-utilisateur.
On parle de niveau d’exécution. Ces niveaux se trouvent dans le fichier /etc/inittab. Init identifie donc le
niveau d’exécution dans ce fichier et l’utilise pour charger les programmes associés au niveau.
D’une manière générale, linux démarre à un niveau d’exécution 3 ou 5. Ces deux niveaux correspondent à des
modes multiutilisateurs complets
10.6. Runlevel
Le runlevel est l’étape qui représente le déploiement des niveaux d’exécutions. Lorsque le système
démarre, on aperçoit très souvent divers services qui se chargent. Ce sont les programmes du niveau
d’exécution sur lequel le système fonctionne qui sont chargés à partir du répertoire représentant le
niveau d’exécution du système. Ces répertoires sont :
Résumé
Dans un ordinateur, les SE GNU/Linux démarre comme la plupart des SE c’est-à-dire en commençant par
le BIOS (Basic Input Output Système). Lorsque vous allumez votre ordinateur, le BIOS prend
immédiatement le relais. La première chose qu’il fait est de vérifier le matériel. On appelle cette étape
le POST (Power on Self Test). Le POST s’assure que les composants vitaux fonctionnent normalement
avant de faire amorçer le SE. Après le POST, la routine du BIOS cherche un périphérique qui est à la fois
actif et démarrable selon l'ordre de préférence défini par les réglages du CMOS (metal oxyde
semiconductor). Ça peut être une disquette, un CD-ROM, une partition d'un disque, un périphérique
situé sur le réseau ou encore une clé USB. Le plus souvent, Linux est démarré depuis un disque dur.
Lorsque ce disque dur est trouvé, Le GRUB situé dans le MBR se charge puis va présenter à l’utilisateur
les différents systèmes d’exploitation installés dans son ordinateur afin de faire le choix du système sur
lequel il veut travailler. Dès que le choix est fait, le noyau va donc se décompresser en mémoire ainsi
que le programme initrd dont le rôle est d’initialiser la mémoire pour permettre le démarrage de linux. 16
C’est ainsi que init déterminera le mode le mode de fonctionnement du système suivi de l’exécution des
programmes de ce mode, on parle d’exécution des Runlevel. Après l’exécution des runlevel, la page
d’authentification va apparaitre afin de se connecter au système.
17
18
Interface Librairie
TD
Debian 5
20
27
28
34
35
Debut d’installation, le programme d’installation copie les fichiers dans votre disque
36
37
38
39
Ubuntu 16.04
Reparer le GRUB avec ubuntu
Démarrer l’ordinateur sur un live CD ou liveUSB
Choir « essayer Ubuntu »
Installer le logiciel « boot-Repair » en tapant la commande suivante :
Sudo add-apt-repository –y ppa :yannubuntu/boot-repair && sudo apt update && sudo apt
install –y boot-repair
51