Cours introduction
au système d'exploitation Linux
Dr. TBATOU Zakariae
Année Universitaire 2020-2021
Ecole polytechnique privée d‘Agadir
Contenu du cours
Module I
Système d'exploitation
Introduction à Unix
LINUX
Distributions Linux
Structure Unix
Connexion d’un utilisateur
Répertoires et fichiers
Utilisateurs, groupes et
autorisations
Commandes de base du système Linux
Contenu du cours
Système d'exploitation
Un système d'exploitation est un ensemble de programmes qui vont
gérer et faire fonctionner votre ordinateur. Il donne l’environnement
minimale pour gérer les périphériques et les logiciels. Il se compose de
plusieurs programmes très complexes dont le but est de rendre plus
simples les programmes et l’utilisation de l’ordinateur.
la mémoire,
les accès aux
périphériques, les
données sur les disques,
les
programmes,
la sécurité,
la collecte des
informations… Parmi les plus
célèbres, on trouve:
Windows
Contenu du cours
Système d'exploitation
Contenu du cours
Système d'exploitation
Les Fonctions d’un système d’Exploitation
• Chargement et lancement des programmes
• des processeurs , de la mémoire, des périphériques
• Gestion des processus
• Protection contre les erreurs et la détection des erreurs ,etc
Contenu du cours
Appels système d'exploitation
Deux mode de fonctionnement
Le mode superviseur (noyau, privilégié ou maître) : pour le système
d'exploitation, où toutes les instructions sont autorisées.
Le mode utilisateur (slave) : pour les programmes des utilisateurs et
les utilitaires, où certaines instructions ne sont pas permises.
Contenu du cours
Introduction à Unix
Le système Unix est un système d'exploitation multiutilisateurs, multi
tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi
processeurs de faire exécuter simultanément plusieurs programmes par
un ou plusieurs utilisateurs:
Multitâche : le système gère l’exécution simultanée de
plusieurs programmes appelés des processus.
Multiutilisateurs : le système permet l’existence de plusieurs
utilisateurs
différents sur une même machine.
Il possède plusieurs interpréteurs de commandes (shell) ainsi
qu'un grand nombre de commandes et de nombreux utilitaires
(compilateurs pour de nombreux langages, traitements de
texte, messagerie électronique, ...).
Contenu du cours
Introduction à Unix
Il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en
œuvre un système Unix sur la quasi-totalité des plates-formes matérielles.
Sécurité élevé et le respect des grands standards, notamment en matière de réseau.
Contenu du cours
LINUX
Linux est un système d'exploitation de la famille Unix libre
créé à l'origine par Linus Torvalds avec l'aide de
développeurs du monde entier.
Elle est née en 1991 comme un projet personnel de Linus
Torvalds,
un étudiant diplômé finlandaise.
La version du noyau 1.0 a été libéré en 1994 et, aujourd'hui, la
plus récente version stable est:
Date Sun, 30 Aug
2015 Subject Linux
4.2 is out
From Linus Torvalds
Développé sous la licence publique générale GNU, le code
source pour Linux est disponible gratuitement pour tout le
Contenu du cours
Caractéristiques de LINUX
Multitâches et Multi-utilisateurs;
Gestion dynamique des pilotes de périphériques: les modules sont chargés
dynamiquement;
Support de plusieurs systèmes de fichiers dont Windows et Macintosh.
Interopérabilité avec Windows;
….
Contenu du cours
Logiciel libre
L'expression « Logiciel Libre » fait référence à la liberté pour les
utilisateurs d'exécuter, de copier, de distribuer, d'étudier, de modifier
et d'améliorer le logiciel.
Stallman , pour défendre aux logiciels libres, il créa la FSF (Free
Software Foundation) en 1985 qui diffuse les idées du logiciel libre.
Parmi ses premiers
travaux figure la rédaction d’une licence spéciale pour ces logiciels
appelée la GPL (General Public License (GNU...)). Un logiciel libre
garantit quatre libertés :
Liberté 0 : La liberté d'exécuter le programme, pour tous les
usages. Liberté 1 : la liberté d’étudier le fonctionnement du
programme et de l’adapter à votre besoin.
Liberté 2 : la liberté de redistribuer des copies afin d’aider votre
voisin. Liberté 3 : la liberté d’améliorer le programme et de
diffuser les améliorations au public à fin d’en faire bénéficier
l’ensemble de la communauté.
Contenu du cours
Open Source
Un logiciel Open source implique que son code source est à la
disposition du grand public. Il englobe les logiciels libres, mais aussi
des logiciels privés.
Linux est un logiciel open source ce qui signifie, simplement, que
n'importe qui peut obtenir des copies de ses fichiers source.
La plupart des logiciels libres sont opensource.
Il est interdit de revendre un logiciel open source.
Contenu du cours
Open Source
Libre redistribution. La licence ne doit pas empêcher de vendre.
Inclusion du code source. Le programme doit inclure le code source, et
la distribution sous forme de code source.
Autorisation de travaux dérivés. La licence doit autoriser les
modifications et les travaux dérivés.
Intégrité du code source de l’auteur. La licencene peut restreindre
la redistribution du code source sous forme modifiée.
…..
Contenu du cours
Structure UNIX
Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il
est développé essentiellement en langage C par des milliers de
bénévoles et salariés communiquant par Internet.
Proces
sus
Hardwor
e Noyau
Pilotes API Linux
Contenu du cours
Distributions Linux
Une distribution est un environnement de travail, avec son graphisme,
sa philosophie et ses logiciels.
Il existe plusieurs distributionspossiblespour le système
d'exploitation GNU/Linux.
Il est possible d’interchanger les éléments d’une distribution à
l’autre. Parmi les plus célèbres, on trouve:
Suse
Mandriva
Red hat
Fedora
Centros
Kubuntu
Ubuntu
Mint
https://distrowatch.com/
Contenu du cours
Distributions Linux
Le premier système UNIX date de 1969 (Laboratoires Bell d'AT&T, Ken Thompson &
Dennis Ritchie), deux interfaces utilisateurs :
• GUI (Graphical User Interface)
• CLI (Command Line Interface)
Le mode console est l'interface utilisateur de base du système d'exploitation Unix (en plein
écran). Le mode terminal émule une console qui s'ache en général dans une fenêtre de
l'écran.
Contenu du cours
Structure UNIX
Le système d'exploitation GNU/Linux est composé :
• d'un noyau (kernel )
• d'un shell et des applications (user )
• d'un système de fichiers
• de la mémoire virtuelle, composée de la RAM physique et de la zone de
swap, généralement stockée sur un disque dur local.
Les tâches (services) du système d'exploitation sont assurées par des processus
qui fonctionnent en permanence (tâche de fond) dans le système : les démons
(daemons).
Contenu du cours
Structure UNIX
Contenu du cours
Structure UNIX
Le noyau Linux est un fichier exécutable qui existe sur le disque boot,
dans le répertoire /boot. Son nom n’est pas standardisé, est souvent
appelé vmlinuz. Il assure:
La gestion des périphériques qui est réalisée par les
pilotes de périphériques intégrés/ installés au noyau.
La gestion des fichiers qui s’appuie sur la
couche VFS(Virtual File System).
La gestion des processus qui est prise en charge par l’ordonnanceur
qui assure l’allocation des/du processeurs aux processus qu’il
contrôle.
Les processus adressent des demandes de services au noyau via les
API.
Contenu du cours
Types Shell
sh : Bourne Shell. L'ancêtre de tous les shells.
bash : Bourne Again Shell. Une amélioration du Bourne Shell, disponible par
défaut sous Linux et Mac OS X.
ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires, mais
aussi disponible en version libre, compatible avec bash.
csh : C Shell. Un shell utilisant une syntaxe proche du langage C.
tcsh : Tenex C Shell. Amélioration du C Shell.
zsh : Z Shell. Shell assez récent reprenant les meilleures idées de bash, ksh et tcsh.
echo $SHELL
Contenu du cours
Connexion d’un utilisateur
Le rôle d’un administrateur: Créer, modifier et supprimer un utilisateur;
Comment être « root »?
Le nom de l’administrateur d’un système Linux est « root ». Pour
avoir les privilèges de root ou bien de super user, il faut prendre
l’identité de root.
Connexion en tant qu’utilisateur root:
Login: root
Password: caché
#exit ou bien logout
Contenu du cours
Connexion d’un utilisateur
Il est aussi possible de prendre les droits de root temporairement,
grâce à la commande su:
$su
password: caché
#
#exit
$
Contenu du cours
Connexion d’un utilisateur
Remarque:
Root peut changer l’invité du shell. Il est conseillé d’y conserver #.
Il est déconseillé de travailler toujours en tant que root. Il est
préférable de disposer d’un compte ordinaire et d’exécuter la
commande su.
La commande su change l’identité mais pas l’environnement.
On utilise le symbole $ pour une utilisateur ordinaire et le symbole
# pour root.
En cas d’erreur lors de la saisie du nom ou du mot de passe, le
système donne à l’utilisateur la possibilité de recommencer.
Une erreur lors de la saisie du nom peut être annulée par la
combinaison de touches <ctrl–u>.
Contenu du cours
Modification de Mot de passe
Les mots de passe attribuent à chaque utilisateurs sont chiffrés. Donc, il
est difficile de revenir sur le mot de passe même pour un super utilisateur.
Un utilisateur peut à tout moment changer son mot de passe, ou s’en attribuer un par
la commande passwd. Lors du changement, il faut fournir l’ancien mot de passe.
.
Contenu du cours
Commandes de gestion des utilisateurs
useradd, usermod, userdel: gèrent les comptes utilisateurs;
groupadd, groupmod, groupdel: gèrent les comptes de
groupe; pwck, grpck: vérifient les fichiers /etc/passwped
et /etc/group finger: donne des informations sur un
utilistaeur
password: permet de modifier le mot de passe d’un
utilisateur
su: permet de se connecter à un compte;
Contenu du cours
Création d’un utilisateur
Coté protection, la première action à réaliser par un administrateur est
de créer un compte personnel. Pour ceci, il suffit d’utiliser la
commande useradd.
La commande useradd permet de créer un utilisateur en
précisant des informations associées
Contenu du cours
Répertoires et fichiers
Linux organise les fichiers systèmes en arbre (Arborescence).
Il ne connaît ni enregistrement ni structure de fichier. C’est aux
programmes d’application de les implanter et de les gérer. Le système
Linux ne connaît que trois types de fichiers :
Les fichiers ordinaires: Ils servent à mémoriser les programmes
et les données des utilisateurs et du système.
Les fichiers répertoires: ils structurent l’arborescence.
Les fichiers spéciaux. Ils désignent les périphériques, les tubes ou autre
supports de communication interprocessus. Les fichiers spéciaux
associés aux périphériques peuvent être caractères (terminaux) ou
blocs (disque) ; les entrées/sorties (E/S) .
Contenu du cours
Répertoires et fichiers
Extension Fichier
.c Fichier source de langage C.
.cc Fichier source de langage C++.
.h Fichier d'entête du langage C
.f Fichier source de langage Fortran
.d Un répertoire
.sh Un script Shell
.awk Un script écrit avec awk
.ps Fichier de format postecript
.tx Fichier source LaTex
Contenu du cours
Répertoires et fichiers
Linux autorise pour le nom du fichier une longueur comprise entre 1
et 255 caractères.
Les caractères spéciaux suivants sont à proscrire absolument :
\ > < | $ ? & [ ] * ! " ‘ ( ) ` @ ~ <espace>
Le point sert également à suffixer les noms des fichiers.
include.h
Les caractères spéciaux et leur signification:
Caractère Désignation
* désigne toute chaîne de 0 à n caractères
? désigne un caractère quelconque,
[…] désigne un caractère quelconque appartenant à
l’ensemble des caractères entre crochets
Contenu du cours
Répertoires et fichiers
Un fichier Lunix est repéré par :
Son nom et sa position dans l’arborescence : son
chemin d’accès (pathname).
chemin d’accès
Relatif Absolu
Nom répertoire ou .. /
develop/ /var/spool/mail/
/home/
Contenu du cours
Répertoires et fichiers
Contenu du cours
Répertoires et fichiers
Le système de fichiers sous Linux se compose d'une hiérarchie de répertoires, sous-répertoires
et fichiers. Le répertoire le plus élevé dans l'arborescence est nommé la racine (root) symbolisé
par /. L'arborescence est unique. Quelques répertoires importants :
/etc : contient les fichiers de configuration du système et des applications
/dev : contient les fichiers spéciaux de périphériques qui représente les points d'accès au
matériel
/bin : contient les commandes de base du système
/sbin : contient les outils systèmes pour l'administration
/usr : contient les commandes et applications pour les utilisateurs, dont les environnements
graphiques
/home : contient les répertoires personnels des utilisateurs
/var : contient les fichiers dont le contenu varie en fonction de l'utilisation du système (bases de
données, fichiers de logs, . . . )
/proc : représente le point d'accès aux informations (variables, tables, liste, ...) du noyau et des
processus
Contenu du cours
Utilisateurs, groupes et autorisations
Classes d'utilisateurs
User
(l’utilisateur)
le propriétaire
du fichier
il est désigné
par la lettre u
Group (groupe)
les membres du groupe associé au
fichier. il est désigné par la lettre g
Others (autres)
Ce terme générique désigne tous les utilisateurs autres que les
membres du groupe et les propriétaires
ils sont désignés par la lettre o
Contenu du cours
Utilisateurs, groupes et autorisations
Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier
donné :
Read (r) : en lecture
Write (w): en écriture
eXecute (x) : en exécution
Au niveau répertoire, ces droits signifient :
Read : droit de lister les fichiers présents dans ce répertoire
Write : droit de créer ou de détruire un fichier qui s'y trouve
eXecute : droit de traverser ce répertoire
Rq: 3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès
différents
Contenu du cours
Utilisateurs, groupes et autorisations
Les principales commandes pour gérer les répertoires sont :
Commandes Syntaxe Désignations
pwd >pwd Affiche le chemin d’accès du répertoire
courant.
cd > cd .. Permet de changer de répertoire de
travail.
mkdir > mkdir nom Crée un nouveau répertoire.
rmdir > rmdir nom Supprime un répertoire, s’il est vide.
find >find . –name nom – Recherche un fichier à partir du
print répertoire donné.
>find . –type f –size
+100c –print
55
Contenu du cours
Utilisateurs, groupes et autorisations
Les principales commandes permettent de lister le contenu d’un répertoire, de
copier, d’effacer, ou d’afficher des fichiers.
Commandes Syntaxe Désignations
ls >ls permet d’obtenir la liste des fichiers et
répertoires existants à ce niveau.
ls –l >ls –l permet de lister le contenu du répertoire et
d’obtenir toutes les informations.
cat >cat chemin La commande cat est une commande
> cat >nomfichier multi–usage qui permet d’afficher, de
texte créer, de copier et de concaténer des
<ctrl–d> fichiers.
>cat f1 f2 >fsortie
locate >locate Permet d’afficher le nom complet de
nomfichier tout fichier ou répertoire correspondant
14/11/2015 à un critère de recherche
56 donné.
Contenu du cours
Utilisateurs, groupes et autorisations
Commandes Syntaxe Désignations
More >less nomfichier Permettent d’afficher page par page à
less l’écran le contenu d’un fichier texte.
cp permet la copie de fichiers.
>cp f1 f2 copie du fichier f1 dans f2
>cp f1 /rép copie d’un fichier dans un répertoire.
>cp ../f1 Copie du fichier du répertoire père vers le
répertoire courant.
>> cp * /rép Copie du contenu du répertoire dans
autre.
mv >mv f1 /rép
…. équivalente à une copie, suivie d’une
suppression.
rm >rm –i f1 #confirmé Supprime des fichiers des répertoires
>rm –f f1 #forcé
Contenu du cours
Utilisateurs, groupes et autorisations
Commandes Syntaxe Désignations
grep >grep bon f1 Recherche, dans un ou plusieurs fichiers,
de toutes les lignes contenant une chaîne
donnée de caractères
ln > ln f1 New_f2 Permet de désigner un fichier par
plusieurs noms différents.
touch >touch f1 Crée un fichier vide.
echo >echo affiche Affiche à l’écran le texte qui suit la
message commande.
Contenu du cours
Utilisateurs, groupes et autorisations
La protection d’un fichier ne peut être modifiée que par le propriétaire
à l’aide de la commande chmod:
Syntaxe: > chmod 567
toto
Binaire Logique Décimal
000 () 0
001 (x) 1
010 (w) 2
011 (wx) 3
100 (r) 4
101 (rx) 5
110 (rw) 6
111 (rwx) 7
On a donc rwx rwrx = 111 110 101 = 765
Contenu du cours
Utilisateurs, groupes et autorisations
Le deuxième mode d’utilisation de chmod, le mode
symbolique: Syntaxe: chmod
[who]op[permission] fichier
who lettre u (user=propriétaire), g (groupe), o (other=autre)
ou a (all=tous) pour ugo,
op + permet d’ajouter, - de supprimer et = d’affecter un droit
de manière absolue.
permission rwx
chmod uw f1
chmod g+r f2
chmod ug=x f3
Contenu du cours
Utilisateurs, groupes et autorisations
La commande umask permet de définir un masque de protection des
fichiers et répertoires lors de leur création.
Syntaxe: > umask masque
umask u=rwx,g=rx,o=rx
Umask 222
umask 132 permet de créer des fichiers répertoires dont la
protection est: rwr rx
Contenu du cours
Commandes de base du système Linux
On peut classer les commandes en trois catégories :
Les commandes définies par une fonction shell ou par un alias. C’est une façon
de renommer une commande.
alias nom_de_votre_alias='commande de votre alias‘
Exemple:
alias agu='sudo apt-get update'
Les commandes internes qui font partie intégrante du shell ; il n’y a pas
création d’un nouveau processus lors de l’exécution de ces commandes.
Les commandes externes qui sont indépendantes du shell et qui se trouvent dans
différents répertoires (/usr/sbin, /sbin,...). À chaque lancement d’une de ces
commandes il y a création d’un nouveau processus.
Syntaxe générale des commandes Linux :
commande [ ± option... ] [ paramètre... ]
Contenu du cours
Commandes de base du système Linux
Une commande shell peut être interne ou externe. La commande type
indique si une commande est interne ou externe.
Syntaxe : type commande
Les commandes internes : il s'exécute sur le shell luimême. Elle est
plus rapide.
Exemple : ~$ type ls
ls ls is aliased to `ls color=auto'
Les commandes externes : il crée un un nouveau processus lors
d’exécution. Effectivement, une commande externe est un fichier
présent dans l'arborescence.
Exemple : ~$ type pwd
pwd is a shell builtin
Contenu du cours
Commandes de base du système Linux
La ligne de commandes séquentielles
Il est possible de taper plusieurs commandes sur la même ligne en les séparant
par des points-virgules ;:
Exemple : commandde ; commande ; commande
Contenu du cours
Commandes de base du système Linux
La commande sur plus d’une ligne
Il est possible de taper une commande sur plusieurs lignes. Pour cela les
lignes de commandes, sauf la dernière, doivent se
terminer par la suite de touches
\<return>.
Exemple : ls l /home\ <entrée>
Contenu du cours
Commandes de base du système Linux
Les séparateurs conditionnels de commandes
Il est possible de contrôler la séquence d’exécution de commandes en
utilisant des séparateurs conditionnels.
Le séparateur && permet d’exécuter la commande qui le suit si et
seulement si la commande qui le précède a été exécutée sans erreur .
Le séparateur | | permet d’exécuter la commande qui le suit si et
seulement si la commande qui le précède a été exécutée avec erreur.
Exemples : cd /nom && rm *
cd /nom | | mkdir nom
Contenu du cours
Commandes de base du système Linux
La redirection des entrées/sorties
Le caractère < suivi du nom d’un fichier indique la redirection de l’entrée
standard à partir de ce fichier.
Le caractère > suivi du nom d’un fichier indique la redirection de la sortie
standard vers ce fichier.
Les caractères > > suivis du nom indiquent que l’information ou la
redirection sera ajoutée au fichier.
Les caractères 2 > suivis du nom d’un fichier indiquent la redirection de la
sortie d’erreur standard vers ce fichier.
Exemples :
ls >temp ; cat f1 >f2 ; cat <f1 >f2 ; ls /toto * >temp 2>ertemp
Exercice : Dans les systèmes d'exploitation dérives d'Unix, le codage
des droits se fait sur 9 bits groupes par 3 bits. Ces droits sont codes en
un entier. Pour ce faire, on convient de la correspondance :
r = 4; w = 2 et x = 1. Ainsi, les droits rw-, correspondent à l'entier
(r=)4+(w=)2=6. Donc rw-rw-rw- correspond à l'entier 666.
Questions :
1) A quels droits correspondent les entiers 751; 521et 150 ?
2) Par quels entiers sont codes les droits rw-r- -r- - et rwxr-xr-x ?