SlideShare une entreprise Scribd logo
1  sur  117
Télécharger pour lire hors ligne
Faycel CHAOUA (faycelchaoua@gmail.com)
ISET KELIBIA | ROUTE OUED ELKHATF, CAMPUS UNIVERSITAIRE DE KELIBIA
Janvier 2018
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
Direction Générale des Études Technologiques
ISET Kélibia
Département Technologies de l’Informatique
Support du cours
SYSTEMES D'EXPLOITATION 2
LMD  L2
Faycel CHAOUA Systèmes d’exploitation 2 i
Conditions d’utilisation de ce support
Ce support de cours est mis à disposition selon les termes de la licence « Creative Commons
Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0
International ».
https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr
Vous êtes autorisé à :
» Partager  copier, distribuer et communiquer le matériel par tous moyens et sous tous
formats.
» Adapter  remixer, transformer et créer à partir du matériel
Selon les conditions suivantes :
» Attribution  Vous devez créditer l'œuvre, intégrer un lien vers la licence et indiquer
si des modifications ont été effectuées à l'œuvre. Vous devez indiquer ces
informations par tous les moyens raisonnables, sans toutefois suggérer que l'offrant
vous soutient ou soutient la façon dont vous avez utilisé son œuvre.
» Pas d’utilisation commerciale  Vous n'êtes pas autorisé à faire un usage commercial
de cette œuvre, tout ou partie du matériel la composant.
» Partage dans les mêmes conditions  Dans le cas où vous effectuez un remix, que
vous transformez, ou créez à partir du matériel composant l'œuvre originale, vous
devez diffuser l'œuvre modifiée dans les même conditions, c'est à dire avec la même
licence avec laquelle l'œuvre originale a été diffusée.
Faycel CHAOUA Systèmes d’exploitation 2 ii
Les objectifs généraux
A l’issue des modules présentés dans ce support, l’apprenant sera capable de :
 Comprendre l’architecture d’un système UNIX.
 Partitionner un disque dur sous un système GNU/Linux.
 Gérer des fichiers et des répertoires.
 Modifier les droits d’accès.
 Gérer les utilisateurs et les groupes.
 Gérer les processus.
 Écrire des scripts Shell.
Plan du cours
Ce support est constitué principalement des chapitres suivants :
 Chapitre 1 : Présentation générale du système Linux.
 Chapitre 2 : Système de fichiers Linux.
 Chapitre 3 : Les commandes GNU/Linux.
 Chapitre 4 : Permissions d'accès aux Fichiers.
 Chapitre 5 : Gestion des utilisateurs et des groupes.
 Chapitre 6 : Système de gestion de processus.
 Chapitre 7 : La programmation Shell.
Faycel CHAOUA Systèmes d’exploitation 2 iii
Table des matières
Chapitre 1. Présentation générale du système Linux............................................................ 1
1.1. Système UNIX................................................................................................................. 2
1.1.1. Le système d’exploitation......................................................................................... 2
1.1.2. Historique.................................................................................................................. 3
1.2. Système GNU / Linux ..................................................................................................... 4
1.2.1. Le projet GNU .......................................................................................................... 4
1.2.2. GNU / Linux : historique et caractéristiques ............................................................ 4
1.2.3. Distribution Linux..................................................................................................... 5
Chapitre 2. Système de fichiers Linux.................................................................................... 6
2.1. Choisir un système de fichiers......................................................................................... 8
2.1.1. Principe ..................................................................................................................... 8
2.1.2. Les filesystems sous Linux ....................................................................................... 9
2.2. Disques durs et partitionnement .................................................................................... 10
2.2.1. Les partitions........................................................................................................... 10
2.2.2. Organisation des partitions sous Linux................................................................... 11
2.2.3. Formatage ............................................................................................................... 12
2.2.4. Contrôle de l'intégrité du système de fichiers et réparation.................................... 12
2.2.5. Montage et démontage d'un système de fichiers..................................................... 13
Chapitre 3. Les commandes GNU/Linux ............................................................................. 15
3.1. Le Shell.......................................................................................................................... 18
3.1.1. Présentation............................................................................................................. 18
3.1.2. Les caractères spéciaux du Shell............................................................................. 18
3.2. Fichiers et répertoires .................................................................................................... 19
3.3. Redirections des entrées-sorties..................................................................................... 20
3.4. Les gestionnaires de paquets ......................................................................................... 21
3.5. Les principales commandes GNU/Linux ...................................................................... 21
Faycel CHAOUA Systèmes d’exploitation 2 iv
3.5.1. Les commandes relatives aux répertoires ............................................................... 21
3.5.2. Les commandes relatives aux fichiers .................................................................... 26
3.5.3. Les commandes d'archivage et de compression...................................................... 39
3.5.4. Commandes d’aide et d’informations..................................................................... 42
Chapitre 4. Permissions d'accès aux Fichiers...................................................................... 44
4.1. Les droits sur les fichiers et les répertoires.................................................................... 45
4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires.......................... 47
Chapitre 5. Gestion des utilisateurs et des groupes............................................................. 48
5.1. Les utilisateurs............................................................................................................... 49
5.2. Les groupes.................................................................................................................... 50
5.3. Les fichiers de configuration ......................................................................................... 51
5.3.1. Gestion des utilisateurs ........................................................................................... 51
5.3.2. Gestion des groupes ................................................................................................ 52
5.3.3. Fichiers de configuration par défaut ....................................................................... 52
5.4. Gestion des comptes et des options de création par défaut ........................................... 52
5.4.1. Comment bloquer un compte.................................................................................. 53
5.4.2. Gestion des informations d’expiration du compte.................................................. 53
5.4.3. Destruction d’un compte......................................................................................... 53
Chapitre 6. Système de gestion de processus ....................................................................... 54
6.1. Introduction ................................................................................................................... 55
6.2. La commande « ps »...................................................................................................... 55
6.3. La commande « top » .................................................................................................... 56
6.4. La commande « kill ».................................................................................................... 56
6.5. La commande « nice »................................................................................................... 57
6.6. La commande « renice »................................................................................................ 58
6.7. Les processus et le Shell................................................................................................ 58
6.8. La commande « nohup » ............................................................................................... 59
Chapitre 7. La programmation Shell ................................................................................... 61
Faycel CHAOUA Systèmes d’exploitation 2 v
7.1. Introduction ................................................................................................................... 62
7.2. Le Shell, un interpréteur de commandes ....................................................................... 62
7.3. Utilisation de variables .................................................................................................. 63
7.4. Les scripts Shell............................................................................................................. 64
7.5. Syntaxe .......................................................................................................................... 65
7.5.1. Les tests................................................................................................................... 67
7.5.2. L’instruction « if » .................................................................................................. 68
7.5.3. L’instruction « case ».............................................................................................. 69
7.5.4. L’instruction « for »................................................................................................ 69
7.5.5. L’instruction « while »............................................................................................ 70
7.5.6. Les fonctions........................................................................................................... 71
7.5.7. Expressions arithmétiques « expr » ........................................................................ 71
7.5.8. Expressions arithmétiques « let, (()) ».................................................................... 72
TD (Travaux dirigés) ............................................................................................................. 73
TD N° 1 ................................................................................................................................ 74
TD N° 2 ................................................................................................................................ 76
TD N° 3 ................................................................................................................................ 78
TD N° 4 ................................................................................................................................ 81
TD N° 5 ................................................................................................................................ 83
Correction des TD .................................................................................................................. 85
Correction du TD N° 1 ......................................................................................................... 86
Correction du TD N° 2 ......................................................................................................... 90
Correction du TD N° 3 ......................................................................................................... 94
Correction du TD N° 4 ......................................................................................................... 99
Correction du TD N° 5 ....................................................................................................... 103
Références (Bibliographie / Webographie)........................................................................ 110
Faycel CHAOUA Systèmes d’exploitation 2 1
Chapitre 1. Présentation générale du système Linux
Chapitre 1 : Présentation générale du système Linux
֍ Durée : 1 heure 30 minutes.
֍ Mots clés : Système d’exploitation, UNIX, GNU/Linux, GPL.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Distinguer l'architecture logique d'un système UNIX.
» Rappeler sommairement l'historique d'UNIX et de GNU/Linux.
» Identifier les quatre libertés de la licence GPL.
Plan du chapitre :
1.1. Système UNIX................................................................................................................. 2
1.1.1. Le système d’exploitation......................................................................................... 2
1.1.2. Historique.................................................................................................................. 3
1.2. Système GNU / Linux ..................................................................................................... 4
1.2.1. Le projet GNU .......................................................................................................... 4
1.2.2. GNU / Linux : historique et caractéristiques ............................................................ 4
1.2.3. Distribution Linux..................................................................................................... 5
Chapitre 1. Présentation générale du système Linux
Faycel CHAOUA Systèmes d’exploitation 2 2
1.1. Système UNIX
1.1.1. Le système d’exploitation
Un système d’exploitation est un programme ou un ensemble de programmes assurant la
gestion de l’ordinateur et des périphériques. Il sert d’interface entre le matériel (hardware) et
le logiciel (software). C’est un ensemble de programmes très complexes dont le but est de
rendre plus simples les programmes et l’utilisation de l’ordinateur.
Figure 1-1 : Principe du système d’exploitation
C’est le rôle du système d’exploitation de gérer la mémoire, les accès aux périphériques, les
données sur les disques, les programmes, la sécurité et la collecte des informations.
Figure 1-2 : Architecture logique d’un système UNIX
Chapitre 1. Présentation générale du système Linux
Faycel CHAOUA Systèmes d’exploitation 2 3
Le schéma précédent présente une synthèse simplifiée de la structure interne d’un système
d’exploitation Unix. En bas se trouve le matériel, en haut les programmes qu’on fait
fonctionner sur la machine. Entre les deux les divers composants du système assurent son bon
fonctionnement.
1.1.2. Historique
UNIX désigne une famille de systèmes d'exploitation dont le premier a été conçu aux
"laboratoires Bell".
 1969 : Thompson et Ritchie produisent la première édition d'un système primitif qui
ne comporte qu'un assembleur et un chargeur.
 1970 : La primitive « fork » est ajoutée pour permettre la création de processus et des
programmes utilitaires pour la gestion des fichiers sont produits (deuxième édition).
 1971 : Un système de traitement de textes (roff) est produit. Thompson et Ritchie
publient la première documentation du système. C'est la troisième édition.
 1972 : UNIX est amélioré en lui ajoutant la notion de relais (pipe). Il existe à l'époque
environ 20 sites utilisant le système UNIX.
 1973 : UNIX est réécrit en langage C (quatrième édition).
 1974 : La cinquième édition, conçue spécialement pour des fins académiques, est
introduite.
 1975 : La sixième édition d’UNIX est produite et devient la première à être
commercialisée pour une somme modique par "AT&T".
 1977 : Près de 500 sites utilisent UNIX. À partir de ce moment, les versions d’UNIX
vont se multiplier. C'est à cette époque que débute le problème de standard.
 1980 : Il y a environ 100 000 sites UNIX.
 1983 : "AT&T" annonce le System V.
 1984 : Production de la version 2 de System V avec un support complet pour le
système d'exploitation et les utilitaires.
 1986 : "AT&T" annonce la version 3 de System V qui supporte RFS (Remote File
Sharing).
 1987 : Une nouvelle version d’UNIX est annoncée. C'est le System V version 4.0 qui
sera disponible à l'automne 1989. Donc deux versions vont subsister : System V 5.3
de "AT&T" et BSD 4.3 de "Berkeley".
Chapitre 1. Présentation générale du système Linux
Faycel CHAOUA Systèmes d’exploitation 2 4
 1989 : Avec la commercialisation du système par "AT&T", les sources n'étaient
offertes qu'à des prix exorbitants. Le projet GNU (GNU's not UNIX) a pour objectif
(entre autres) de remettre UNIX dans le domaine public. Sur une base de volontariat,
les participants au projet GNU produisent du code UNIX disponibles gratuitement.
1.2. Système GNU / Linux
1.2.1. Le projet GNU
Richard Stallman a décidé en 1983 d’écrire un nouveau système d’exploitation entièrement
libre d’accès, d’utilisation, de modification et de redistribution. Basé sur Unix, il l’a nommé
GNU (Gnu’s Not Unix).
Pour défendre le logiciel libre, Stallman a créé 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). Un logiciel libre
garantit quatre libertés :
 Liberté 0 : la liberté d’utiliser un logiciel quel que soit l’usage que vous en faites.
 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 (au sens large
du terme).
 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é.
Les libertés 1 et 3 nécessitent d’avoir obligatoirement accès au code source du programme.
La liberté 3 définit la notion de communauté autour du logiciel libre.
1.2.2. GNU / Linux : historique et caractéristiques
 1991 : Linus Torvalds a créé le système Linux (Linus' UNIX, l'UNIX de Linus). Il
lance un appel à contribution, et permet donc un libre accès au code source. Cette
version permet de faire tourner quelques applications GNU (logiciels libres)
essentielles comme le compilateur gcc ou le Shell bash. Linus prend la décision de
Chapitre 1. Présentation générale du système Linux
Faycel CHAOUA Systèmes d’exploitation 2 5
mettre le code source sous licence GPL : tout le monde peut alors participer au
développement de Linux.
 1991-94 : Linux devient un système UNIX complet compatible avec les autres
systèmes UNIX, offrant toujours plus de services de qualité professionnelle au plus
grand nombre.
 1994-97 : L’apparition des grandes distributions Linux : Red Hat, Debian, Suse et
Slackware. Durant ces années, Linux ne cesse de s’améliorer, avec l’arrivée notable
de la modularité et de la version 2.0. Les projets foisonnent, et déjà l’idée d’améliorer
le système et de l’ouvrir au monde du bureau (desktop) fait son bout de chemin avec le
début du développement de produits comme Gnome ou KDE.
 1998~ : L’explosion de l’utilisation de Linux. Les salons Linux se multiplient et l'on
observe une multiplication des revues spécialisées. Le noyau 2.6 sort le 18 décembre
2003.
 Aujourd’hui et demain : Aujourd’hui Linux est reconnu comme un système
d’exploitation stable, robuste et performant. Il est utilisé dans plus du tiers des
serveurs dans le monde et dans la moitié des serveurs Web. Il a conquis le monde de
l’entreprise, le monde universitaire. Il a surtout su conserver son indépendance,
garantie par la communauté et le nombre de contributeurs, face aux géants de
l’informatique. La prochaine grosse cible de Linux, c’est le poste de travail, et
pourquoi pas, l’usage familial en remplacement de Windows. Il reste encore un peu de
chemin, mais nombreux sont ceux qui ont déjà franchi le pas.
1.2.3. Distribution Linux
Linux est le plus souvent diffusé sous forme d’une distribution, un ensemble de programmes
(noyau, sources des utilitaires, commandes, applications) formant après installation un
système complet. Chacune des distributions a ses avantages et ses inconvénients. Débuter
avec Linux, c’est surtout choisir une distribution qui corresponde avec les usages qu’on attend
du système.
Parmi les distributions les plus utilisées, on trouve RedHat, Debian, Slackware (toutes trois
gratuites) et SuSE, Mandrake (toutes deux payantes).
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 6
Chapitre 2. Système de fichiers Linux
Chapitre 2 : Système de fichiers Linux
֍ Durée : 2 heures.
֍ Mots clés : système de fichiers, ext2, ext3, ext4, reiserfs, xfs, vfat, fdisk, mkfs, fsck,
mount, umount, fstab, df, du.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Distinguer entre les principaux systèmes de fichiers sous Linux.
» Partitionner un disque dur.
Plan du chapitre :
2.1. Choisir un système de fichiers......................................................................................... 8
2.1.1. Principe ..................................................................................................................... 8
2.1.2. Les filesystems sous Linux ....................................................................................... 9
2.1.2.1. ext2..................................................................................................................... 9
2.1.2.2. ext3..................................................................................................................... 9
2.1.2.3. ext4..................................................................................................................... 9
2.1.2.4. reiserfs ................................................................................................................ 9
2.1.2.5. xfs..................................................................................................................... 10
2.1.2.6. vfat.................................................................................................................... 10
2.2. Disques durs et partitionnement .................................................................................... 10
2.2.1. Les partitions........................................................................................................... 10
2.2.2. Organisation des partitions sous Linux................................................................... 11
2.2.3. Formatage ............................................................................................................... 12
2.2.4. Contrôle de l'intégrité du système de fichiers et réparation.................................... 12
2.2.5. Montage et démontage d'un système de fichiers..................................................... 13
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 7
Introduction
Un système de fichiers, appelé communément File System ou FS, définit l’organisation des
données sur un support de stockage, donc comment sont gérés et organisés les fichiers par le
système d’exploitation.
Linux est, comme tout Unix, un système d’exploitation entièrement orienté fichier. Tout (ou
presque) est représenté par un fichier, tant les données (fichiers de données de tout type
comme une image ou un programme), que les périphériques (terminaux, souris, clavier, carte
son, etc.) ou encore les moyens de communication (sockets, tubes nommés, etc.). On peut dire
que le système de fichiers est le cœur de tout système Unix.
Figure 2-1 : Exemple d’arborescence Linux
Le système de fichiers de Linux est hiérarchique. Il décrit une arborescence de répertoires et
de sous répertoires, en partant d’un élément de base (/) appelé la racine ou root directory.
Les répertoires de base de l'arborescence standard de fichiers sont les suivants :
 /boot : contient principalement le fichier binaire du noyau ainsi que les ressources
nécessaires à son lancement au démarrage.
 /dev : contient les fichiers des périphériques (devices) de la machine ainsi que des
fichiers spéciaux.
 /home : répertoire où sont stockés par défaut les répertoires home des utilisateurs du
système.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 8
 /etc : répertoire très important où sont stockés tous les fichiers de configuration du
système en général et des différents démons en particulier. Il s’agit du répertoire à
sauvegarder pour pouvoir restaurer la configuration d'une machine.
 /proc : contient les informations nécessaires au noyau. C'est une arborescence
virtuelle généralement en lecture seule sauf /proc/sys.
 /root : répertoire home du super-utilisateur (root).
 /tmp : permet aux applications et aux utilisateurs d'avoir un espace d'échange où ils
peuvent stocker leurs fichiers temporaires. Il est effacé à chaque redémarrage de la
machine (« reboot »).
 /usr : contient les fichiers nécessaires aux applications, la documentation, les
manuels, les fichiers sources ainsi que des librairies généralement statiques et générées
à l'installation des logiciels standards de la distribution.
 /usr/local : arborescence qui sert à installer les logiciels supplémentaires.
 /var : contient les fichiers journaux des différents démons (donc variable) ainsi que
les spools de mail, d'impression, de cron, etc.
 /bin et /sbin : contiennent l'ensemble des binaires indispensables au démarrage de la
machine et les commandes essentielles d’administration.
 /lib et /usr/lib : contiennent les librairies nécessaires aux commandes précédentes.
2.1. Choisir un système de fichiers
2.1.1. Principe
L’action de « formater » un disque, une clé ou tout support de données consiste uniquement à
créer sur un support de mémoire secondaire l’organisation logique permettant d’y placer des
données. Le mot « formatage » n’est quasiment jamais utilisé sous Linux. On parle de
système de fichiers qui est à la fois l’organisation logique des supports au niveau le plus bas
comme au niveau de l’utilisateur.
Si les principes de base sont souvent les mêmes entre les divers systèmes présents sous Linux,
les implémentations et les organisations logiques des données sur le disque varient fortement.
Aussi il n’existe pas un type de système de fichiers, mais plusieurs, au choix de l’utilisateur,
administrateur ou ingénieur.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 9
Le principe de base est d’associer un nom de fichier à son contenu et d’y permettre l’accès :
création, modification, suppression, déplacement, ouverture, lecture, écriture, fermeture.
Suivant ce principe, le système de fichiers doit gérer ce qui en découle : mécanismes de
protection des accès (les permissions, les propriétaires), les accès concurrents, etc.
Un fichier est décrit par des propriétés appelées les métadonnées. Sous Linux, il s’agit de
l’inode. Le contenu (les données) est placé dans d’autres blocs du support de stockage. Le
contenu des métadonnées diffère d’un système de fichiers à un autre.
2.1.2. Les filesystems sous Linux
2.1.2.1. ext2
Le « second extended filesystem » ext2 est considéré comme le système de fichiers
historique de Linux. ext2 est donc le premier système de fichiers développé spécifiquement
pour Linux, d’un niveau de production et aux normes Unix. ext2 n’est pas journalisé.
2.1.2.2. ext3
L’ext3 « third extended filesystem » est le successeur d’ext2 depuis 1999. Il est
journalisé. Surtout, il est entièrement compatible avec ext2. Le journal est une extension
d’ext2. Il est possible d’utiliser un système de fichiers ext3 comme étant ext2, avec les
mêmes commandes, les mêmes manipulations. Il est possible de transformer en quelques
secondes un système ext2 en ext3, et vice versa. C’est l’un des systèmes de fichiers de choix
pour Linux, et le plus utilisé actuellement pour sa souplesse.
2.1.2.3. ext4
L’ext4 « fourth extended filesystem » est une évolution d’ext3. Il présente de
nombreux avantages et optimisations par rapport à l'ancienne version, tout en assurant une
rétro-compatibilité.
2.1.2.4. reiserfs
reiserfs a été le premier système de fichiers intégré à Linux, avant même ext3. Sa force
réside, outre dans son journal, dans l’organisation indexée des entrées des répertoires et la
manipulation des fichiers de petite taille. Ses performances sont exceptionnelles en présence
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 10
de milliers de fichiers, de faible à moyen volume. Il est redimensionnable à chaud. Il devient
plus lent sur des gros fichiers.
2.1.2.5. xfs
xfs est le plus ancien des systèmes de fichiers journalisés sous Unix, datant de 1993. Outre
ses capacités de stockages, il a un système de journalisation très performant et des
mécanismes avancés comme la défragmentation en ligne, la capacité d’effectuer des
snapshots, le dimensionnement à chaud, la réservation de bande passante pour les entrées et
sorties, etc.
2.1.2.6. vfat
vfat (Virtual File Allocation Table) est un terme générique regroupant les diverses
versions de FAT supportant les noms de fichiers longs (255 caractères) sous Windows. Ces
systèmes de fichiers sont conservés et continuent d’être utilisés pour des raisons à la fois
historiques et pratiques. La plupart des supports amovibles, disques externes, clefs USB et
lecteurs MP3 utilisent un système de fichiers de ce type.
2.2. Disques durs et partitionnement
À l’installation, un disque dur n’est ni partitionné, ni formaté. Partitionner signifie définir
sur le disque un ou plusieurs espaces, ou partitions, et formater signifie préparer une partition
à recevoir des informations en utilisant un système de fichiers défini.
2.2.1. Les partitions
Une partition est définie par son type, son emplacement de début de partition et enfin soit sa
taille, soit son emplacement de fin de partition. Un partitionnement est réversible (non
physique).
Une seule partition est activée à la fois au niveau du BIOS : cette activation indique où le
BIOS doit aller chercher le noyau du système d’exploitation pour le démarrage.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 11
Il existe trois sortes de partitions :
 Les partitions principales : leur nombre est limité à quatre et elles supportent tous
types de systèmes de fichiers.
 La partition étendue : elle ne peut contenir que des partitions logiques et ne peut pas
recevoir de systèmes de fichiers. Elle ne peut exister que s’il existe une partition
principale.
 Les partitions logiques : elles sont contenues dans une partition étendue. Elles ne
sont pas limitées en nombre et acceptent tous types de systèmes de fichiers.
2.2.2. Organisation des partitions sous Linux
Les descripteurs de disques durs dans le répertoire /dev commencent par hd pour les
périphériques de type IDE ou par sd pour les périphériques de type SCSI. Une lettre
additionnelle est ajoutée au descripteur pour désigner le périphérique.
Il y a généralement deux contrôleurs IDE en standard sur un PC, chaque contrôleur supportant
deux périphériques (disques, lecteur de cédérom/DVD, lecteur ZIP, etc.).
Primaire Secondaire
Maître a c
Esclave b d
Tableau 2-1 : Désignation des périphériques IDE
 Pour le périphérique maître sur le contrôleur primaire : hda.
 Pour le périphérique esclave sur le contrôleur secondaire : hdd.
 Les périphériques SCSI sont désignés en fonction de leur position dans la chaîne SCSI
(sda, sdb, sdc, etc.).
 On utilise la commande fdisk pour configurer une nouvelle partition. Par exemple,
pour le premier disque IDE : fdisk /dev/hda.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 12
2.2.3. Formatage
Les commandes de création des principaux types de système de fichiers supportés par Linux
sont présentées dans le tableau suivant.
Système de fichiers Commande de création
ext2 mke2fs ou mkfs.ext2
ext3 mke2fs -j ou mkfs.ext3
reiserfs mkreiserfs
xfs mkfs.xfs
vfat mkfs.vfat
Tableau 2-2 : Commandes de création de systèmes de fichiers
 L'instruction générale de création d’un système de fichiers est :
 mkfs -t type-de-fichier partition.
 Exemples de formatage de la partition hda1 avec création d'un système de fichiers de
type ext3 (les trois commandes sont équivalentes) :
 mkfs.ext3 /dev/hda1
 mkfs -t ext3 /dev/hda1
 mke2fs -j /dev/hda1 # création du journal spécifique.
 Il est aussi très facile de transformer une partition ext2 en ext3 avec l'instruction
tune2fs pour créer le journal : tune2fs -j /dev/hda1.
2.2.4. Contrôle de l'intégrité du système de fichiers et réparation
 L'instruction générale de vérification du système de fichiers est :
 fsck -t type-de-fichier partition.
 Il existe des commandes équivalentes pour chaque type de système de fichiers, par
exemple fsck.ext3.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 13
 Une vérification de toutes les partitions est faite au démarrage du système par la
commande fsck.
 La commande e2fsck est équivalente à fsck –t ext2.
 L’utilitaire debugfs est utilisé pour examiner et modifier l’état d’un système de
fichiers formaté en ext2.
 L’utilitaire dumpe2fs permet d’afficher les informations d’un système de fichiers
formaté en ext2.
2.2.5. Montage et démontage d'un système de fichiers
Pour pouvoir utiliser un système de fichiers, celui-ci doit être monté sur un point de montage
de l'arborescence Linux : son contenu est alors accessible comme un simple répertoire.
La commande mount accepte deux arguments :
 Le premier est le fichier spécial correspondant à la partition contenant le système de
fichiers.
 Le second est le répertoire sous lequel il sera monté (point de montage).
La commande umount permet le démontage du système de fichiers.
 Exemple : pour monter et démonter une clé USB de type « flashdisk » décrite par le
fichier device sda1, on utilise les commandes suivantes :
 mount /dev/sda1 /mnt/flashdisk
 umount /mnt/flashdisk
Le fichier /etc/fstab est utilisé pour le montage automatique des systèmes de fichiers au
moment du démarrage du système.
Les commandes mount et umount utilisent le fichier fstab. Il est important que les données
de ce fichier soient complètes et exactes.
La commande mount –a monte tous les systèmes de fichiers répertoriés dans le fichier fstab.
Cette commande est généralement exécutée au moment de démarrage du système.
Chapitre 2. Système de fichiers Linux
Faycel CHAOUA Systèmes d’exploitation 2 14
La commande df permet de connaître le taux d'utilisation de toutes les partitions montées du
système. L'option -h (human readable) facilite la lecture en utilisant des unités de taille plus
commodes (Mo, Go, To, etc.).
La commande du (disk usage) est très pratique pour connaître l'espace occupé par une
arborescence. L'option -s permet d'afficher le total pour chaque élément et l'option -k de
l'afficher en kilo-octets : du -ks /usr/local.
Faycel CHAOUA Systèmes d’exploitation 2 15
Chapitre 3. Les commandes GNU/Linux
Chapitre 3 : Les commandes GNU/Linux
֍ Durée : 3 heures.
֍ Mots clés : Shell, chemin relatif, chemin absolu, redirection, gestionnaire de paquets,
pwd, ls, lsattr, du, cd, mkdir, rmdir, chmod, chattr, touch, file, iconv, tr, cat, more, less,
head, tail, tac, nl, wc, uniq, grep, sort, cut, paste, cp, ln, mv, split, rm, comm, diff, cat,
tee, find, locate, tar, gzip, bzip2, gunzip, bunzip2, unzip, man, which, whereis, whatis,
apropos.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Définir un interpréteur de commandes.
» Appliquer les commandes de manipulation des fichiers et répertoires.
» Distinguer les commandes d'archivage et de compression.
» Utiliser les commandes d'aide et d'informations.
Plan du chapitre :
3.1. Le Shell.......................................................................................................................... 18
3.1.1. Présentation............................................................................................................. 18
3.1.2. Les caractères spéciaux du Shell............................................................................. 18
3.1.2.1. Nom de fichiers et de répertoires ..................................................................... 18
3.1.2.2. Les autres caractères spéciaux.......................................................................... 19
3.2. Fichiers et répertoires .................................................................................................... 19
3.3. Redirections des entrées-sorties..................................................................................... 20
3.4. Les gestionnaires de paquets ......................................................................................... 21
3.5. Les principales commandes GNU/Linux ...................................................................... 21
3.5.1. Les commandes relatives aux répertoires ............................................................... 21
3.5.1.1. La commande « pwd » ..................................................................................... 22
3.5.1.2. La commande « ls » ......................................................................................... 22
Faycel CHAOUA Systèmes d’exploitation 2 16
3.5.1.3. La commande « lsattr ».................................................................................... 23
3.5.1.4. La commande « du »........................................................................................ 23
3.5.1.5. La commande « cd » ........................................................................................ 24
3.5.1.6. La commande « mkdir »................................................................................... 24
3.5.1.7. La commande « rmdir » ................................................................................... 24
3.5.1.8. La commande « chmod » ................................................................................. 24
3.5.1.9. La commande « chattr »................................................................................... 25
3.5.2. Les commandes relatives aux fichiers .................................................................... 26
3.5.2.1. La commande « touch » ................................................................................... 27
3.5.2.2. La commande « file »....................................................................................... 27
3.5.2.3. La commande « iconv » ................................................................................... 27
3.5.2.4. La commande « tr ».......................................................................................... 28
3.5.2.5. La commande « cat » ....................................................................................... 28
3.5.2.6. La commande « more ».................................................................................... 29
3.5.2.7. La commande « less »...................................................................................... 29
3.5.2.8. La commande « head »..................................................................................... 29
3.5.2.9. La commande « tail »....................................................................................... 30
3.5.2.10. La commande « tac » ..................................................................................... 30
3.5.2.11. La commande « nl »....................................................................................... 30
3.5.2.12. La commande « wc » ..................................................................................... 30
3.5.2.13. La commande « uniq »................................................................................... 31
3.5.2.14. La commande « grep »................................................................................... 31
3.5.2.15. La commande « sort ».................................................................................... 32
3.5.2.16. La commande « cut » ..................................................................................... 33
3.5.2.17. La commande « paste ».................................................................................. 33
3.5.2.18. La commande « cp » ...................................................................................... 34
3.5.2.19. La commande « ln »....................................................................................... 34
3.5.2.20. La commande « mv »..................................................................................... 34
3.5.2.21. La commande « split » ................................................................................... 35
3.5.2.22. La commande « rm »...................................................................................... 35
3.5.2.23. La commande « comm »................................................................................ 36
3.5.2.24. La commande « diff » .................................................................................... 36
3.5.2.25. La commande « tee » ..................................................................................... 37
Faycel CHAOUA Systèmes d’exploitation 2 17
3.5.2.26. La commande « find ».................................................................................... 37
3.5.2.27. La commande « locate »................................................................................. 38
3.5.3. Les commandes d'archivage et de compression...................................................... 39
3.5.3.1. La commande « tar »........................................................................................ 39
3.5.3.2. La commande « gzip » ..................................................................................... 40
3.5.3.3. La commande « bzip2 » ................................................................................... 40
3.5.3.4. La commande « gunzip » ................................................................................. 41
3.5.3.5. La commande « bunzip2 » ............................................................................... 41
3.5.3.6. La commande « unzip » ................................................................................... 42
3.5.4. Commandes d’aide et d’informations..................................................................... 42
3.5.4.1. La commande « man » ..................................................................................... 42
3.5.4.2. La commande « which » .................................................................................. 42
3.5.4.3. La commande « whereis »................................................................................ 42
3.5.4.4. La commande « whatis ».................................................................................. 43
3.5.4.5. La commande « apropos » ............................................................................... 43
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 18
3.1. Le Shell
3.1.1. Présentation
C'est un programme séparé du noyau qui réalise plusieurs tâches :
 interprète les commandes tapées au clavier par l'utilisateur et exécute les programmes.
 fournit à l'utilisateur un langage de programmation interprété.
 permet de modifier l'environnement de travail.
 réalise les redirections des entrées-sorties.
Il en existe plusieurs versions : le Bourne Shell (sh), le C Shell (csh), le Korn Shell (ksh), le
bash, le tcsh, etc.
Sous GNU/Linux, le Shell généralement utilisé est le bash.
3.1.2. Les caractères spéciaux du Shell
Un certain nombre de caractères ont une signification spéciale.
3.1.2.1. Nom de fichiers et de répertoires
Six caractères servent à générer les noms de fichiers ou de répertoires :
 . qui désigne le répertoire courant.
 .. qui désigne le répertoire père, c'est à dire celui qui se trouve immédiatement au-
dessus du répertoire courant dans la hiérarchie.
 ~ qui désigne le répertoire d'accueil.
 ? remplace un caractère quelconque.
 * remplace une chaîne de caractères quelconque (y compris une chaîne vide).
 [...] remplace les caractères entre crochets, définis par énumération ou par intervalle.
 Exemples :
 [Aa] désigne les caractères A ou a.
 [a-zA-Z] désigne un caractère alphabétique quelconque.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 19
3.1.2.2. Les autres caractères spéciaux
 # introduit un commentaire.
 $ introduit un nom de variable.
 & lance la commande en background.
 ; sépare 2 commandes tapées sur une même ligne.
 !! relance la commande précédente.
 !ch relance la dernière commande commençant par ch.
 !n relance la commande numéro n.
 ^ch1^ch2 remplace la chaîne ch1 par la chaîne ch2 dans la dernière commande.
 Exemple, si la dernière commande est : cat biodn.txt, la commande ^od^do
générera la ligne de commande : cat bidon.txt.
 <, <<, >, >> et | sont des caractères utilisés pour les redirections des entrées-sorties.
 ' délimite une chaîne de caractères contenant des espaces sans substitution de
variables.
 " délimite une chaîne de caractères contenant des espaces avec substitution de
variables.
  annule la signification du caractère spécial suivant.
 ( et ) font exécuter les commandes incluses dans un sous-Shell.
 { et } regroupent les commandes incluses en une liste.
3.2. Fichiers et répertoires
Un nom de fichier (ou de répertoire) peut être constitué de lettres minuscules, majuscules, de
chiffres et de quelques autres caractères comme « . », « _ », « - ».
Le « . » n'a pas la notion d'extension que l'on trouve, par exemple, sous Windows. Un nom de
fichier peut d'ailleurs comporter plusieurs « . ».
Les noms de fichiers Unix sont limités à 255 caractères et les chemins absolus à 1024.
Pour spécifier un nom de fichier, il est possible de donner soit son chemin relatif, soit son
chemin absolu.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 20
Le chemin absolu commence par la racine, notée / et indique le chemin à parcourir depuis
celle-ci jusqu'au répertoire ou fichier désiré.
Par exemple /home/user1/tp/tp1.f est le chemin absolu jusqu'au fichier tp1.f, lui-même
contenu dans le sous-répertoire tp de l'utilisateur user1.
Le chemin relatif commence par un nom de fichier ou de répertoire, ou éventuellement par un
des 3 caractères spéciaux du Shell : « . », « .. » et « ~ ».
Par exemple, le fichier désigné précédemment par son chemin absolu peut également être
désigné par son chemin relatif. En supposant que l'utilisateur user1 se trouve dans son
répertoire d'accueil on peut désigner le fichier par : tp/tp1.f ou ./tp/tp1.f ou
../user1/tp/tp1.f ou ~/tp/tp1.f.
3.3. Redirections des entrées-sorties
Il est possible, sous Unix, de rediriger l'entrée ou la sortie d'une commande :
 < : redirection de l'entrée.
 Exemple : grep abc < essai, la chaîne abc est recherchée dans le fichier
essai.
 > : redirection de la sortie.
 Exemple : ls > liste, le résultat de la commande ls est copié dans le fichier
liste. Si le fichier n'existe pas, il est créé, sinon son contenu est écrasé.
 >> : redirection de la sortie avec concaténation.
 Exemple : ls >> liste2, si le fichier liste2 n'existe pas, il est créé, sinon le
résultat de la commande ls est ajouté à la fin du fichier liste2.
 | : redirection de la sortie d'une commande sur l'entrée de la commande suivante.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 21
 Exemple : ls | grep *.c, la sortie de la commande ls sert d'entrée à la
commande grep. Ici, on cherche tous les fichiers sources C dans le répertoire
courant.
3.4. Les gestionnaires de paquets
Dans les distributions GNU/Linux, un paquet (package) est un fichier d'archives compressé
contenant l'ensemble des fichiers nécessaires au fonctionnement d'une application donnée.
Les paquets contiennent aussi la liste des autres paquets (dépendances) dont l'application a
besoin.
Il existe de nombreuses distributions GNU/Linux. Les plus courantes sont :
 La distribution "Debian" et ses dérivées (Ubuntu, Mint, Linspire, Mepis, etc.) qui
utilisent le format .deb.
 La distribution "RedHat" et ses dérivées (CentOS, Fedora, Mandriva, Scientific Linux,
etc.) ainsi que "openSUSE" qui utilisent le format .rpm.
3.5. Les principales commandes GNU/Linux
Le format d'une commande est généralement de la forme :
commande [-option1] [-option2] [-optionn] [arg1] [arg2] [argn] ...
Les options et arguments forment ce que l'on appelle les paramètres de la commande. Les
arguments présentent généralement un ou plusieurs noms de fichiers ou de répertoires.
GNU/Linux est sensible à la casse, c'est-à-dire qu’il fait la différence entre une majuscule et
une minuscule. Ainsi "essai", "Essai" ou "ESSAI" désignent des fichiers différents.
3.5.1. Les commandes relatives aux répertoires
 Afficher le chemin absolu du répertoire courant : pwd
 Afficher le contenu d'un répertoire : ls
 Afficher les attributs de répertoires : lsattr
 Afficher la taille d'un répertoire : du
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 22
 Changer de répertoire : cd
 Créer un répertoire : mkdir
 Supprimer un répertoire : rmdir
 Changer les droits d'accès aux répertoires : chmod
 Changer les attributs de répertoires : chattr
3.5.1.1. La commande « pwd »
La commande pwd affiche le chemin absolu du répertoire courant.
 Syntaxe : pwd
3.5.1.2. La commande « ls »
La commande ls affiche le contenu d'un répertoire ou d'une liste de fichiers.
 Syntaxe : ls [-alrtR] répertoire ou ls [-alrtR] fichiers
 Options principales :
 -a : affiche également les fichiers commençant par un point.
 -l : affiche en format long c'est à dire avec type (répertoire, fichier), droits
d'accès, nombre de liens, nom du propriétaire, nom du groupe, taille en octets,
date de dernière modification, nom.
 -r : inverse l'ordre du tri.
 -t : trie par date de dernière modification.
 -R : récursif.
 Exemples :
 ls -aR ~ : affiche la liste des fichiers et sous-répertoires contenus dans le
répertoire d'accueil de l'utilisateur.
 ls *.c : affiche la liste de tous les fichiers sources C du répertoire courant.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 23
3.5.1.3. La commande « lsattr »
La commande lsattr affiche les attributs de répertoires ou de fichiers dans un filesystem
ext2, ext3 ou ext4.
 Syntaxe : lsattr [-Rad] répertoires ou lsattr fichiers
 Options principales :
 -R : liste récursivement les attributs d'un (des) répertoire(s).
 -a : liste tous les fichiers du (des) répertoires y compris les fichiers
commençant par « . ».
 -d : affiche les répertoires comme les fichiers plutôt que d'afficher leur
contenu.
3.5.1.4. La commande « du »
La commande du affiche la taille d'un répertoire.
 Syntaxe : du [-ask] répertoire
 Options principales :
 -a : affiche la taille de tous les fichiers.
 -s : affiche le total de chaque répertoire.
 -k : affiche le résultat en kilo-octets (et non en blocs de 512 octets).
 Exemples :
 du -k affiche en kilo-octet la taille des fichiers (ou sous-répertoires) du
répertoire courant.
 du -sk ~/tp affiche en kilo-octet la taille totale du répertoire tp contenu dans
le répertoire d'accueil de l'utilisateur.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 24
3.5.1.5. La commande « cd »
La commande cd change le répertoire courant.
 Syntaxe : cd répertoire
 Exemples :
 cd /home/user1/tp fait passer dans le répertoire tp de l'utilisateur user1.
C'est équivalent à cd ~user1/tp.
 En tapant cd (sans argument), on se retrouve dans le répertoire d'accueil.
3.5.1.6. La commande « mkdir »
La commande mkdir crée un répertoire.
 Syntaxe : mkdir [-p] répertoire
 Option principale : -p crée le(s) répertoire(s) intermédiaire(s).
 Exemple : on veut créer le sous-répertoire tp1 dans le répertoire tp. Si tp existe déjà,
on tape mkdir tp/tp1 sinon mkdir -p tp/tp1 qui crée tp et tp1.
3.5.1.7. La commande « rmdir »
La commande rmdir supprime un répertoire si et seulement s’il est vide. Sinon, il faut utiliser
la commande rm.
 Syntaxe : rmdir répertoire
 Exemple : rmdir tp2 supprime le répertoire tp2 s’il est vide.
3.5.1.8. La commande « chmod »
La commande chmod change les droits d'accès aux répertoires ou aux fichiers. On ne peut
modifier les droits d'accès à un ou plusieurs répertoires ou fichiers que si l'on en est
propriétaire.
 Syntaxe : chmod [-R] [ugoa] [+/-r] [+/-w] [+/-x] répertoire(s) ou :
chmod [ugoa] [+/-r] [+/-w] [+/-x] fichier(s)
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 25
 Type d'utilisateur :
 u : propriétaire (user).
 g : groupe du propriétaire (group).
 o : les autres (other).
 a : tous (all).
 Type d'action :
 + signifie qu'on ajoute des droits d'accès.
 - signifie qu'on enlève des droits d'accès.
 Type d'accès :
 r : lecture (read permission).
 w : écriture (write permission).
 x : exécution (execute permission).
 Exemple : chmod -R g+r tp donne les accès en lecture au sous-répertoire tp à tous
les membres du groupe.
3.5.1.9. La commande « chattr »
La commande chattr change les attributs de répertoires ou de fichiers dans un filesystem
ext2, ext3 ou ext4.
 Syntaxe : chattr [-Rvf][mode] répertoires ou : chattr [-Vf][mode] fichiers
 Options principales :
 -R : change récursivement les attributs d'un répertoire.
 -V : affichage en mode verbeux.
 -f : supprime la plupart des messages d'erreur.
 Attributs : Le format du mode est [+-=][acdeijstuADST]
 l'opérateur + ajoute l'attribut.
 l'opérateur - retire l'attribut.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 26
 l'opérateur = définit l'attribut.
3.5.2. Les commandes relatives aux fichiers
 Modifier le timestamp de dernier accès et de dernière modification d'un fichier : touch
 Identifier le type d'un fichier : file
 Convertir l'encodage : iconv
 Transposer ou éliminer des caractères : tr
 Afficher le contenu d'un fichier :
 en entier : cat
 page par page : more, less
 le début : head
 la fin : tail
 en ordre inverse : tac
 précédé des numéros de lignes : nl
 Compter les mots et les lignes d'un fichier : wc
 Rechercher les lignes multiples dans un fichier : uniq
 Chercher une chaîne de caractères dans un fichier : grep
 Trier les champs d'un fichier : sort
 Extraire des champs d'un fichier : cut
 Ajouter des champs à un fichier : paste
 Copier un fichier : cp
 Créer un lien sur un fichier : ln
 Déplacer ou changer le nom d'un fichier : mv
 Découper un fichier : split
 Supprimer un fichier : rm
 Comparer 2 fichiers :
 Rechercher les lignes identiques : comm
 Rechercher les lignes différentes : diff
 Concaténer 2 fichiers : cat
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 27
 Copier l'entrée standard sur la sortie standard et dans un fichier : tee.
 Rechercher un fichier :
 Rechercher dans un répertoire : find
 Rechercher dans une base de données : locate
3.5.2.1. La commande « touch »
La commande touch modifie le timestamp de dernier accès et de dernière modification d'un
fichier. Si aucun fichier n’est spécifié en argument, un fichier vide est créé avec l'horodatage
courant.
3.5.2.2. La commande « file »
La commande file identifie le type d'un fichier (fichier texte ; fichier archivé, compressé ou
codé ; fichier non imprimable ; fichier image). Si file ne reconnaît pas le type d'un fichier, il
affiche data.
 Syntaxe : file fichier
 Exemple : file Fich1 renvoie ASCII text.
3.5.2.3. La commande « iconv »
La commande iconv convertit l'encodage.
 Syntaxe : iconv -f oldcode -t newcode entree -o sortie
 Exemple : iconv -f latin1 -t utf8 test.iso -o test.unic convertit le fichier
test.iso en test.unic de l'encodage iso-latin en utf-8.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 28
3.5.2.4. La commande « tr »
La commande tr transpose ou élimine des caractères.
 Syntaxe : tr [-cstd] chaine1 chaine2
 Options principales :
 -c ou --complement : remplace chaine1 par son complément c'est à dire tous
les caractères n'appartenant pas à chaine1.
 -s ou --squeeze-repeats : remplace chaque répétition de caractères
appartenant à chaine1 par une seule occurrence de ce caractère.
 -d ou --delete car : supprime tous les caractères car présents dans
chaine1.
 Exemples :
 Convertir de minuscules en majuscules (de 3 manières différentes) :
 tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
 tr a-z A-Z
 tr '[:lower:]' '[:upper:]'
 Afficher chaque mot sur une ligne indépendante en convertissant tous les
caractères non alphanumériques en sauts de lignes, puis en regroupant les
lignes blanches successives en un seul saut de ligne : tr -cs '[a-zA-Z0-9]'
'[n*]'.
 Convertir les séquences de sauts de lignes en un seul saut de ligne donc en
supprimant les lignes blanches : tr -s 'n'.
3.5.2.5. La commande « cat »
La commande cat affiche le contenu d'un fichier.
 Syntaxe : cat [-n] fichier
 Option principale : -n numérote les lignes
 Exemples :
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 29
 cat -n essai1 : affiche le fichier essai1 à l'écran en numérotant les lignes.
 cat essai1 essai2 : affiche à l'écran le fichier essai1 puis le fichier
essai2.
3.5.2.6. La commande « more »
La commande more affiche le contenu d'un fichier page par page.
 Syntaxe : more [-c] fichier
 Option principale : -c efface la fenêtre avant l'affichage.
 Exemple : more essai.c affiche la première page du fichier essai.c.
 La touche espace permet d’afficher la page suivante.
 La touche [ Enter] permet d’afficher la ligne suivante.
 La touche h permet d’accéder à l'aide en ligne.
 La touche q permet de quitter.
3.5.2.7. La commande « less »
La commande less affiche le contenu d'un fichier page par page. Elle peut être considérée
comme le successeur de more. Elle fait la même chose mais offre davantage de possibilités,
comme le retour en arrière.
 Syntaxe : less [-c] fichier
 Option principale : -c efface la fenêtre avant l'affichage.
3.5.2.8. La commande « head »
La commande head affiche le début d'un fichier.
 Syntaxe : head [-n] fichier
 Option principale : -n affiche les n premières lignes du fichier. Par défaut, n = 10.
 Exemple : head -10 *.c affiche les 10 premières lignes de tous les fichiers sources C
du répertoire courant.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 30
3.5.2.9. La commande « tail »
La commande tail affiche la fin d'un fichier.
 Syntaxe : tail [-n] fichier
 Option principale : -n affiche les n dernières lignes du fichier. Par défaut, n = 10.
 Exemple : tail -50 essai affiche les 50 dernières lignes du fichier essai.
3.5.2.10. La commande « tac »
La commande tac affiche le contenu d'un fichier en ordre inverse, c'est à dire en commençant
par la fin.
 Syntaxe : tac fichier
 Exemple : tac essai.txt : affiche le fichier essai.txt en ordre inverse, c'est à dire
en commençant par la fin.
3.5.2.11. La commande « nl »
La commande nl affiche les lignes d'un fichier précédées de leur numéro.
 Syntaxe : nl [-ba] fichier
 Options principales : -ba numérote aussi les lignes blanches (ou vides).
 Exemple : nl -ba essai.c affiche toutes les lignes du fichier essai.c précédées de
leur numéro.
3.5.2.12. La commande « wc »
La commande wc compte le nombre de lignes, de mots ou de caractères d'un fichier.
 Syntaxe : wc [-clw] fichier
 Options principales :
 -c : renvoie le nombre de caractères (octets).
 -l : renvoie le nombre de lignes.
 -w : renvoie le nombre de mots.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 31
 Exemple : wc -l essai.c renvoie le nombre de lignes du fichier essai.c.
3.5.2.13. La commande « uniq »
La commande uniq recherche les lignes consécutives identiques dans un fichier.
 Syntaxe : uniq [-udc] fichier
 Options principales :
 -u : affiche les lignes consécutives identiques une seule fois.
 -d : n'affiche que les lignes consécutives identiques.
 -c : chaque ligne est précédée de son nombre d'occurrences.
3.5.2.14. La commande « grep »
La commande grep recherche une (ou plusieurs) expression(s) dans un fichier.
 Syntaxe : grep [-cilnrvE] expression fichier
 Options principales :
 -c : affiche le nombre de lignes contenant l'expression.
 -i : contrairement à la plupart des commandes, l'option -i ne signifie pas
interactif mais ignore-case, c'est à dire que grep ne fera pas de différence
entre minuscules et majuscules.
 -l : n'affiche que le nom des fichiers contenant l'expression.
 -n : affiche les numéros des lignes contenant l'expression.
 -r : recherche récursivement dans les sous-répertoires du répertoire courant.
 -v : inverse la recherche, c'est à dire affiche les lignes ne contenant pas
l'expression.
 -w : recherche exactement l'expression et non les mots contenant l'expression.
 -E ou --extended-regexp : expression régulière étendue qui permet de
rechercher plusieurs expressions en même temps.
 -A n : affiche n lignes supplémentaires après les lignes qui concordent.
 -B n : affiche n lignes supplémentaires avant lignes qui concordent.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 32
 Exemples :
 grep -i -c 'integer' * : affiche le nombre de fois où les expressions
integer, Integer ou INTEGER sont rencontrées dans chaque fichier du
répertoire courant.
 grep -Eir "fortran|Python" /codes : cherche les chaînes fortran ou
Python, sans tenir compte de la casse, dans le répertoire /codes et ses sous-
répertoires.
3.5.2.15. La commande « sort »
La commande sort trie les champs d'un fichier.
 Syntaxe : sort [-fnru] [-t car] [+i] [-j] [-o sortie] fichier
 Options principales :
 -f : ne tient pas compte des minuscules et majuscules.
 -n : trie numérique et non alphabétique.
 -r : inverse l'ordre de tri.
 -u : n'affiche qu'une fois les lignes multiples.
 -t car : indique le caractère séparateur de champs (par défaut, c'est l'espace).
 -o sortie : écrit le résultat dans le fichier sortie.
 +i : on trie à partir du i-ième champ. i=0, 1, ….
 -j : on trie jusqu'au j-ième champ.
 Exemples :
 sort +1 liste trie le fichier liste (liste de prénoms et noms, e.g. Robert
BIDOCHON) par ordre alphabétique des noms.
 sort -n -t : +1 -2 adresses : trie le fichier adresses (liste de prénoms,
numéros de téléphone et villes, e.g. robert:0380234567:Dijon) par numéros de
téléphones.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 33
3.5.2.16. La commande « cut »
La commande cut extrait des champs d'un fichier.
 Syntaxe : cut [-cf] [-d car] [+i] [-j] fichier
 Options principales :
 -c : extrait suivant le nombre de caractères.
 -f : extrait suivant le nombre de champs.
 -d car : indique le caractère séparateur de champs (par défaut, c'est la
tabulation).
 +i : on trie à partir du i-ième champ. i=1, 2, ….
 -j : on trie jusqu'au j-ième champ.
 Exemples :
 cut -c10 adresses : extrait les 10 premiers caractères de chaque ligne.
 cut -d : -f2 adresses : extrait le deuxième champ.
3.5.2.17. La commande « paste »
La commande paste ajoute des champs à un fichier.
 Syntaxe : paste [-s] [-d car] fichier1 fichier2
 Options principales :
 -s : les lignes sont remplacées par des colonnes.
 -d car : indique le caractère séparateur de champs (par défaut, c'est la
tabulation).
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 34
3.5.2.18. La commande « cp »
La commande cp copie de fichier. Pour copier plusieurs fichiers d'un seul coup, il faut utiliser
les caractères spéciaux du Shell.
 Syntaxe : cp [-ipr] source cible
 Option principale : -p le fichier cible conserve les permissions et la date de dernière
modification du fichier source (au lieu de la date courante).
 Exemples :
 cp tp1/* tp2 : copie tous les fichiers du répertoire tp1 dans le répertoire tp2.
 cp -ir tp1 tp2 : copie le répertoire tp1 dans le répertoire tp2 en demandant
confirmation à chaque fichier.
3.5.2.19. La commande « ln »
La commande ln crée un lien sur un fichier.
 Syntaxe : ln [-s] source cible
 Option principale : -s crée un lien symbolique. Créer un lien revient à définir un alias
à un fichier qui existe déjà. Un lien ne peut se faire qu'entre fichiers d'un même
filesystem. Sinon il faut utiliser l'option -s. De manière générale, il est recommandé
d'utiliser systématiquement l'option -s.
 Exemple : ln -s Mon_Fichier Mon_lien.
3.5.2.20. La commande « mv »
La commande mv déplace ou change le nom d'un fichier.
 Syntaxe : mv [-fi] source cible. Si cible est un nom de fichier, source est
renommé en cible. Si cible est un nom de répertoire, source est déplacé dans le
répertoire cible.
 Option principale : -f force la commande.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 35
 Exemples :
 mv essai1 essai2 renomme le fichier essai1 en essai2.
 mv tp11.c tp/tp1 : déplace le fichier tp11.c dans le répertoire tp/tp1.
3.5.2.21. La commande « split »
La commande split découpe un fichier.
 Syntaxe : split [-n] fichier [nom]
 Options principales :
 -n : découpe fichier en fichiers de n lignes (par défaut, 1000 lignes).
 nom : par défaut les fichiers créés sont nommés xaa, xab, xac, ... jusqu'à xzz.
Avec cette option, on remplace x par nom : on obtient donc les fichiers nomaa,
nomab, etc.
 Exemple : split -100 essai.c petit découpe le fichier essai.c en fichiers de
100 lignes nommés petitaa, petitab, etc.
3.5.2.22. La commande « rm »
La commande rm supprime un fichier ou un répertoire.
 Syntaxe : rm [-if] fichier ou rm [-if] -r répertoire
 Options principales :
 -i : le système demande confirmation avant la suppression définitive.
 -f : force la commande.
 Exemples :
 rm essai2 : suppression du fichier essai2.
 rm -r tp : suppression du répertoire tp.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 36
3.5.2.23. La commande « comm »
La commande comm recherche les lignes identiques à 2 fichiers.
 Syntaxe : comm [-123] fichier1 fichier2. Elle sépare les lignes en 3 groupes :
1. Les lignes présentes seulement dans le premier fichier.
2. Les lignes présentes seulement dans le deuxième fichier.
3. Les lignes présentes seulement dans les 2 fichiers.
 Options :
 -1 : n'affiche pas les lignes du premier groupe.
 -2 : n'affiche pas les lignes du deuxième groupe.
 -3 : n'affiche pas les lignes du troisième groupe.
3.5.2.24. La commande « diff »
La commande diff recherche les lignes différentes à 2 fichiers.
 Syntaxe : diff fichier1 fichier2
 Options principales :
 -b : ignore les espaces.
 -i : contrairement à la plupart des commandes, l'option -i ne signifie pas
interactif mais ignore-case, c'est à dire que diff ne fera pas de différence
entre minuscules et majuscules.
 -w : ignore les espaces et les tabulations.
 --side-by-side : affiche le contenu des 2 fichiers côte à côte et non pas l'un
au dessous de l'autre.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 37
3.5.2.25. La commande « tee »
La commande tee copie l'entrée standard sur la sortie standard, et dans tous les fichiers
fournis en argument.
Si un fichier n'existe pas, il est créé. Si le fichier existe déjà, il est écrasé, à moins que l'option
-a soit précisée.
 Syntaxe : tee [-ai][--append][--ignore-interrupts][--help][fichier...]
 Options principales :
 -a, --append : Ajouter l'entrée standard aux fichiers indiqués plutôt que de les
écraser.
 --help : Afficher un message d'aide sur la sortie standard et se terminer
normalement.
 -i, --ignore-interrupts : Ignorer les signaux d'interruption.
3.5.2.26. La commande « find »
La commande find recherche un (ou plusieurs) fichier(s) dans un répertoire. Cette commande
est automatiquement récursive.
 Syntaxe : find chemin critères
 Options principales :
 -print affiche le résultat de la recherche.
 -name recherche sur le nom du fichier.
 -type recherche sur le type (d : répertoire, c : caractère, f : fichier).
 -size n : recherche sur la taille du fichier.
 -amin n : le fichier a été accédé il y a n minutes.
 -atime n : le fichier a été accédé il y a n fois 24 heures.
 -cmin n : le statut du fichier a changé il y a n minutes.
 -ctime n : le statut du fichier a changé il y a n fois 24 heures.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 38
Pour les options -size, -amin, -atime, -cmin, et -ctime, on peut préciser :
 n : exactement n.
 -n : inférieur à n.
 +n : supérieur à n.
Ces options peuvent être combinées aux moyens des opérateurs logiques :
 -o : OU logique
 -a : ET logique
 ! : NON logique
 Exemples :
 find . -name tp1 -print : cherche le fichier ou le répertoire tp1 dans le
répertoire courant.
 find tp -name '*.c' -print : cherche tous les fichiers sources C dans le
répertoire tp.
 find tp -type d -print : cherche tous les sous-répertoires contenus dans le
répertoire tp.
 find . -size +1954 -print : cherche tous fichiers dont la taille est
supérieure à 1954 blocs (environ 1 Mo) dans le répertoire courant.
 find tp ( -name '*.c' -o -name '*.f' ) : cherche tous les fichiers
sources C ou FORTRAN dans le répertoire tp.
 find . ( -name '*.py' -a -amin -1000 ) : cherche tous les fichiers
Python accédés depuis moins de 1000 minutes.
3.5.2.27. La commande « locate »
La commande locate liste des fichiers d’une base de données correspondant à un motif. On
peut mettre à jour manuellement la base de données en utilisant la commande updatedb.
 Syntaxe : locate fichier
 Options principales :
 -i effectue une recherche non sensible à la casse.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 39
 -n X limite le nombre de résultats affichés au nombre X choisi,
 -r X ou --regexp=X recherche des fichiers dans la base de données en
utilisant une expression rationnelle X.
 Exemple : locate -i -n 12 toto | grep bin : affichera les douze premiers
résultats pour la requête non sensible à la casse de la chaîne toto en se limitant à ceux
dans lesquels la chaîne bin apparaît aussi, par exemple : /usr/bin/ToTo,
/mnt/bintoto ou encore /home/totoro/bin.
3.5.3. Les commandes d'archivage et de compression
 Archivage des données :
 tar
 Compression des données :
 gzip
 bzip2
 Décompression des données :
 gunzip
 bunzip2
 unzip pour les fichiers MS-DOS.
3.5.3.1. La commande « tar »
La commande tar archive des données.
 Syntaxe : tar [crtx][v]f cible source
 Type d'action :
 c : création d'une archive.
 r : ajout de fichier(s) ou de répertoire(s) à la fin d'une archive.
 t : liste du contenu d'une archive.
 x : extraction d'une archive.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 40
 Options principales :
 v : la commande affiche au fur et à mesure tout ce qu'elle fait.
 f : précise le nom du fichier cible.
 Exemples :
 tar cf tp.tar tp : le répertoire tp est archivé en tp.tar.
 tar rf tp.tar tp2 : ajoute le répertoire tp2 à la fin de l'archive tp.tar.
 tar tvf tp.tar : liste le contenu de l'archive tp.tar.
 tar xf tp.tar : extrait l'archive tp.tar, c'est à dire recrée le répertoire tp.
3.5.3.2. La commande « gzip »
La commande gzip compresse des données.
 Syntaxe : gzip [-h][-rtv] source
 Options principales :
 -h : affiche la liste des options de gzip.
 -r : récursif. Dans ce cas source est un répertoire.
 -t : teste l'intégrité d'un fichier compressé.
 -v : la commande affiche au fur et à mesure tout ce qu'elle fait.
 -1 : compresse plus vite. Le résultat est plus gros.
 -9 : compresse mieux mais plus lentement.
 Exemple : gzip tp.tar compresse le fichier tp.tar en tp.tar.gz.
3.5.3.3. La commande « bzip2 »
La commande bzip2 compresse des données.
 Syntaxe : bzip2 [-h][-tv] source
 Options principales :
 -h : affiche la liste des options de bzip2.
 -t : teste l'intégrité d'un fichier compressé.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 41
 -v : la commande affiche au fur et à mesure tout ce qu'elle fait.
 -1 : compresse plus vite. Le résultat est plus gros.
 -9 : compresse mieux mais plus lentement.
 Exemple : bzip2 tp.tar compresse le fichier tp.tar en tp.tar.bz2.
3.5.3.4. La commande « gunzip »
La commande gunzip décompresse des données.
 Syntaxe : gunzip [-h][-tv][-S suf] source.gz
 Options principales :
 -h : affiche la liste des options de gunzip.
 -t : teste l'intégrité du fichier compressé.
 -v : la commande affiche au fur et à mesure tout ce qu'elle fait.
 -S suf : autorise le suffixe .suf au lieu de .gz.
 Exemple : gunzip tp.tar.gz décompresse le fichier tp.tar.gz en tp.tar. La
commande gzip –d donne le même résultat.
3.5.3.5. La commande « bunzip2 »
La commande bunzip2 décompresse des données.
 Syntaxe : bunzip2 [-h][-tv] source.bz2
 Options principales :
 -h : affiche la liste des options de bunzip2.
 -t : teste l'intégrité du fichier compressé.
 -v : la commande affiche au fur et à mesure tout ce qu'elle fait.
 Exemple : bunzip2 tp.tar.bz2 décompresse le fichier tp.tar.bz2 en tp.tar. La
commande bzip2 –d donne le même résultat.
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 42
3.5.3.6. La commande « unzip »
La commande unzip décompresse des fichiers MS-DOS.
 Syntaxe : unzip [-h] source.zip ou unzip [-h] source.ZIP
 Option principale : -h affiche la liste des options de unzip.
 Exemple : unzip UTILS.ZIP décompresse le fichier UTILS.ZIP.
3.5.4. Commandes d’aide et d’informations
3.5.4.1. La commande « man »
La commande man affiche les pages de manuel expliquant les différentes commandes, leurs
fonctionnements et leurs options.
 Syntaxe : man commande
 Exemple : man ls
3.5.4.2. La commande « which »
La commande which permet de trouver l'emplacement d'une commande en effectuant sa
recherche par rapport au contenu de la variable PATH, et retourne le chemin du premier fichier
correspondant.
 Syntaxe : which commande
 Exemple : which ls
3.5.4.3. La commande « whereis »
La commande whereis fonctionne de façon similaire à which, peut aussi chercher dans les
pages de manuel (man) et les codes sources.
 Syntaxe : whereis commande
 Exemple : whereis ls
Chapitre 3. Les commandes GNU/Linux
Faycel CHAOUA Systèmes d’exploitation 2 43
3.5.4.4. La commande « whatis »
La commande whatis cherche des commandes dans l'intégralité des systèmes de fichiers
comme which mais utilise une base de données qui contient une courte description ainsi que
des mots clés.
La base de données est créée en utilisant la commande makewhatis.
 Syntaxe : whatis commande
 Exemple : whatis who
3.5.4.5. La commande « apropos »
La commande apropos utilise la même base de données que whatis, mais donne plus
d'informations.
 Syntaxe : apropos commande
 Exemple : apropos who
Faycel CHAOUA Systèmes d’exploitation 2 44
Chapitre 4. Permissions d'accès aux Fichiers
Chapitre 4 : Permissions d'accès aux Fichiers
֍ Durée : 1 heure 30 minutes.
֍ Mots clés : chmod, umask, SUID, SGID, Sticky Bit, chown, chgrp.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Modifier les droits d'accès sur les fichiers et les répertoires.
» Examiner les droits spéciaux.
» Modifier le propriétaire et le groupe sur les fichiers et les répertoires.
Plan du chapitre :
4.1. Les droits sur les fichiers et les répertoires.................................................................... 45
4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires.......................... 47
Chapitre 4. Permissions d’accès aux fichiers
Faycel CHAOUA Systèmes d’exploitation 2 45
4.1. Les droits sur les fichiers et les répertoires
Linux permet de spécifier les droits dont disposent les utilisateurs sur un fichier ou un
répertoire par la commande chmod.
On distingue trois catégories d'utilisateurs :
 u : le propriétaire (user).
 g : le groupe.
 o : les autres (others).
Ainsi que trois types de droits :
 r : lecture (read).
 w : écriture (write).
 x : exécution.
 - : aucun droit.
Exemples :
 pour donner le droit de lire le fichier liste.txt au propriétaire du fichier :
chmod u+r liste.txt
 pour autoriser une personne du groupe propriétaire du fichier à modifier le fichier :
chmod g+w liste.txt
 pour autoriser les autres utilisateurs à exécuter le fichier commande.sh :
chmod o+x commande.sh
Les droits d'accès peuvent aussi s'exprimer en notation octale. Les correspondances sont
indiquées dans le tableau 4-1 suivant.
On peut utiliser la notation octale pour les droits avec la commande chmod, cela permet de
positionner plusieurs types de droits en une seule commande.
Chapitre 4. Permissions d’accès aux fichiers
Faycel CHAOUA Systèmes d’exploitation 2 46
Exemples :
 attribuer les droits rw------- à tous les fichiers : chmod 600 *
 attribuer les droits rw-r--r-- à tous les fichiers : chmod 644 *
 attribuer les droits rwxr-x--- à tous les fichiers : chmod 750 *
Droit Notion octale Droit Notion octale
--- 0 r-- 4
--x 1 r-x 5
-w- 2 rw- 6
-wx 3 rwx 7
Tableau 4-1 : Expression des droits sur les fichiers en notation octale
Lorsqu’on crée un nouveau fichier, ce dernier possède certains droits par défaut. La
commande umask permet de changer ces droits par défaut. Les droits sont indiqués de façon
"inverse" en notation octale pour les droits de type r et w seulement.
 Pour créer des fichiers en mode rw-r--r-- : umask 022
 Pour créer des fichiers en mode ------- : umask 666
Les droits spéciaux
Il existe trois droits spéciaux, SUID, SGID et Sticky Bit. Ils peuvent être positionnés par la
commande chmod (premier groupe de droits exprimés en octal) :
 SUID (Set User ID) : Ce droit s'applique aux fichiers exécutables, il permet d'allouer
temporairement à un utilisateur les droits du propriétaire du fichier. Par exemple, la
commande /usr/bin/passwd permet d’acquérir les droits de root pour modifier le
fichier /etc/shadow.
Le bit SUID est positionné par l’option s de la commande chmod, ou bien en
positionnant à 1 le premier bit du groupe des droits spéciaux (d’où la valeur 4 de
l’exemple suivant) :
 chmod 4755 /bin/cat
 chmod u+s /bin/grep
Chapitre 4. Permissions d’accès aux fichiers
Faycel CHAOUA Systèmes d’exploitation 2 47
 SGID (Set Group Id) : ce droit fonctionne de la même façon que le droit SUID en ce
qui concerne les exécutables mais en donnant à l’utilisateur les droits du groupe
auquel appartient le propriétaire de l'exécutable.
Le SGID peut aussi être attribué à un répertoire : dans ce cas tout fichier créé dans un
répertoire portant le SGID aura comme groupe propriétaire le groupe du répertoire.
Ce bit est positionné par l'option s de la commande chmod, ou bien en positionnant à 1
le deuxième bit du groupe des droits spéciaux (d’où la valeur 2 de l’exemple suivant) :
 chmod 2755 /home/lpi102
 chmod g+s /home/lpi102
 Sticky Bit : si le Sticky Bit est positionné sur un répertoire, seul le propriétaire
d'un fichier contenu dans ce répertoire pourra le renommer ou le supprimer, mais tous
les utilisateurs pourront y avoir accès. Le Sticky Bit est par exemple toujours
positionné sur les répertoires /tmp ou /var/mail/.
Ce bit est positionné par l'option t de la commande chmod, ou bien en positionnant à 1
le troisième bit du groupe des droits spéciaux (d’où la valeur 1 de l’exemple suivant) :
 chmod 1666 /home/lpi/partagé
 chmod o+t /home/lpi/partagé
Historiquement, le Sticky Bit positionné sur un fichier indiquait au système de le
maintenir en mémoire à la suite d’un premier chargement pour des questions
d’efficacité.
4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires
La commande chown permet de spécifier le propriétaire d’un fichier ou d’un répertoire :
chown le_propriétaire /home/lpi/monfichier
Linux permet de spécifier le groupe d’un fichier ou d’un répertoire par la commande chgrp :
chgrp le_groupe /home/lpi/monfichier
Faycel CHAOUA Systèmes d’exploitation 2 48
Chapitre 5. Gestion des utilisateurs et des groupes
Chapitre 5 : Gestion des utilisateurs et des groupes
֍ Durée : 1 heure 30 minutes.
֍ Mots clés : useradd, usermod, userdel, id, newgrp, groups, groupadd, groupmod,
groupdel, passwd, gpasswd, /etc/passwd, /etc/shadow, /etc/group, /etc/login.defs,
chage.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Gérer les comptes utilisateurs et les groupes.
» Interpréter les fichiers de configuration des utilisateurs et des groupes.
Plan du chapitre :
5.1. Les utilisateurs............................................................................................................... 49
5.2. Les groupes.................................................................................................................... 50
5.3. Les fichiers de configuration ......................................................................................... 51
5.3.1. Gestion des utilisateurs ........................................................................................... 51
5.3.2. Gestion des groupes ................................................................................................ 52
5.3.3. Fichiers de configuration par défaut ....................................................................... 52
5.4. Gestion des comptes et des options de création par défaut ........................................... 52
5.4.1. Comment bloquer un compte.................................................................................. 53
5.4.2. Gestion des informations d’expiration du compte.................................................. 53
5.4.3. Destruction d’un compte......................................................................................... 53
Chapitre 5. Gestion des utilisateurs et des groupes
Faycel CHAOUA Systèmes d’exploitation 2 49
5.1. Les utilisateurs
Pour la création d’un utilisateur, on utilise la commande /usr/sbin/useradd ou son alias
/usr/sbin/adduser qui est un lien symbolique vers la commande précédente pour des
raisons de compatibilité historique.
 Syntaxe : /usr/sbin/useradd [options] nom-utilisateur
 Quelques options utiles :
 -c : commentaire.
 -g : groupe.
 -s : Shell.
Pour ajouter un utilisateur « user1 » dans le groupe « chefs » avec le Shell « tcsh » :
/usr/sbin/useradd -c 'User 1 le chef' -g 'chefs' -s '/bin/tcsh' user1
Les options par défaut se trouvent dans le fichier /etc/default/useradd, ou bien sont
listées par l’option -D de la commande useradd.
Chaque utilisateur possède un identifiant ou UID (user identifier), numéro généré
automatiquement et compris entre 500 et 60 000. Un autre intervalle de valeurs peut si
nécessaire être imposé. Il doit dans ce cas être spécifié dans le fichier /etc/login.defs.
Pour activer le compte, l’administrateur doit définir un mot de passe pour le compte par la
commande /usr/bin/passwd :
 Syntaxe : /usr/bin/passwd nom-utilisateur
 Exemple : /usr/bin/passwd user1
Cette commande permet également à l’utilisateur de changer lui-même son mot de passe.
Chapitre 5. Gestion des utilisateurs et des groupes
Faycel CHAOUA Systèmes d’exploitation 2 50
5.2. Les groupes
Un utilisateur appartient toujours au moins à un groupe dit groupe primaire (primary group).
Si le groupe n’est pas spécifié au moment de la création du compte deux stratégies générales
sont employées pour assigner un groupe par défaut :
 Le groupe par défaut est le même pour tous. Il s’appelle par exemple « users » ;
 La distribution Red Hat a introduit la notion de groupe privé par utilisateur ou UPG
(User Private Group). Le nom du groupe est identique à celui du login.
Selon la stratégie employée, le masque par défaut (umask) de création est initialisé à 022 dans
le premier cas (classique) et à 002 dans le deuxième cas (UPG).
Si un utilisateur crée un fichier, celui-ci appartiendra par défaut au groupe primaire de
l’utilisateur. Un utilisateur peut appartenir à d’autres groupes, ce sont les groupes secondaires.
La commande id permet de connaître la liste des groupes auxquels l’utilisateur appartient.
Dans l’exemple qui suit, l’utilisateur « moi » appartient au groupe primaire « normal » et aux
groupes secondaires « compta » et « chefs ».
La commande newgrp permet de changer temporairement de groupe primaire, à condition que
le nouveau groupe soit un groupe secondaire de l’utilisateur ou que l’utilisateur en connaisse
le mot de passe. Par exemple : newgrp chefs. La commande id donne alors :
La commande groups permet elle aussi d’afficher les groupes auxquels appartient un
utilisateur.
Chapitre 5. Gestion des utilisateurs et des groupes
Faycel CHAOUA Systèmes d’exploitation 2 51
Pour ajouter un groupe, on utilise la commande groupadd : groupadd forcats. Pour
supprimer un groupe, on utilise la commande groupdel : groupdel forcats. Ces
commandes mettent à jour le fichier /etc/group. Pour gérer les utilisateurs d’un groupe, on
utilise la commande gpasswd. Les options sont les suivantes :
 -a : ajout d’un utilisateur.
 -d : retrait d’un utilisateur.
 -A : affectation d’un administrateur au groupe.
Par exemple : gpasswd -a nicolas forcats.
5.3. Les fichiers de configuration
5.3.1. Gestion des utilisateurs
Le fichier /etc/passwd contient les informations sur les utilisateurs, structurées en 7
champs :
 Login.
 Mot de passe ou « x » s’il existe un fichier /etc/shadow.
 UID.
 GID.
 Description de l’utilisateur.
 Répertoire par défaut de l’utilisateur.
 Shell.
Les 7 champs sont présentés sur une ligne et séparés par le caractère « : ».
Une ligne extraite d’un fichier /etc/passwd avec utilisation d’un fichier /etc/shadow :
Chapitre 5. Gestion des utilisateurs et des groupes
Faycel CHAOUA Systèmes d’exploitation 2 52
5.3.2. Gestion des groupes
Le fichier /etc/group contient les informations sur les groupes, structurées en 4 champs :
 Nom du groupe.
 Mot de passe du groupe ou « x » s’il existe un fichier /etc/gshadow.
 GID.
 Liste des utilisateurs du groupe.
Les 4 champs sont présentés sur une ligne et séparés par le caractère « : ».
5.3.3. Fichiers de configuration par défaut
Le fichier /etc/login.defs contient les informations par défaut sur la validité des comptes
et des mots de passe des utilisateurs. Ces informations sont stockées dans le fichier
/etc/shadow lors de la création du compte.
5.4. Gestion des comptes et des options de création par défaut
Les options de configuration d’un compte peuvent être modifiées par la commande usermod :
 -l : nouveau nom d’utilisateur.
 -c : commentaire.
 -g : groupe (il doit exister au préalable).
 -s : Shell.
 -d : chemin du répertoire home.
 -u : identifiant utilisateur (UID).
 -p : mot de passe à entrer en format md5.
 -e : informations d’expiration du compte.
Les options de configuration d’un groupe peuvent être modifiées par la commande groupmod:
 -n : nouveau nom du groupe.
 -g : identifiant du groupe (GID).
Chapitre 5. Gestion des utilisateurs et des groupes
Faycel CHAOUA Systèmes d’exploitation 2 53
5.4.1. Comment bloquer un compte
Un moyen simple est de faire précéder le mot de passe par un « ! » dans les fichiers de
configuration. Lors de l’utilisation d'un fichier /etc/shadow, on peut remplacer également le
« x » dans le fichier /etc/passwd par un « * ».
Une autre méthode consiste à utiliser les commandes passwd et usermod :
 passwd –l
 usermod –L
Pour débloquer le compte en utilisant les mêmes commandes :
 passwd –u
 usermod –U
On peut aussi détruire le mot de passe : passwd –d. Enfin, on peut affecter à un utilisateur le
Shell par défaut /bin/false, ce qui l’empêche de se connecter.
5.4.2. Gestion des informations d’expiration du compte
Pour modifier les informations par défaut (/etc/login.defs) et les informations
d’expiration, on utilise la commande /usr/bin/chage :
5.4.3. Destruction d’un compte
On utilise la commande /usr/sbin/userdel. L’option -r (--remove-home) permet de
détruire également le contenu du répertoire home : userdel -r user1.
Faycel CHAOUA Systèmes d’exploitation 2 54
Chapitre 6. Système de gestion de processus
Chapitre 6 : Système de gestion de processus
֍ Durée : 1 heure 30 minutes.
֍ Mots clés : PID, init, systemd, ps, top, pstree, kill, killall, nice, renice, job, nohup.
֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de :
» Lister les processus en cours d’exécution.
» Arrêter un ou plusieurs processus.
» Modifier la priorité d’un processus.
» Lancer un processus en tâche de fond.
Plan du chapitre :
6.1. Introduction ................................................................................................................... 55
6.2. La commande « ps »...................................................................................................... 55
6.3. La commande « top » .................................................................................................... 56
6.4. La commande « kill ».................................................................................................... 56
6.5. La commande « nice »................................................................................................... 57
6.6. La commande « renice »................................................................................................ 58
6.7. Les processus et le Shell................................................................................................ 58
6.8. La commande « nohup » ............................................................................................... 59
Chapitre 6. Système de gestion de processus
Faycel CHAOUA Systèmes d’exploitation 2 55
6.1. Introduction
Ce qui est désigné comme processus est une instance de programme s’exécutant à un instant
donné ainsi que son contexte (ou environnement). Ce dernier terme désigne l’ensemble des
ressources utilisées par le programme pour pouvoir se dérouler, comme par exemple la
mémoire, les fichiers ouverts, les droits associés, la priorité, etc.
Les processus sont identifiés par un numéro unique dans le système à un moment donné, le
PID. C'est à l’aide de ce nombre que l’on peut désigner une instance de programme et
interagir avec.
Les processus sont également caractérisés par un propriétaire. Il s’agit de l’utilisateur qui en a
demandé l’exécution. En général, seul ce propriétaire pourra entreprendre des actions sur le
processus.
Les processus sont créés par « clonage ». Le premier processus créé est le processus init
(systemd) qui est l’ancêtre de tous les autres.
La commande pstree affiche les processus sous forme d’arborescence. On peut donc
visualiser qui est le processus parent d’un autre. L’option –p affiche le PID de chaque
processus et l’option –u affiche le nom de l’utilisateur ayant lancé le processus.
6.2. La commande « ps »
La commande ps permet de lister les processus en cours d’exécution.
 Syntaxe : ps [-Aefl]
 Options principales :
 -A : affiche tous les processus.
 -e : affiche tous les processus.
 -f : affiche toutes les informations.
 -l : affiche en format long.
 Exemple : ps -Af | head -5 affiche les informations relatives aux 4 premiers
processus.
Chapitre 6. Système de gestion de processus
Faycel CHAOUA Systèmes d’exploitation 2 56
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 nov 08 ? 0:00 sched
root 1 0 0 nov 08 ? 0:03 /etc/init -
root 2 0 0 nov 08 ? 0:01 pageout
root 3 0 0 nov 08 ? 10:00 fsflush
Les 8 champs correspondent à :
 UID : propriétaire du processus.
 PID : numéro du processus.
 PPID : numéro du processus-père.
 C : obsolète.
 STIME : heure de début du processus.
 TTY : pseudo-terminal contrôlant le processus.
 TIME : durée d'exécution du processus.
 CMD : nom de la commande.
Dans la pratique, nous n'avons besoin que des champs UID, PID et éventuellement
TIME.
6.3. La commande « top »
La commande top permet d’afficher des informations en continu sur l’activité du système.
Elle permet surtout de suivre les ressources que les processus utilisent (quantité de RAM,
pourcentage de CPU, durée d’exécution d’un processus depuis son démarrage).
 Syntaxe : top [-d delay][-n iterations][-p pid}[-u user]
 Option principale : -d permet de spécifier des délais de rafraîchissement (en
secondes).
6.4. La commande « kill »
La commande kill permet de supprimer un processus.
 Syntaxe : kill –signal pid
 Option principale : -signal est le numéro du signal envoyé au processus :
 -1 : simule une déconnexion.
 -15 : ordonne au processus de se terminer normalement.
Chapitre 6. Système de gestion de processus
Faycel CHAOUA Systèmes d’exploitation 2 57
 -9 : ordonne au processus de se terminer inconditionnellement comme dans le
cas des processus qui bouclent.
 Exemple : On récupère le numéro du processus par la commande ps dans le champ
PID. La commande ps –Af | grep user1 renvoie la liste de tous les processus
lancés par l'utilisateur user1.
 user1 1724 1722 0 Nov 28 ? 0:00 –csh
 user1 1749 1747 1 Nov 28 ? 0:00 –csh
 user1 1759 1724 8 Nov 28 ? 46:16 essai.
Le processus 1759 correspondant au programme essai qui semble boucler (il tourne
depuis plus de 46 h). Pour le supprimer, on tape : kill -9 1759.
Si l’on ne connaît pas le PID du processus auquel on veut envoyer un signal, on peut le
désigner par son nom en utilisant la commande killall.
 Syntaxe : killall signal nom_du_processus
6.5. La commande « nice »
La priorité d’un processus peut être connue en examinant la colonne PRI du résultat des
commandes ps –l ou top. Plus la priorité est grande, plus de temps CPU est offert au
processus.
Le noyau gère la priorité moyennant une file d’attente de processus. Un utilisateur autorisé
peut modifier la priorité des processus à travers une valeur de gentillesse ou valeur nice
(colonne NI du résultat des commandes ps –l ou top).
La valeur nice varie de -20 à +19, plus elle est élevée, moins le processus est prioritaire.
La commande nice permet de modifier la priorité d'un processus au démarrage du processus.
 Syntaxe : nice [-n Valeur] [Commande [Arguments ...]]
 Option principale : -n indique la valeur de nice. L’utilisateur standard ne peut utiliser
qu’une valeur nice positive, seul le super-utilisateur (root) peut utiliser des valeurs
négatives.
Chapitre 6. Système de gestion de processus
Faycel CHAOUA Systèmes d’exploitation 2 58
 Exemple : nice -n 19 mon_programme. Cette commande lance mon_programme avec
la priorité la moins basse possible.
6.6. La commande « renice »
La commande renice permet de modifier la priorité d’un ou plusieurs processus en cours
d’exécution.
 Syntaxe : renice [-n] nouvelle_valeur_nice [[-p] pid ] [-g] prgg ] [-u]
utilisateur]
 Options :
 -n : la nouvelle priorité.
 -p : des identifiants de processus.
 -g : des identifiants de groupes de processus. Utiliser renice sur un groupe de
processus implique que tous les processus de ce groupe auront leur priorité
modifiée.
 -u : des noms d’utilisateurs. Lorsqu’un utilisateur est spécifié, tous les
processus appartenant à celui-ci auront leur priorité modifiée.
 Exemples :
 La commande ps -l | grep mon_processus permet d’obtenir le PID de
mon_processus.
 La commande renice -n 10 -p PID_de_mon_processus permet de modifier
la valeur de nice.
6.7. Les processus et le Shell
Si on lance un programme depuis un terminal, l’interpréteur de commande (Shell) ne rend la
main que quand le programme ainsi lancé est terminé. Il est possible d’interrompre ce
programme et de reprendre la main en utilisant la combinaison de touches <Ctrl>-<Z>.
Ajouter le signe « & » à la fin de la ligne de commande permet de lancer le programme en
arrière-plan – on parle aussi de tâche de fond – et de reprendre tout de suite la main : on
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)

Contenu connexe

Tendances

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes Ikram Benabdelouahab
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Programmation Shell Script
Programmation Shell ScriptProgrammation Shell Script
Programmation Shell ScriptBoubakr NOUR
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 

Tendances (20)

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Programmation Shell Script
Programmation Shell ScriptProgrammation Shell Script
Programmation Shell Script
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 

Similaire à Support du cours : Systèmes d'exploitation 2 (linux)

Configuration des services web sous CentOS
Configuration des services web sous CentOSConfiguration des services web sous CentOS
Configuration des services web sous CentOSSarah
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...Bassirou Dime
 
Routage avancé et contrôle du trafic sous linux
Routage avancé et contrôle du trafic sous linuxRoutage avancé et contrôle du trafic sous linux
Routage avancé et contrôle du trafic sous linuxLehiri Gosse
 
Systeme Dexploitation Open Source Linux
Systeme Dexploitation Open Source LinuxSysteme Dexploitation Open Source Linux
Systeme Dexploitation Open Source Linuxyousseffouzi41
 
Standards ouverts et logiciels libres
Standards ouverts et logiciels libresStandards ouverts et logiciels libres
Standards ouverts et logiciels libresGenève Lab
 
Manuel du module Ventes d'OpenERP produit par Gestion-Ressources
Manuel du module Ventes d'OpenERP produit par Gestion-RessourcesManuel du module Ventes d'OpenERP produit par Gestion-Ressources
Manuel du module Ventes d'OpenERP produit par Gestion-RessourcesGestion-Ressources Inc.
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
 
Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14imen1989
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objetNSim Technology
 
065 utilisation avancee du tableur calc
065 utilisation avancee du tableur calc065 utilisation avancee du tableur calc
065 utilisation avancee du tableur calcpopotam
 
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Amed So
 
Recommandations pour un usage sécurisé d’(Open)SSH
Recommandations pour un usage sécurisé d’(Open)SSHRecommandations pour un usage sécurisé d’(Open)SSH
Recommandations pour un usage sécurisé d’(Open)SSHFabwice Bend'j
 

Similaire à Support du cours : Systèmes d'exploitation 2 (linux) (20)

Iptables tutorial
Iptables tutorialIptables tutorial
Iptables tutorial
 
Configuration des services web sous CentOS
Configuration des services web sous CentOSConfiguration des services web sous CentOS
Configuration des services web sous CentOS
 
Manuel sphinx
Manuel sphinxManuel sphinx
Manuel sphinx
 
Pdf test
Pdf testPdf test
Pdf test
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
 
101.trucs.excel.2007
101.trucs.excel.2007101.trucs.excel.2007
101.trucs.excel.2007
 
Routage avancé et contrôle du trafic sous linux
Routage avancé et contrôle du trafic sous linuxRoutage avancé et contrôle du trafic sous linux
Routage avancé et contrôle du trafic sous linux
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
Systeme Dexploitation Open Source Linux
Systeme Dexploitation Open Source LinuxSysteme Dexploitation Open Source Linux
Systeme Dexploitation Open Source Linux
 
Standards ouverts et logiciels libres
Standards ouverts et logiciels libresStandards ouverts et logiciels libres
Standards ouverts et logiciels libres
 
Manuel du module Ventes d'OpenERP produit par Gestion-Ressources
Manuel du module Ventes d'OpenERP produit par Gestion-RessourcesManuel du module Ventes d'OpenERP produit par Gestion-Ressources
Manuel du module Ventes d'OpenERP produit par Gestion-Ressources
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14Mehari 2010-manuel-de-reference-2-14
Mehari 2010-manuel-de-reference-2-14
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objet
 
065 utilisation avancee du tableur calc
065 utilisation avancee du tableur calc065 utilisation avancee du tableur calc
065 utilisation avancee du tableur calc
 
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
 
Recommandations pour un usage sécurisé d’(Open)SSH
Recommandations pour un usage sécurisé d’(Open)SSHRecommandations pour un usage sécurisé d’(Open)SSH
Recommandations pour un usage sécurisé d’(Open)SSH
 
Cour1
Cour1Cour1
Cour1
 
Le guide d'administration d'un site sous joomla3
Le guide d'administration d'un site sous joomla3Le guide d'administration d'un site sous joomla3
Le guide d'administration d'un site sous joomla3
 
Cours linux
Cours linuxCours linux
Cours linux
 

Dernier

Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Majida Antonios, M.Ed.
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...Unidad de Espiritualidad Eudista
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Atelier Canopé 37 - Tours
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 

Dernier (17)

Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 

Support du cours : Systèmes d'exploitation 2 (linux)

  • 1. Faycel CHAOUA (faycelchaoua@gmail.com) ISET KELIBIA | ROUTE OUED ELKHATF, CAMPUS UNIVERSITAIRE DE KELIBIA Janvier 2018 Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Études Technologiques ISET Kélibia Département Technologies de l’Informatique Support du cours SYSTEMES D'EXPLOITATION 2 LMD  L2
  • 2. Faycel CHAOUA Systèmes d’exploitation 2 i Conditions d’utilisation de ce support Ce support de cours est mis à disposition selon les termes de la licence « Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International ». https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr Vous êtes autorisé à : » Partager  copier, distribuer et communiquer le matériel par tous moyens et sous tous formats. » Adapter  remixer, transformer et créer à partir du matériel Selon les conditions suivantes : » Attribution  Vous devez créditer l'œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'œuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'offrant vous soutient ou soutient la façon dont vous avez utilisé son œuvre. » Pas d’utilisation commerciale  Vous n'êtes pas autorisé à faire un usage commercial de cette œuvre, tout ou partie du matériel la composant. » Partage dans les mêmes conditions  Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'œuvre originale, vous devez diffuser l'œuvre modifiée dans les même conditions, c'est à dire avec la même licence avec laquelle l'œuvre originale a été diffusée.
  • 3. Faycel CHAOUA Systèmes d’exploitation 2 ii Les objectifs généraux A l’issue des modules présentés dans ce support, l’apprenant sera capable de :  Comprendre l’architecture d’un système UNIX.  Partitionner un disque dur sous un système GNU/Linux.  Gérer des fichiers et des répertoires.  Modifier les droits d’accès.  Gérer les utilisateurs et les groupes.  Gérer les processus.  Écrire des scripts Shell. Plan du cours Ce support est constitué principalement des chapitres suivants :  Chapitre 1 : Présentation générale du système Linux.  Chapitre 2 : Système de fichiers Linux.  Chapitre 3 : Les commandes GNU/Linux.  Chapitre 4 : Permissions d'accès aux Fichiers.  Chapitre 5 : Gestion des utilisateurs et des groupes.  Chapitre 6 : Système de gestion de processus.  Chapitre 7 : La programmation Shell.
  • 4. Faycel CHAOUA Systèmes d’exploitation 2 iii Table des matières Chapitre 1. Présentation générale du système Linux............................................................ 1 1.1. Système UNIX................................................................................................................. 2 1.1.1. Le système d’exploitation......................................................................................... 2 1.1.2. Historique.................................................................................................................. 3 1.2. Système GNU / Linux ..................................................................................................... 4 1.2.1. Le projet GNU .......................................................................................................... 4 1.2.2. GNU / Linux : historique et caractéristiques ............................................................ 4 1.2.3. Distribution Linux..................................................................................................... 5 Chapitre 2. Système de fichiers Linux.................................................................................... 6 2.1. Choisir un système de fichiers......................................................................................... 8 2.1.1. Principe ..................................................................................................................... 8 2.1.2. Les filesystems sous Linux ....................................................................................... 9 2.2. Disques durs et partitionnement .................................................................................... 10 2.2.1. Les partitions........................................................................................................... 10 2.2.2. Organisation des partitions sous Linux................................................................... 11 2.2.3. Formatage ............................................................................................................... 12 2.2.4. Contrôle de l'intégrité du système de fichiers et réparation.................................... 12 2.2.5. Montage et démontage d'un système de fichiers..................................................... 13 Chapitre 3. Les commandes GNU/Linux ............................................................................. 15 3.1. Le Shell.......................................................................................................................... 18 3.1.1. Présentation............................................................................................................. 18 3.1.2. Les caractères spéciaux du Shell............................................................................. 18 3.2. Fichiers et répertoires .................................................................................................... 19 3.3. Redirections des entrées-sorties..................................................................................... 20 3.4. Les gestionnaires de paquets ......................................................................................... 21 3.5. Les principales commandes GNU/Linux ...................................................................... 21
  • 5. Faycel CHAOUA Systèmes d’exploitation 2 iv 3.5.1. Les commandes relatives aux répertoires ............................................................... 21 3.5.2. Les commandes relatives aux fichiers .................................................................... 26 3.5.3. Les commandes d'archivage et de compression...................................................... 39 3.5.4. Commandes d’aide et d’informations..................................................................... 42 Chapitre 4. Permissions d'accès aux Fichiers...................................................................... 44 4.1. Les droits sur les fichiers et les répertoires.................................................................... 45 4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires.......................... 47 Chapitre 5. Gestion des utilisateurs et des groupes............................................................. 48 5.1. Les utilisateurs............................................................................................................... 49 5.2. Les groupes.................................................................................................................... 50 5.3. Les fichiers de configuration ......................................................................................... 51 5.3.1. Gestion des utilisateurs ........................................................................................... 51 5.3.2. Gestion des groupes ................................................................................................ 52 5.3.3. Fichiers de configuration par défaut ....................................................................... 52 5.4. Gestion des comptes et des options de création par défaut ........................................... 52 5.4.1. Comment bloquer un compte.................................................................................. 53 5.4.2. Gestion des informations d’expiration du compte.................................................. 53 5.4.3. Destruction d’un compte......................................................................................... 53 Chapitre 6. Système de gestion de processus ....................................................................... 54 6.1. Introduction ................................................................................................................... 55 6.2. La commande « ps »...................................................................................................... 55 6.3. La commande « top » .................................................................................................... 56 6.4. La commande « kill ».................................................................................................... 56 6.5. La commande « nice »................................................................................................... 57 6.6. La commande « renice »................................................................................................ 58 6.7. Les processus et le Shell................................................................................................ 58 6.8. La commande « nohup » ............................................................................................... 59 Chapitre 7. La programmation Shell ................................................................................... 61
  • 6. Faycel CHAOUA Systèmes d’exploitation 2 v 7.1. Introduction ................................................................................................................... 62 7.2. Le Shell, un interpréteur de commandes ....................................................................... 62 7.3. Utilisation de variables .................................................................................................. 63 7.4. Les scripts Shell............................................................................................................. 64 7.5. Syntaxe .......................................................................................................................... 65 7.5.1. Les tests................................................................................................................... 67 7.5.2. L’instruction « if » .................................................................................................. 68 7.5.3. L’instruction « case ».............................................................................................. 69 7.5.4. L’instruction « for »................................................................................................ 69 7.5.5. L’instruction « while »............................................................................................ 70 7.5.6. Les fonctions........................................................................................................... 71 7.5.7. Expressions arithmétiques « expr » ........................................................................ 71 7.5.8. Expressions arithmétiques « let, (()) ».................................................................... 72 TD (Travaux dirigés) ............................................................................................................. 73 TD N° 1 ................................................................................................................................ 74 TD N° 2 ................................................................................................................................ 76 TD N° 3 ................................................................................................................................ 78 TD N° 4 ................................................................................................................................ 81 TD N° 5 ................................................................................................................................ 83 Correction des TD .................................................................................................................. 85 Correction du TD N° 1 ......................................................................................................... 86 Correction du TD N° 2 ......................................................................................................... 90 Correction du TD N° 3 ......................................................................................................... 94 Correction du TD N° 4 ......................................................................................................... 99 Correction du TD N° 5 ....................................................................................................... 103 Références (Bibliographie / Webographie)........................................................................ 110
  • 7. Faycel CHAOUA Systèmes d’exploitation 2 1 Chapitre 1. Présentation générale du système Linux Chapitre 1 : Présentation générale du système Linux ֍ Durée : 1 heure 30 minutes. ֍ Mots clés : Système d’exploitation, UNIX, GNU/Linux, GPL. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Distinguer l'architecture logique d'un système UNIX. » Rappeler sommairement l'historique d'UNIX et de GNU/Linux. » Identifier les quatre libertés de la licence GPL. Plan du chapitre : 1.1. Système UNIX................................................................................................................. 2 1.1.1. Le système d’exploitation......................................................................................... 2 1.1.2. Historique.................................................................................................................. 3 1.2. Système GNU / Linux ..................................................................................................... 4 1.2.1. Le projet GNU .......................................................................................................... 4 1.2.2. GNU / Linux : historique et caractéristiques ............................................................ 4 1.2.3. Distribution Linux..................................................................................................... 5
  • 8. Chapitre 1. Présentation générale du système Linux Faycel CHAOUA Systèmes d’exploitation 2 2 1.1. Système UNIX 1.1.1. Le système d’exploitation Un système d’exploitation est un programme ou un ensemble de programmes assurant la gestion de l’ordinateur et des périphériques. Il sert d’interface entre le matériel (hardware) et le logiciel (software). C’est un ensemble de programmes très complexes dont le but est de rendre plus simples les programmes et l’utilisation de l’ordinateur. Figure 1-1 : Principe du système d’exploitation C’est le rôle du système d’exploitation de gérer la mémoire, les accès aux périphériques, les données sur les disques, les programmes, la sécurité et la collecte des informations. Figure 1-2 : Architecture logique d’un système UNIX
  • 9. Chapitre 1. Présentation générale du système Linux Faycel CHAOUA Systèmes d’exploitation 2 3 Le schéma précédent présente une synthèse simplifiée de la structure interne d’un système d’exploitation Unix. En bas se trouve le matériel, en haut les programmes qu’on fait fonctionner sur la machine. Entre les deux les divers composants du système assurent son bon fonctionnement. 1.1.2. Historique UNIX désigne une famille de systèmes d'exploitation dont le premier a été conçu aux "laboratoires Bell".  1969 : Thompson et Ritchie produisent la première édition d'un système primitif qui ne comporte qu'un assembleur et un chargeur.  1970 : La primitive « fork » est ajoutée pour permettre la création de processus et des programmes utilitaires pour la gestion des fichiers sont produits (deuxième édition).  1971 : Un système de traitement de textes (roff) est produit. Thompson et Ritchie publient la première documentation du système. C'est la troisième édition.  1972 : UNIX est amélioré en lui ajoutant la notion de relais (pipe). Il existe à l'époque environ 20 sites utilisant le système UNIX.  1973 : UNIX est réécrit en langage C (quatrième édition).  1974 : La cinquième édition, conçue spécialement pour des fins académiques, est introduite.  1975 : La sixième édition d’UNIX est produite et devient la première à être commercialisée pour une somme modique par "AT&T".  1977 : Près de 500 sites utilisent UNIX. À partir de ce moment, les versions d’UNIX vont se multiplier. C'est à cette époque que débute le problème de standard.  1980 : Il y a environ 100 000 sites UNIX.  1983 : "AT&T" annonce le System V.  1984 : Production de la version 2 de System V avec un support complet pour le système d'exploitation et les utilitaires.  1986 : "AT&T" annonce la version 3 de System V qui supporte RFS (Remote File Sharing).  1987 : Une nouvelle version d’UNIX est annoncée. C'est le System V version 4.0 qui sera disponible à l'automne 1989. Donc deux versions vont subsister : System V 5.3 de "AT&T" et BSD 4.3 de "Berkeley".
  • 10. Chapitre 1. Présentation générale du système Linux Faycel CHAOUA Systèmes d’exploitation 2 4  1989 : Avec la commercialisation du système par "AT&T", les sources n'étaient offertes qu'à des prix exorbitants. Le projet GNU (GNU's not UNIX) a pour objectif (entre autres) de remettre UNIX dans le domaine public. Sur une base de volontariat, les participants au projet GNU produisent du code UNIX disponibles gratuitement. 1.2. Système GNU / Linux 1.2.1. Le projet GNU Richard Stallman a décidé en 1983 d’écrire un nouveau système d’exploitation entièrement libre d’accès, d’utilisation, de modification et de redistribution. Basé sur Unix, il l’a nommé GNU (Gnu’s Not Unix). Pour défendre le logiciel libre, Stallman a créé 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). Un logiciel libre garantit quatre libertés :  Liberté 0 : la liberté d’utiliser un logiciel quel que soit l’usage que vous en faites.  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 (au sens large du terme).  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é. Les libertés 1 et 3 nécessitent d’avoir obligatoirement accès au code source du programme. La liberté 3 définit la notion de communauté autour du logiciel libre. 1.2.2. GNU / Linux : historique et caractéristiques  1991 : Linus Torvalds a créé le système Linux (Linus' UNIX, l'UNIX de Linus). Il lance un appel à contribution, et permet donc un libre accès au code source. Cette version permet de faire tourner quelques applications GNU (logiciels libres) essentielles comme le compilateur gcc ou le Shell bash. Linus prend la décision de
  • 11. Chapitre 1. Présentation générale du système Linux Faycel CHAOUA Systèmes d’exploitation 2 5 mettre le code source sous licence GPL : tout le monde peut alors participer au développement de Linux.  1991-94 : Linux devient un système UNIX complet compatible avec les autres systèmes UNIX, offrant toujours plus de services de qualité professionnelle au plus grand nombre.  1994-97 : L’apparition des grandes distributions Linux : Red Hat, Debian, Suse et Slackware. Durant ces années, Linux ne cesse de s’améliorer, avec l’arrivée notable de la modularité et de la version 2.0. Les projets foisonnent, et déjà l’idée d’améliorer le système et de l’ouvrir au monde du bureau (desktop) fait son bout de chemin avec le début du développement de produits comme Gnome ou KDE.  1998~ : L’explosion de l’utilisation de Linux. Les salons Linux se multiplient et l'on observe une multiplication des revues spécialisées. Le noyau 2.6 sort le 18 décembre 2003.  Aujourd’hui et demain : Aujourd’hui Linux est reconnu comme un système d’exploitation stable, robuste et performant. Il est utilisé dans plus du tiers des serveurs dans le monde et dans la moitié des serveurs Web. Il a conquis le monde de l’entreprise, le monde universitaire. Il a surtout su conserver son indépendance, garantie par la communauté et le nombre de contributeurs, face aux géants de l’informatique. La prochaine grosse cible de Linux, c’est le poste de travail, et pourquoi pas, l’usage familial en remplacement de Windows. Il reste encore un peu de chemin, mais nombreux sont ceux qui ont déjà franchi le pas. 1.2.3. Distribution Linux Linux est le plus souvent diffusé sous forme d’une distribution, un ensemble de programmes (noyau, sources des utilitaires, commandes, applications) formant après installation un système complet. Chacune des distributions a ses avantages et ses inconvénients. Débuter avec Linux, c’est surtout choisir une distribution qui corresponde avec les usages qu’on attend du système. Parmi les distributions les plus utilisées, on trouve RedHat, Debian, Slackware (toutes trois gratuites) et SuSE, Mandrake (toutes deux payantes).
  • 12. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 6 Chapitre 2. Système de fichiers Linux Chapitre 2 : Système de fichiers Linux ֍ Durée : 2 heures. ֍ Mots clés : système de fichiers, ext2, ext3, ext4, reiserfs, xfs, vfat, fdisk, mkfs, fsck, mount, umount, fstab, df, du. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Distinguer entre les principaux systèmes de fichiers sous Linux. » Partitionner un disque dur. Plan du chapitre : 2.1. Choisir un système de fichiers......................................................................................... 8 2.1.1. Principe ..................................................................................................................... 8 2.1.2. Les filesystems sous Linux ....................................................................................... 9 2.1.2.1. ext2..................................................................................................................... 9 2.1.2.2. ext3..................................................................................................................... 9 2.1.2.3. ext4..................................................................................................................... 9 2.1.2.4. reiserfs ................................................................................................................ 9 2.1.2.5. xfs..................................................................................................................... 10 2.1.2.6. vfat.................................................................................................................... 10 2.2. Disques durs et partitionnement .................................................................................... 10 2.2.1. Les partitions........................................................................................................... 10 2.2.2. Organisation des partitions sous Linux................................................................... 11 2.2.3. Formatage ............................................................................................................... 12 2.2.4. Contrôle de l'intégrité du système de fichiers et réparation.................................... 12 2.2.5. Montage et démontage d'un système de fichiers..................................................... 13
  • 13. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 7 Introduction Un système de fichiers, appelé communément File System ou FS, définit l’organisation des données sur un support de stockage, donc comment sont gérés et organisés les fichiers par le système d’exploitation. Linux est, comme tout Unix, un système d’exploitation entièrement orienté fichier. Tout (ou presque) est représenté par un fichier, tant les données (fichiers de données de tout type comme une image ou un programme), que les périphériques (terminaux, souris, clavier, carte son, etc.) ou encore les moyens de communication (sockets, tubes nommés, etc.). On peut dire que le système de fichiers est le cœur de tout système Unix. Figure 2-1 : Exemple d’arborescence Linux Le système de fichiers de Linux est hiérarchique. Il décrit une arborescence de répertoires et de sous répertoires, en partant d’un élément de base (/) appelé la racine ou root directory. Les répertoires de base de l'arborescence standard de fichiers sont les suivants :  /boot : contient principalement le fichier binaire du noyau ainsi que les ressources nécessaires à son lancement au démarrage.  /dev : contient les fichiers des périphériques (devices) de la machine ainsi que des fichiers spéciaux.  /home : répertoire où sont stockés par défaut les répertoires home des utilisateurs du système.
  • 14. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 8  /etc : répertoire très important où sont stockés tous les fichiers de configuration du système en général et des différents démons en particulier. Il s’agit du répertoire à sauvegarder pour pouvoir restaurer la configuration d'une machine.  /proc : contient les informations nécessaires au noyau. C'est une arborescence virtuelle généralement en lecture seule sauf /proc/sys.  /root : répertoire home du super-utilisateur (root).  /tmp : permet aux applications et aux utilisateurs d'avoir un espace d'échange où ils peuvent stocker leurs fichiers temporaires. Il est effacé à chaque redémarrage de la machine (« reboot »).  /usr : contient les fichiers nécessaires aux applications, la documentation, les manuels, les fichiers sources ainsi que des librairies généralement statiques et générées à l'installation des logiciels standards de la distribution.  /usr/local : arborescence qui sert à installer les logiciels supplémentaires.  /var : contient les fichiers journaux des différents démons (donc variable) ainsi que les spools de mail, d'impression, de cron, etc.  /bin et /sbin : contiennent l'ensemble des binaires indispensables au démarrage de la machine et les commandes essentielles d’administration.  /lib et /usr/lib : contiennent les librairies nécessaires aux commandes précédentes. 2.1. Choisir un système de fichiers 2.1.1. Principe L’action de « formater » un disque, une clé ou tout support de données consiste uniquement à créer sur un support de mémoire secondaire l’organisation logique permettant d’y placer des données. Le mot « formatage » n’est quasiment jamais utilisé sous Linux. On parle de système de fichiers qui est à la fois l’organisation logique des supports au niveau le plus bas comme au niveau de l’utilisateur. Si les principes de base sont souvent les mêmes entre les divers systèmes présents sous Linux, les implémentations et les organisations logiques des données sur le disque varient fortement. Aussi il n’existe pas un type de système de fichiers, mais plusieurs, au choix de l’utilisateur, administrateur ou ingénieur.
  • 15. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 9 Le principe de base est d’associer un nom de fichier à son contenu et d’y permettre l’accès : création, modification, suppression, déplacement, ouverture, lecture, écriture, fermeture. Suivant ce principe, le système de fichiers doit gérer ce qui en découle : mécanismes de protection des accès (les permissions, les propriétaires), les accès concurrents, etc. Un fichier est décrit par des propriétés appelées les métadonnées. Sous Linux, il s’agit de l’inode. Le contenu (les données) est placé dans d’autres blocs du support de stockage. Le contenu des métadonnées diffère d’un système de fichiers à un autre. 2.1.2. Les filesystems sous Linux 2.1.2.1. ext2 Le « second extended filesystem » ext2 est considéré comme le système de fichiers historique de Linux. ext2 est donc le premier système de fichiers développé spécifiquement pour Linux, d’un niveau de production et aux normes Unix. ext2 n’est pas journalisé. 2.1.2.2. ext3 L’ext3 « third extended filesystem » est le successeur d’ext2 depuis 1999. Il est journalisé. Surtout, il est entièrement compatible avec ext2. Le journal est une extension d’ext2. Il est possible d’utiliser un système de fichiers ext3 comme étant ext2, avec les mêmes commandes, les mêmes manipulations. Il est possible de transformer en quelques secondes un système ext2 en ext3, et vice versa. C’est l’un des systèmes de fichiers de choix pour Linux, et le plus utilisé actuellement pour sa souplesse. 2.1.2.3. ext4 L’ext4 « fourth extended filesystem » est une évolution d’ext3. Il présente de nombreux avantages et optimisations par rapport à l'ancienne version, tout en assurant une rétro-compatibilité. 2.1.2.4. reiserfs reiserfs a été le premier système de fichiers intégré à Linux, avant même ext3. Sa force réside, outre dans son journal, dans l’organisation indexée des entrées des répertoires et la manipulation des fichiers de petite taille. Ses performances sont exceptionnelles en présence
  • 16. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 10 de milliers de fichiers, de faible à moyen volume. Il est redimensionnable à chaud. Il devient plus lent sur des gros fichiers. 2.1.2.5. xfs xfs est le plus ancien des systèmes de fichiers journalisés sous Unix, datant de 1993. Outre ses capacités de stockages, il a un système de journalisation très performant et des mécanismes avancés comme la défragmentation en ligne, la capacité d’effectuer des snapshots, le dimensionnement à chaud, la réservation de bande passante pour les entrées et sorties, etc. 2.1.2.6. vfat vfat (Virtual File Allocation Table) est un terme générique regroupant les diverses versions de FAT supportant les noms de fichiers longs (255 caractères) sous Windows. Ces systèmes de fichiers sont conservés et continuent d’être utilisés pour des raisons à la fois historiques et pratiques. La plupart des supports amovibles, disques externes, clefs USB et lecteurs MP3 utilisent un système de fichiers de ce type. 2.2. Disques durs et partitionnement À l’installation, un disque dur n’est ni partitionné, ni formaté. Partitionner signifie définir sur le disque un ou plusieurs espaces, ou partitions, et formater signifie préparer une partition à recevoir des informations en utilisant un système de fichiers défini. 2.2.1. Les partitions Une partition est définie par son type, son emplacement de début de partition et enfin soit sa taille, soit son emplacement de fin de partition. Un partitionnement est réversible (non physique). Une seule partition est activée à la fois au niveau du BIOS : cette activation indique où le BIOS doit aller chercher le noyau du système d’exploitation pour le démarrage.
  • 17. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 11 Il existe trois sortes de partitions :  Les partitions principales : leur nombre est limité à quatre et elles supportent tous types de systèmes de fichiers.  La partition étendue : elle ne peut contenir que des partitions logiques et ne peut pas recevoir de systèmes de fichiers. Elle ne peut exister que s’il existe une partition principale.  Les partitions logiques : elles sont contenues dans une partition étendue. Elles ne sont pas limitées en nombre et acceptent tous types de systèmes de fichiers. 2.2.2. Organisation des partitions sous Linux Les descripteurs de disques durs dans le répertoire /dev commencent par hd pour les périphériques de type IDE ou par sd pour les périphériques de type SCSI. Une lettre additionnelle est ajoutée au descripteur pour désigner le périphérique. Il y a généralement deux contrôleurs IDE en standard sur un PC, chaque contrôleur supportant deux périphériques (disques, lecteur de cédérom/DVD, lecteur ZIP, etc.). Primaire Secondaire Maître a c Esclave b d Tableau 2-1 : Désignation des périphériques IDE  Pour le périphérique maître sur le contrôleur primaire : hda.  Pour le périphérique esclave sur le contrôleur secondaire : hdd.  Les périphériques SCSI sont désignés en fonction de leur position dans la chaîne SCSI (sda, sdb, sdc, etc.).  On utilise la commande fdisk pour configurer une nouvelle partition. Par exemple, pour le premier disque IDE : fdisk /dev/hda.
  • 18. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 12 2.2.3. Formatage Les commandes de création des principaux types de système de fichiers supportés par Linux sont présentées dans le tableau suivant. Système de fichiers Commande de création ext2 mke2fs ou mkfs.ext2 ext3 mke2fs -j ou mkfs.ext3 reiserfs mkreiserfs xfs mkfs.xfs vfat mkfs.vfat Tableau 2-2 : Commandes de création de systèmes de fichiers  L'instruction générale de création d’un système de fichiers est :  mkfs -t type-de-fichier partition.  Exemples de formatage de la partition hda1 avec création d'un système de fichiers de type ext3 (les trois commandes sont équivalentes) :  mkfs.ext3 /dev/hda1  mkfs -t ext3 /dev/hda1  mke2fs -j /dev/hda1 # création du journal spécifique.  Il est aussi très facile de transformer une partition ext2 en ext3 avec l'instruction tune2fs pour créer le journal : tune2fs -j /dev/hda1. 2.2.4. Contrôle de l'intégrité du système de fichiers et réparation  L'instruction générale de vérification du système de fichiers est :  fsck -t type-de-fichier partition.  Il existe des commandes équivalentes pour chaque type de système de fichiers, par exemple fsck.ext3.
  • 19. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 13  Une vérification de toutes les partitions est faite au démarrage du système par la commande fsck.  La commande e2fsck est équivalente à fsck –t ext2.  L’utilitaire debugfs est utilisé pour examiner et modifier l’état d’un système de fichiers formaté en ext2.  L’utilitaire dumpe2fs permet d’afficher les informations d’un système de fichiers formaté en ext2. 2.2.5. Montage et démontage d'un système de fichiers Pour pouvoir utiliser un système de fichiers, celui-ci doit être monté sur un point de montage de l'arborescence Linux : son contenu est alors accessible comme un simple répertoire. La commande mount accepte deux arguments :  Le premier est le fichier spécial correspondant à la partition contenant le système de fichiers.  Le second est le répertoire sous lequel il sera monté (point de montage). La commande umount permet le démontage du système de fichiers.  Exemple : pour monter et démonter une clé USB de type « flashdisk » décrite par le fichier device sda1, on utilise les commandes suivantes :  mount /dev/sda1 /mnt/flashdisk  umount /mnt/flashdisk Le fichier /etc/fstab est utilisé pour le montage automatique des systèmes de fichiers au moment du démarrage du système. Les commandes mount et umount utilisent le fichier fstab. Il est important que les données de ce fichier soient complètes et exactes. La commande mount –a monte tous les systèmes de fichiers répertoriés dans le fichier fstab. Cette commande est généralement exécutée au moment de démarrage du système.
  • 20. Chapitre 2. Système de fichiers Linux Faycel CHAOUA Systèmes d’exploitation 2 14 La commande df permet de connaître le taux d'utilisation de toutes les partitions montées du système. L'option -h (human readable) facilite la lecture en utilisant des unités de taille plus commodes (Mo, Go, To, etc.). La commande du (disk usage) est très pratique pour connaître l'espace occupé par une arborescence. L'option -s permet d'afficher le total pour chaque élément et l'option -k de l'afficher en kilo-octets : du -ks /usr/local.
  • 21. Faycel CHAOUA Systèmes d’exploitation 2 15 Chapitre 3. Les commandes GNU/Linux Chapitre 3 : Les commandes GNU/Linux ֍ Durée : 3 heures. ֍ Mots clés : Shell, chemin relatif, chemin absolu, redirection, gestionnaire de paquets, pwd, ls, lsattr, du, cd, mkdir, rmdir, chmod, chattr, touch, file, iconv, tr, cat, more, less, head, tail, tac, nl, wc, uniq, grep, sort, cut, paste, cp, ln, mv, split, rm, comm, diff, cat, tee, find, locate, tar, gzip, bzip2, gunzip, bunzip2, unzip, man, which, whereis, whatis, apropos. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Définir un interpréteur de commandes. » Appliquer les commandes de manipulation des fichiers et répertoires. » Distinguer les commandes d'archivage et de compression. » Utiliser les commandes d'aide et d'informations. Plan du chapitre : 3.1. Le Shell.......................................................................................................................... 18 3.1.1. Présentation............................................................................................................. 18 3.1.2. Les caractères spéciaux du Shell............................................................................. 18 3.1.2.1. Nom de fichiers et de répertoires ..................................................................... 18 3.1.2.2. Les autres caractères spéciaux.......................................................................... 19 3.2. Fichiers et répertoires .................................................................................................... 19 3.3. Redirections des entrées-sorties..................................................................................... 20 3.4. Les gestionnaires de paquets ......................................................................................... 21 3.5. Les principales commandes GNU/Linux ...................................................................... 21 3.5.1. Les commandes relatives aux répertoires ............................................................... 21 3.5.1.1. La commande « pwd » ..................................................................................... 22 3.5.1.2. La commande « ls » ......................................................................................... 22
  • 22. Faycel CHAOUA Systèmes d’exploitation 2 16 3.5.1.3. La commande « lsattr ».................................................................................... 23 3.5.1.4. La commande « du »........................................................................................ 23 3.5.1.5. La commande « cd » ........................................................................................ 24 3.5.1.6. La commande « mkdir »................................................................................... 24 3.5.1.7. La commande « rmdir » ................................................................................... 24 3.5.1.8. La commande « chmod » ................................................................................. 24 3.5.1.9. La commande « chattr »................................................................................... 25 3.5.2. Les commandes relatives aux fichiers .................................................................... 26 3.5.2.1. La commande « touch » ................................................................................... 27 3.5.2.2. La commande « file »....................................................................................... 27 3.5.2.3. La commande « iconv » ................................................................................... 27 3.5.2.4. La commande « tr ».......................................................................................... 28 3.5.2.5. La commande « cat » ....................................................................................... 28 3.5.2.6. La commande « more ».................................................................................... 29 3.5.2.7. La commande « less »...................................................................................... 29 3.5.2.8. La commande « head »..................................................................................... 29 3.5.2.9. La commande « tail »....................................................................................... 30 3.5.2.10. La commande « tac » ..................................................................................... 30 3.5.2.11. La commande « nl »....................................................................................... 30 3.5.2.12. La commande « wc » ..................................................................................... 30 3.5.2.13. La commande « uniq »................................................................................... 31 3.5.2.14. La commande « grep »................................................................................... 31 3.5.2.15. La commande « sort ».................................................................................... 32 3.5.2.16. La commande « cut » ..................................................................................... 33 3.5.2.17. La commande « paste ».................................................................................. 33 3.5.2.18. La commande « cp » ...................................................................................... 34 3.5.2.19. La commande « ln »....................................................................................... 34 3.5.2.20. La commande « mv »..................................................................................... 34 3.5.2.21. La commande « split » ................................................................................... 35 3.5.2.22. La commande « rm »...................................................................................... 35 3.5.2.23. La commande « comm »................................................................................ 36 3.5.2.24. La commande « diff » .................................................................................... 36 3.5.2.25. La commande « tee » ..................................................................................... 37
  • 23. Faycel CHAOUA Systèmes d’exploitation 2 17 3.5.2.26. La commande « find ».................................................................................... 37 3.5.2.27. La commande « locate »................................................................................. 38 3.5.3. Les commandes d'archivage et de compression...................................................... 39 3.5.3.1. La commande « tar »........................................................................................ 39 3.5.3.2. La commande « gzip » ..................................................................................... 40 3.5.3.3. La commande « bzip2 » ................................................................................... 40 3.5.3.4. La commande « gunzip » ................................................................................. 41 3.5.3.5. La commande « bunzip2 » ............................................................................... 41 3.5.3.6. La commande « unzip » ................................................................................... 42 3.5.4. Commandes d’aide et d’informations..................................................................... 42 3.5.4.1. La commande « man » ..................................................................................... 42 3.5.4.2. La commande « which » .................................................................................. 42 3.5.4.3. La commande « whereis »................................................................................ 42 3.5.4.4. La commande « whatis ».................................................................................. 43 3.5.4.5. La commande « apropos » ............................................................................... 43
  • 24. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 18 3.1. Le Shell 3.1.1. Présentation C'est un programme séparé du noyau qui réalise plusieurs tâches :  interprète les commandes tapées au clavier par l'utilisateur et exécute les programmes.  fournit à l'utilisateur un langage de programmation interprété.  permet de modifier l'environnement de travail.  réalise les redirections des entrées-sorties. Il en existe plusieurs versions : le Bourne Shell (sh), le C Shell (csh), le Korn Shell (ksh), le bash, le tcsh, etc. Sous GNU/Linux, le Shell généralement utilisé est le bash. 3.1.2. Les caractères spéciaux du Shell Un certain nombre de caractères ont une signification spéciale. 3.1.2.1. Nom de fichiers et de répertoires Six caractères servent à générer les noms de fichiers ou de répertoires :  . qui désigne le répertoire courant.  .. qui désigne le répertoire père, c'est à dire celui qui se trouve immédiatement au- dessus du répertoire courant dans la hiérarchie.  ~ qui désigne le répertoire d'accueil.  ? remplace un caractère quelconque.  * remplace une chaîne de caractères quelconque (y compris une chaîne vide).  [...] remplace les caractères entre crochets, définis par énumération ou par intervalle.  Exemples :  [Aa] désigne les caractères A ou a.  [a-zA-Z] désigne un caractère alphabétique quelconque.
  • 25. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 19 3.1.2.2. Les autres caractères spéciaux  # introduit un commentaire.  $ introduit un nom de variable.  & lance la commande en background.  ; sépare 2 commandes tapées sur une même ligne.  !! relance la commande précédente.  !ch relance la dernière commande commençant par ch.  !n relance la commande numéro n.  ^ch1^ch2 remplace la chaîne ch1 par la chaîne ch2 dans la dernière commande.  Exemple, si la dernière commande est : cat biodn.txt, la commande ^od^do générera la ligne de commande : cat bidon.txt.  <, <<, >, >> et | sont des caractères utilisés pour les redirections des entrées-sorties.  ' délimite une chaîne de caractères contenant des espaces sans substitution de variables.  " délimite une chaîne de caractères contenant des espaces avec substitution de variables.  annule la signification du caractère spécial suivant.  ( et ) font exécuter les commandes incluses dans un sous-Shell.  { et } regroupent les commandes incluses en une liste. 3.2. Fichiers et répertoires Un nom de fichier (ou de répertoire) peut être constitué de lettres minuscules, majuscules, de chiffres et de quelques autres caractères comme « . », « _ », « - ». Le « . » n'a pas la notion d'extension que l'on trouve, par exemple, sous Windows. Un nom de fichier peut d'ailleurs comporter plusieurs « . ». Les noms de fichiers Unix sont limités à 255 caractères et les chemins absolus à 1024. Pour spécifier un nom de fichier, il est possible de donner soit son chemin relatif, soit son chemin absolu.
  • 26. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 20 Le chemin absolu commence par la racine, notée / et indique le chemin à parcourir depuis celle-ci jusqu'au répertoire ou fichier désiré. Par exemple /home/user1/tp/tp1.f est le chemin absolu jusqu'au fichier tp1.f, lui-même contenu dans le sous-répertoire tp de l'utilisateur user1. Le chemin relatif commence par un nom de fichier ou de répertoire, ou éventuellement par un des 3 caractères spéciaux du Shell : « . », « .. » et « ~ ». Par exemple, le fichier désigné précédemment par son chemin absolu peut également être désigné par son chemin relatif. En supposant que l'utilisateur user1 se trouve dans son répertoire d'accueil on peut désigner le fichier par : tp/tp1.f ou ./tp/tp1.f ou ../user1/tp/tp1.f ou ~/tp/tp1.f. 3.3. Redirections des entrées-sorties Il est possible, sous Unix, de rediriger l'entrée ou la sortie d'une commande :  < : redirection de l'entrée.  Exemple : grep abc < essai, la chaîne abc est recherchée dans le fichier essai.  > : redirection de la sortie.  Exemple : ls > liste, le résultat de la commande ls est copié dans le fichier liste. Si le fichier n'existe pas, il est créé, sinon son contenu est écrasé.  >> : redirection de la sortie avec concaténation.  Exemple : ls >> liste2, si le fichier liste2 n'existe pas, il est créé, sinon le résultat de la commande ls est ajouté à la fin du fichier liste2.  | : redirection de la sortie d'une commande sur l'entrée de la commande suivante.
  • 27. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 21  Exemple : ls | grep *.c, la sortie de la commande ls sert d'entrée à la commande grep. Ici, on cherche tous les fichiers sources C dans le répertoire courant. 3.4. Les gestionnaires de paquets Dans les distributions GNU/Linux, un paquet (package) est un fichier d'archives compressé contenant l'ensemble des fichiers nécessaires au fonctionnement d'une application donnée. Les paquets contiennent aussi la liste des autres paquets (dépendances) dont l'application a besoin. Il existe de nombreuses distributions GNU/Linux. Les plus courantes sont :  La distribution "Debian" et ses dérivées (Ubuntu, Mint, Linspire, Mepis, etc.) qui utilisent le format .deb.  La distribution "RedHat" et ses dérivées (CentOS, Fedora, Mandriva, Scientific Linux, etc.) ainsi que "openSUSE" qui utilisent le format .rpm. 3.5. Les principales commandes GNU/Linux Le format d'une commande est généralement de la forme : commande [-option1] [-option2] [-optionn] [arg1] [arg2] [argn] ... Les options et arguments forment ce que l'on appelle les paramètres de la commande. Les arguments présentent généralement un ou plusieurs noms de fichiers ou de répertoires. GNU/Linux est sensible à la casse, c'est-à-dire qu’il fait la différence entre une majuscule et une minuscule. Ainsi "essai", "Essai" ou "ESSAI" désignent des fichiers différents. 3.5.1. Les commandes relatives aux répertoires  Afficher le chemin absolu du répertoire courant : pwd  Afficher le contenu d'un répertoire : ls  Afficher les attributs de répertoires : lsattr  Afficher la taille d'un répertoire : du
  • 28. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 22  Changer de répertoire : cd  Créer un répertoire : mkdir  Supprimer un répertoire : rmdir  Changer les droits d'accès aux répertoires : chmod  Changer les attributs de répertoires : chattr 3.5.1.1. La commande « pwd » La commande pwd affiche le chemin absolu du répertoire courant.  Syntaxe : pwd 3.5.1.2. La commande « ls » La commande ls affiche le contenu d'un répertoire ou d'une liste de fichiers.  Syntaxe : ls [-alrtR] répertoire ou ls [-alrtR] fichiers  Options principales :  -a : affiche également les fichiers commençant par un point.  -l : affiche en format long c'est à dire avec type (répertoire, fichier), droits d'accès, nombre de liens, nom du propriétaire, nom du groupe, taille en octets, date de dernière modification, nom.  -r : inverse l'ordre du tri.  -t : trie par date de dernière modification.  -R : récursif.  Exemples :  ls -aR ~ : affiche la liste des fichiers et sous-répertoires contenus dans le répertoire d'accueil de l'utilisateur.  ls *.c : affiche la liste de tous les fichiers sources C du répertoire courant.
  • 29. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 23 3.5.1.3. La commande « lsattr » La commande lsattr affiche les attributs de répertoires ou de fichiers dans un filesystem ext2, ext3 ou ext4.  Syntaxe : lsattr [-Rad] répertoires ou lsattr fichiers  Options principales :  -R : liste récursivement les attributs d'un (des) répertoire(s).  -a : liste tous les fichiers du (des) répertoires y compris les fichiers commençant par « . ».  -d : affiche les répertoires comme les fichiers plutôt que d'afficher leur contenu. 3.5.1.4. La commande « du » La commande du affiche la taille d'un répertoire.  Syntaxe : du [-ask] répertoire  Options principales :  -a : affiche la taille de tous les fichiers.  -s : affiche le total de chaque répertoire.  -k : affiche le résultat en kilo-octets (et non en blocs de 512 octets).  Exemples :  du -k affiche en kilo-octet la taille des fichiers (ou sous-répertoires) du répertoire courant.  du -sk ~/tp affiche en kilo-octet la taille totale du répertoire tp contenu dans le répertoire d'accueil de l'utilisateur.
  • 30. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 24 3.5.1.5. La commande « cd » La commande cd change le répertoire courant.  Syntaxe : cd répertoire  Exemples :  cd /home/user1/tp fait passer dans le répertoire tp de l'utilisateur user1. C'est équivalent à cd ~user1/tp.  En tapant cd (sans argument), on se retrouve dans le répertoire d'accueil. 3.5.1.6. La commande « mkdir » La commande mkdir crée un répertoire.  Syntaxe : mkdir [-p] répertoire  Option principale : -p crée le(s) répertoire(s) intermédiaire(s).  Exemple : on veut créer le sous-répertoire tp1 dans le répertoire tp. Si tp existe déjà, on tape mkdir tp/tp1 sinon mkdir -p tp/tp1 qui crée tp et tp1. 3.5.1.7. La commande « rmdir » La commande rmdir supprime un répertoire si et seulement s’il est vide. Sinon, il faut utiliser la commande rm.  Syntaxe : rmdir répertoire  Exemple : rmdir tp2 supprime le répertoire tp2 s’il est vide. 3.5.1.8. La commande « chmod » La commande chmod change les droits d'accès aux répertoires ou aux fichiers. On ne peut modifier les droits d'accès à un ou plusieurs répertoires ou fichiers que si l'on en est propriétaire.  Syntaxe : chmod [-R] [ugoa] [+/-r] [+/-w] [+/-x] répertoire(s) ou : chmod [ugoa] [+/-r] [+/-w] [+/-x] fichier(s)
  • 31. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 25  Type d'utilisateur :  u : propriétaire (user).  g : groupe du propriétaire (group).  o : les autres (other).  a : tous (all).  Type d'action :  + signifie qu'on ajoute des droits d'accès.  - signifie qu'on enlève des droits d'accès.  Type d'accès :  r : lecture (read permission).  w : écriture (write permission).  x : exécution (execute permission).  Exemple : chmod -R g+r tp donne les accès en lecture au sous-répertoire tp à tous les membres du groupe. 3.5.1.9. La commande « chattr » La commande chattr change les attributs de répertoires ou de fichiers dans un filesystem ext2, ext3 ou ext4.  Syntaxe : chattr [-Rvf][mode] répertoires ou : chattr [-Vf][mode] fichiers  Options principales :  -R : change récursivement les attributs d'un répertoire.  -V : affichage en mode verbeux.  -f : supprime la plupart des messages d'erreur.  Attributs : Le format du mode est [+-=][acdeijstuADST]  l'opérateur + ajoute l'attribut.  l'opérateur - retire l'attribut.
  • 32. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 26  l'opérateur = définit l'attribut. 3.5.2. Les commandes relatives aux fichiers  Modifier le timestamp de dernier accès et de dernière modification d'un fichier : touch  Identifier le type d'un fichier : file  Convertir l'encodage : iconv  Transposer ou éliminer des caractères : tr  Afficher le contenu d'un fichier :  en entier : cat  page par page : more, less  le début : head  la fin : tail  en ordre inverse : tac  précédé des numéros de lignes : nl  Compter les mots et les lignes d'un fichier : wc  Rechercher les lignes multiples dans un fichier : uniq  Chercher une chaîne de caractères dans un fichier : grep  Trier les champs d'un fichier : sort  Extraire des champs d'un fichier : cut  Ajouter des champs à un fichier : paste  Copier un fichier : cp  Créer un lien sur un fichier : ln  Déplacer ou changer le nom d'un fichier : mv  Découper un fichier : split  Supprimer un fichier : rm  Comparer 2 fichiers :  Rechercher les lignes identiques : comm  Rechercher les lignes différentes : diff  Concaténer 2 fichiers : cat
  • 33. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 27  Copier l'entrée standard sur la sortie standard et dans un fichier : tee.  Rechercher un fichier :  Rechercher dans un répertoire : find  Rechercher dans une base de données : locate 3.5.2.1. La commande « touch » La commande touch modifie le timestamp de dernier accès et de dernière modification d'un fichier. Si aucun fichier n’est spécifié en argument, un fichier vide est créé avec l'horodatage courant. 3.5.2.2. La commande « file » La commande file identifie le type d'un fichier (fichier texte ; fichier archivé, compressé ou codé ; fichier non imprimable ; fichier image). Si file ne reconnaît pas le type d'un fichier, il affiche data.  Syntaxe : file fichier  Exemple : file Fich1 renvoie ASCII text. 3.5.2.3. La commande « iconv » La commande iconv convertit l'encodage.  Syntaxe : iconv -f oldcode -t newcode entree -o sortie  Exemple : iconv -f latin1 -t utf8 test.iso -o test.unic convertit le fichier test.iso en test.unic de l'encodage iso-latin en utf-8.
  • 34. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 28 3.5.2.4. La commande « tr » La commande tr transpose ou élimine des caractères.  Syntaxe : tr [-cstd] chaine1 chaine2  Options principales :  -c ou --complement : remplace chaine1 par son complément c'est à dire tous les caractères n'appartenant pas à chaine1.  -s ou --squeeze-repeats : remplace chaque répétition de caractères appartenant à chaine1 par une seule occurrence de ce caractère.  -d ou --delete car : supprime tous les caractères car présents dans chaine1.  Exemples :  Convertir de minuscules en majuscules (de 3 manières différentes) :  tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ  tr a-z A-Z  tr '[:lower:]' '[:upper:]'  Afficher chaque mot sur une ligne indépendante en convertissant tous les caractères non alphanumériques en sauts de lignes, puis en regroupant les lignes blanches successives en un seul saut de ligne : tr -cs '[a-zA-Z0-9]' '[n*]'.  Convertir les séquences de sauts de lignes en un seul saut de ligne donc en supprimant les lignes blanches : tr -s 'n'. 3.5.2.5. La commande « cat » La commande cat affiche le contenu d'un fichier.  Syntaxe : cat [-n] fichier  Option principale : -n numérote les lignes  Exemples :
  • 35. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 29  cat -n essai1 : affiche le fichier essai1 à l'écran en numérotant les lignes.  cat essai1 essai2 : affiche à l'écran le fichier essai1 puis le fichier essai2. 3.5.2.6. La commande « more » La commande more affiche le contenu d'un fichier page par page.  Syntaxe : more [-c] fichier  Option principale : -c efface la fenêtre avant l'affichage.  Exemple : more essai.c affiche la première page du fichier essai.c.  La touche espace permet d’afficher la page suivante.  La touche [ Enter] permet d’afficher la ligne suivante.  La touche h permet d’accéder à l'aide en ligne.  La touche q permet de quitter. 3.5.2.7. La commande « less » La commande less affiche le contenu d'un fichier page par page. Elle peut être considérée comme le successeur de more. Elle fait la même chose mais offre davantage de possibilités, comme le retour en arrière.  Syntaxe : less [-c] fichier  Option principale : -c efface la fenêtre avant l'affichage. 3.5.2.8. La commande « head » La commande head affiche le début d'un fichier.  Syntaxe : head [-n] fichier  Option principale : -n affiche les n premières lignes du fichier. Par défaut, n = 10.  Exemple : head -10 *.c affiche les 10 premières lignes de tous les fichiers sources C du répertoire courant.
  • 36. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 30 3.5.2.9. La commande « tail » La commande tail affiche la fin d'un fichier.  Syntaxe : tail [-n] fichier  Option principale : -n affiche les n dernières lignes du fichier. Par défaut, n = 10.  Exemple : tail -50 essai affiche les 50 dernières lignes du fichier essai. 3.5.2.10. La commande « tac » La commande tac affiche le contenu d'un fichier en ordre inverse, c'est à dire en commençant par la fin.  Syntaxe : tac fichier  Exemple : tac essai.txt : affiche le fichier essai.txt en ordre inverse, c'est à dire en commençant par la fin. 3.5.2.11. La commande « nl » La commande nl affiche les lignes d'un fichier précédées de leur numéro.  Syntaxe : nl [-ba] fichier  Options principales : -ba numérote aussi les lignes blanches (ou vides).  Exemple : nl -ba essai.c affiche toutes les lignes du fichier essai.c précédées de leur numéro. 3.5.2.12. La commande « wc » La commande wc compte le nombre de lignes, de mots ou de caractères d'un fichier.  Syntaxe : wc [-clw] fichier  Options principales :  -c : renvoie le nombre de caractères (octets).  -l : renvoie le nombre de lignes.  -w : renvoie le nombre de mots.
  • 37. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 31  Exemple : wc -l essai.c renvoie le nombre de lignes du fichier essai.c. 3.5.2.13. La commande « uniq » La commande uniq recherche les lignes consécutives identiques dans un fichier.  Syntaxe : uniq [-udc] fichier  Options principales :  -u : affiche les lignes consécutives identiques une seule fois.  -d : n'affiche que les lignes consécutives identiques.  -c : chaque ligne est précédée de son nombre d'occurrences. 3.5.2.14. La commande « grep » La commande grep recherche une (ou plusieurs) expression(s) dans un fichier.  Syntaxe : grep [-cilnrvE] expression fichier  Options principales :  -c : affiche le nombre de lignes contenant l'expression.  -i : contrairement à la plupart des commandes, l'option -i ne signifie pas interactif mais ignore-case, c'est à dire que grep ne fera pas de différence entre minuscules et majuscules.  -l : n'affiche que le nom des fichiers contenant l'expression.  -n : affiche les numéros des lignes contenant l'expression.  -r : recherche récursivement dans les sous-répertoires du répertoire courant.  -v : inverse la recherche, c'est à dire affiche les lignes ne contenant pas l'expression.  -w : recherche exactement l'expression et non les mots contenant l'expression.  -E ou --extended-regexp : expression régulière étendue qui permet de rechercher plusieurs expressions en même temps.  -A n : affiche n lignes supplémentaires après les lignes qui concordent.  -B n : affiche n lignes supplémentaires avant lignes qui concordent.
  • 38. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 32  Exemples :  grep -i -c 'integer' * : affiche le nombre de fois où les expressions integer, Integer ou INTEGER sont rencontrées dans chaque fichier du répertoire courant.  grep -Eir "fortran|Python" /codes : cherche les chaînes fortran ou Python, sans tenir compte de la casse, dans le répertoire /codes et ses sous- répertoires. 3.5.2.15. La commande « sort » La commande sort trie les champs d'un fichier.  Syntaxe : sort [-fnru] [-t car] [+i] [-j] [-o sortie] fichier  Options principales :  -f : ne tient pas compte des minuscules et majuscules.  -n : trie numérique et non alphabétique.  -r : inverse l'ordre de tri.  -u : n'affiche qu'une fois les lignes multiples.  -t car : indique le caractère séparateur de champs (par défaut, c'est l'espace).  -o sortie : écrit le résultat dans le fichier sortie.  +i : on trie à partir du i-ième champ. i=0, 1, ….  -j : on trie jusqu'au j-ième champ.  Exemples :  sort +1 liste trie le fichier liste (liste de prénoms et noms, e.g. Robert BIDOCHON) par ordre alphabétique des noms.  sort -n -t : +1 -2 adresses : trie le fichier adresses (liste de prénoms, numéros de téléphone et villes, e.g. robert:0380234567:Dijon) par numéros de téléphones.
  • 39. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 33 3.5.2.16. La commande « cut » La commande cut extrait des champs d'un fichier.  Syntaxe : cut [-cf] [-d car] [+i] [-j] fichier  Options principales :  -c : extrait suivant le nombre de caractères.  -f : extrait suivant le nombre de champs.  -d car : indique le caractère séparateur de champs (par défaut, c'est la tabulation).  +i : on trie à partir du i-ième champ. i=1, 2, ….  -j : on trie jusqu'au j-ième champ.  Exemples :  cut -c10 adresses : extrait les 10 premiers caractères de chaque ligne.  cut -d : -f2 adresses : extrait le deuxième champ. 3.5.2.17. La commande « paste » La commande paste ajoute des champs à un fichier.  Syntaxe : paste [-s] [-d car] fichier1 fichier2  Options principales :  -s : les lignes sont remplacées par des colonnes.  -d car : indique le caractère séparateur de champs (par défaut, c'est la tabulation).
  • 40. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 34 3.5.2.18. La commande « cp » La commande cp copie de fichier. Pour copier plusieurs fichiers d'un seul coup, il faut utiliser les caractères spéciaux du Shell.  Syntaxe : cp [-ipr] source cible  Option principale : -p le fichier cible conserve les permissions et la date de dernière modification du fichier source (au lieu de la date courante).  Exemples :  cp tp1/* tp2 : copie tous les fichiers du répertoire tp1 dans le répertoire tp2.  cp -ir tp1 tp2 : copie le répertoire tp1 dans le répertoire tp2 en demandant confirmation à chaque fichier. 3.5.2.19. La commande « ln » La commande ln crée un lien sur un fichier.  Syntaxe : ln [-s] source cible  Option principale : -s crée un lien symbolique. Créer un lien revient à définir un alias à un fichier qui existe déjà. Un lien ne peut se faire qu'entre fichiers d'un même filesystem. Sinon il faut utiliser l'option -s. De manière générale, il est recommandé d'utiliser systématiquement l'option -s.  Exemple : ln -s Mon_Fichier Mon_lien. 3.5.2.20. La commande « mv » La commande mv déplace ou change le nom d'un fichier.  Syntaxe : mv [-fi] source cible. Si cible est un nom de fichier, source est renommé en cible. Si cible est un nom de répertoire, source est déplacé dans le répertoire cible.  Option principale : -f force la commande.
  • 41. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 35  Exemples :  mv essai1 essai2 renomme le fichier essai1 en essai2.  mv tp11.c tp/tp1 : déplace le fichier tp11.c dans le répertoire tp/tp1. 3.5.2.21. La commande « split » La commande split découpe un fichier.  Syntaxe : split [-n] fichier [nom]  Options principales :  -n : découpe fichier en fichiers de n lignes (par défaut, 1000 lignes).  nom : par défaut les fichiers créés sont nommés xaa, xab, xac, ... jusqu'à xzz. Avec cette option, on remplace x par nom : on obtient donc les fichiers nomaa, nomab, etc.  Exemple : split -100 essai.c petit découpe le fichier essai.c en fichiers de 100 lignes nommés petitaa, petitab, etc. 3.5.2.22. La commande « rm » La commande rm supprime un fichier ou un répertoire.  Syntaxe : rm [-if] fichier ou rm [-if] -r répertoire  Options principales :  -i : le système demande confirmation avant la suppression définitive.  -f : force la commande.  Exemples :  rm essai2 : suppression du fichier essai2.  rm -r tp : suppression du répertoire tp.
  • 42. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 36 3.5.2.23. La commande « comm » La commande comm recherche les lignes identiques à 2 fichiers.  Syntaxe : comm [-123] fichier1 fichier2. Elle sépare les lignes en 3 groupes : 1. Les lignes présentes seulement dans le premier fichier. 2. Les lignes présentes seulement dans le deuxième fichier. 3. Les lignes présentes seulement dans les 2 fichiers.  Options :  -1 : n'affiche pas les lignes du premier groupe.  -2 : n'affiche pas les lignes du deuxième groupe.  -3 : n'affiche pas les lignes du troisième groupe. 3.5.2.24. La commande « diff » La commande diff recherche les lignes différentes à 2 fichiers.  Syntaxe : diff fichier1 fichier2  Options principales :  -b : ignore les espaces.  -i : contrairement à la plupart des commandes, l'option -i ne signifie pas interactif mais ignore-case, c'est à dire que diff ne fera pas de différence entre minuscules et majuscules.  -w : ignore les espaces et les tabulations.  --side-by-side : affiche le contenu des 2 fichiers côte à côte et non pas l'un au dessous de l'autre.
  • 43. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 37 3.5.2.25. La commande « tee » La commande tee copie l'entrée standard sur la sortie standard, et dans tous les fichiers fournis en argument. Si un fichier n'existe pas, il est créé. Si le fichier existe déjà, il est écrasé, à moins que l'option -a soit précisée.  Syntaxe : tee [-ai][--append][--ignore-interrupts][--help][fichier...]  Options principales :  -a, --append : Ajouter l'entrée standard aux fichiers indiqués plutôt que de les écraser.  --help : Afficher un message d'aide sur la sortie standard et se terminer normalement.  -i, --ignore-interrupts : Ignorer les signaux d'interruption. 3.5.2.26. La commande « find » La commande find recherche un (ou plusieurs) fichier(s) dans un répertoire. Cette commande est automatiquement récursive.  Syntaxe : find chemin critères  Options principales :  -print affiche le résultat de la recherche.  -name recherche sur le nom du fichier.  -type recherche sur le type (d : répertoire, c : caractère, f : fichier).  -size n : recherche sur la taille du fichier.  -amin n : le fichier a été accédé il y a n minutes.  -atime n : le fichier a été accédé il y a n fois 24 heures.  -cmin n : le statut du fichier a changé il y a n minutes.  -ctime n : le statut du fichier a changé il y a n fois 24 heures.
  • 44. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 38 Pour les options -size, -amin, -atime, -cmin, et -ctime, on peut préciser :  n : exactement n.  -n : inférieur à n.  +n : supérieur à n. Ces options peuvent être combinées aux moyens des opérateurs logiques :  -o : OU logique  -a : ET logique  ! : NON logique  Exemples :  find . -name tp1 -print : cherche le fichier ou le répertoire tp1 dans le répertoire courant.  find tp -name '*.c' -print : cherche tous les fichiers sources C dans le répertoire tp.  find tp -type d -print : cherche tous les sous-répertoires contenus dans le répertoire tp.  find . -size +1954 -print : cherche tous fichiers dont la taille est supérieure à 1954 blocs (environ 1 Mo) dans le répertoire courant.  find tp ( -name '*.c' -o -name '*.f' ) : cherche tous les fichiers sources C ou FORTRAN dans le répertoire tp.  find . ( -name '*.py' -a -amin -1000 ) : cherche tous les fichiers Python accédés depuis moins de 1000 minutes. 3.5.2.27. La commande « locate » La commande locate liste des fichiers d’une base de données correspondant à un motif. On peut mettre à jour manuellement la base de données en utilisant la commande updatedb.  Syntaxe : locate fichier  Options principales :  -i effectue une recherche non sensible à la casse.
  • 45. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 39  -n X limite le nombre de résultats affichés au nombre X choisi,  -r X ou --regexp=X recherche des fichiers dans la base de données en utilisant une expression rationnelle X.  Exemple : locate -i -n 12 toto | grep bin : affichera les douze premiers résultats pour la requête non sensible à la casse de la chaîne toto en se limitant à ceux dans lesquels la chaîne bin apparaît aussi, par exemple : /usr/bin/ToTo, /mnt/bintoto ou encore /home/totoro/bin. 3.5.3. Les commandes d'archivage et de compression  Archivage des données :  tar  Compression des données :  gzip  bzip2  Décompression des données :  gunzip  bunzip2  unzip pour les fichiers MS-DOS. 3.5.3.1. La commande « tar » La commande tar archive des données.  Syntaxe : tar [crtx][v]f cible source  Type d'action :  c : création d'une archive.  r : ajout de fichier(s) ou de répertoire(s) à la fin d'une archive.  t : liste du contenu d'une archive.  x : extraction d'une archive.
  • 46. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 40  Options principales :  v : la commande affiche au fur et à mesure tout ce qu'elle fait.  f : précise le nom du fichier cible.  Exemples :  tar cf tp.tar tp : le répertoire tp est archivé en tp.tar.  tar rf tp.tar tp2 : ajoute le répertoire tp2 à la fin de l'archive tp.tar.  tar tvf tp.tar : liste le contenu de l'archive tp.tar.  tar xf tp.tar : extrait l'archive tp.tar, c'est à dire recrée le répertoire tp. 3.5.3.2. La commande « gzip » La commande gzip compresse des données.  Syntaxe : gzip [-h][-rtv] source  Options principales :  -h : affiche la liste des options de gzip.  -r : récursif. Dans ce cas source est un répertoire.  -t : teste l'intégrité d'un fichier compressé.  -v : la commande affiche au fur et à mesure tout ce qu'elle fait.  -1 : compresse plus vite. Le résultat est plus gros.  -9 : compresse mieux mais plus lentement.  Exemple : gzip tp.tar compresse le fichier tp.tar en tp.tar.gz. 3.5.3.3. La commande « bzip2 » La commande bzip2 compresse des données.  Syntaxe : bzip2 [-h][-tv] source  Options principales :  -h : affiche la liste des options de bzip2.  -t : teste l'intégrité d'un fichier compressé.
  • 47. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 41  -v : la commande affiche au fur et à mesure tout ce qu'elle fait.  -1 : compresse plus vite. Le résultat est plus gros.  -9 : compresse mieux mais plus lentement.  Exemple : bzip2 tp.tar compresse le fichier tp.tar en tp.tar.bz2. 3.5.3.4. La commande « gunzip » La commande gunzip décompresse des données.  Syntaxe : gunzip [-h][-tv][-S suf] source.gz  Options principales :  -h : affiche la liste des options de gunzip.  -t : teste l'intégrité du fichier compressé.  -v : la commande affiche au fur et à mesure tout ce qu'elle fait.  -S suf : autorise le suffixe .suf au lieu de .gz.  Exemple : gunzip tp.tar.gz décompresse le fichier tp.tar.gz en tp.tar. La commande gzip –d donne le même résultat. 3.5.3.5. La commande « bunzip2 » La commande bunzip2 décompresse des données.  Syntaxe : bunzip2 [-h][-tv] source.bz2  Options principales :  -h : affiche la liste des options de bunzip2.  -t : teste l'intégrité du fichier compressé.  -v : la commande affiche au fur et à mesure tout ce qu'elle fait.  Exemple : bunzip2 tp.tar.bz2 décompresse le fichier tp.tar.bz2 en tp.tar. La commande bzip2 –d donne le même résultat.
  • 48. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 42 3.5.3.6. La commande « unzip » La commande unzip décompresse des fichiers MS-DOS.  Syntaxe : unzip [-h] source.zip ou unzip [-h] source.ZIP  Option principale : -h affiche la liste des options de unzip.  Exemple : unzip UTILS.ZIP décompresse le fichier UTILS.ZIP. 3.5.4. Commandes d’aide et d’informations 3.5.4.1. La commande « man » La commande man affiche les pages de manuel expliquant les différentes commandes, leurs fonctionnements et leurs options.  Syntaxe : man commande  Exemple : man ls 3.5.4.2. La commande « which » La commande which permet de trouver l'emplacement d'une commande en effectuant sa recherche par rapport au contenu de la variable PATH, et retourne le chemin du premier fichier correspondant.  Syntaxe : which commande  Exemple : which ls 3.5.4.3. La commande « whereis » La commande whereis fonctionne de façon similaire à which, peut aussi chercher dans les pages de manuel (man) et les codes sources.  Syntaxe : whereis commande  Exemple : whereis ls
  • 49. Chapitre 3. Les commandes GNU/Linux Faycel CHAOUA Systèmes d’exploitation 2 43 3.5.4.4. La commande « whatis » La commande whatis cherche des commandes dans l'intégralité des systèmes de fichiers comme which mais utilise une base de données qui contient une courte description ainsi que des mots clés. La base de données est créée en utilisant la commande makewhatis.  Syntaxe : whatis commande  Exemple : whatis who 3.5.4.5. La commande « apropos » La commande apropos utilise la même base de données que whatis, mais donne plus d'informations.  Syntaxe : apropos commande  Exemple : apropos who
  • 50. Faycel CHAOUA Systèmes d’exploitation 2 44 Chapitre 4. Permissions d'accès aux Fichiers Chapitre 4 : Permissions d'accès aux Fichiers ֍ Durée : 1 heure 30 minutes. ֍ Mots clés : chmod, umask, SUID, SGID, Sticky Bit, chown, chgrp. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Modifier les droits d'accès sur les fichiers et les répertoires. » Examiner les droits spéciaux. » Modifier le propriétaire et le groupe sur les fichiers et les répertoires. Plan du chapitre : 4.1. Les droits sur les fichiers et les répertoires.................................................................... 45 4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires.......................... 47
  • 51. Chapitre 4. Permissions d’accès aux fichiers Faycel CHAOUA Systèmes d’exploitation 2 45 4.1. Les droits sur les fichiers et les répertoires Linux permet de spécifier les droits dont disposent les utilisateurs sur un fichier ou un répertoire par la commande chmod. On distingue trois catégories d'utilisateurs :  u : le propriétaire (user).  g : le groupe.  o : les autres (others). Ainsi que trois types de droits :  r : lecture (read).  w : écriture (write).  x : exécution.  - : aucun droit. Exemples :  pour donner le droit de lire le fichier liste.txt au propriétaire du fichier : chmod u+r liste.txt  pour autoriser une personne du groupe propriétaire du fichier à modifier le fichier : chmod g+w liste.txt  pour autoriser les autres utilisateurs à exécuter le fichier commande.sh : chmod o+x commande.sh Les droits d'accès peuvent aussi s'exprimer en notation octale. Les correspondances sont indiquées dans le tableau 4-1 suivant. On peut utiliser la notation octale pour les droits avec la commande chmod, cela permet de positionner plusieurs types de droits en une seule commande.
  • 52. Chapitre 4. Permissions d’accès aux fichiers Faycel CHAOUA Systèmes d’exploitation 2 46 Exemples :  attribuer les droits rw------- à tous les fichiers : chmod 600 *  attribuer les droits rw-r--r-- à tous les fichiers : chmod 644 *  attribuer les droits rwxr-x--- à tous les fichiers : chmod 750 * Droit Notion octale Droit Notion octale --- 0 r-- 4 --x 1 r-x 5 -w- 2 rw- 6 -wx 3 rwx 7 Tableau 4-1 : Expression des droits sur les fichiers en notation octale Lorsqu’on crée un nouveau fichier, ce dernier possède certains droits par défaut. La commande umask permet de changer ces droits par défaut. Les droits sont indiqués de façon "inverse" en notation octale pour les droits de type r et w seulement.  Pour créer des fichiers en mode rw-r--r-- : umask 022  Pour créer des fichiers en mode ------- : umask 666 Les droits spéciaux Il existe trois droits spéciaux, SUID, SGID et Sticky Bit. Ils peuvent être positionnés par la commande chmod (premier groupe de droits exprimés en octal) :  SUID (Set User ID) : Ce droit s'applique aux fichiers exécutables, il permet d'allouer temporairement à un utilisateur les droits du propriétaire du fichier. Par exemple, la commande /usr/bin/passwd permet d’acquérir les droits de root pour modifier le fichier /etc/shadow. Le bit SUID est positionné par l’option s de la commande chmod, ou bien en positionnant à 1 le premier bit du groupe des droits spéciaux (d’où la valeur 4 de l’exemple suivant) :  chmod 4755 /bin/cat  chmod u+s /bin/grep
  • 53. Chapitre 4. Permissions d’accès aux fichiers Faycel CHAOUA Systèmes d’exploitation 2 47  SGID (Set Group Id) : ce droit fonctionne de la même façon que le droit SUID en ce qui concerne les exécutables mais en donnant à l’utilisateur les droits du groupe auquel appartient le propriétaire de l'exécutable. Le SGID peut aussi être attribué à un répertoire : dans ce cas tout fichier créé dans un répertoire portant le SGID aura comme groupe propriétaire le groupe du répertoire. Ce bit est positionné par l'option s de la commande chmod, ou bien en positionnant à 1 le deuxième bit du groupe des droits spéciaux (d’où la valeur 2 de l’exemple suivant) :  chmod 2755 /home/lpi102  chmod g+s /home/lpi102  Sticky Bit : si le Sticky Bit est positionné sur un répertoire, seul le propriétaire d'un fichier contenu dans ce répertoire pourra le renommer ou le supprimer, mais tous les utilisateurs pourront y avoir accès. Le Sticky Bit est par exemple toujours positionné sur les répertoires /tmp ou /var/mail/. Ce bit est positionné par l'option t de la commande chmod, ou bien en positionnant à 1 le troisième bit du groupe des droits spéciaux (d’où la valeur 1 de l’exemple suivant) :  chmod 1666 /home/lpi/partagé  chmod o+t /home/lpi/partagé Historiquement, le Sticky Bit positionné sur un fichier indiquait au système de le maintenir en mémoire à la suite d’un premier chargement pour des questions d’efficacité. 4.2. Modifier le propriétaire et le groupe sur les fichiers et les répertoires La commande chown permet de spécifier le propriétaire d’un fichier ou d’un répertoire : chown le_propriétaire /home/lpi/monfichier Linux permet de spécifier le groupe d’un fichier ou d’un répertoire par la commande chgrp : chgrp le_groupe /home/lpi/monfichier
  • 54. Faycel CHAOUA Systèmes d’exploitation 2 48 Chapitre 5. Gestion des utilisateurs et des groupes Chapitre 5 : Gestion des utilisateurs et des groupes ֍ Durée : 1 heure 30 minutes. ֍ Mots clés : useradd, usermod, userdel, id, newgrp, groups, groupadd, groupmod, groupdel, passwd, gpasswd, /etc/passwd, /etc/shadow, /etc/group, /etc/login.defs, chage. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Gérer les comptes utilisateurs et les groupes. » Interpréter les fichiers de configuration des utilisateurs et des groupes. Plan du chapitre : 5.1. Les utilisateurs............................................................................................................... 49 5.2. Les groupes.................................................................................................................... 50 5.3. Les fichiers de configuration ......................................................................................... 51 5.3.1. Gestion des utilisateurs ........................................................................................... 51 5.3.2. Gestion des groupes ................................................................................................ 52 5.3.3. Fichiers de configuration par défaut ....................................................................... 52 5.4. Gestion des comptes et des options de création par défaut ........................................... 52 5.4.1. Comment bloquer un compte.................................................................................. 53 5.4.2. Gestion des informations d’expiration du compte.................................................. 53 5.4.3. Destruction d’un compte......................................................................................... 53
  • 55. Chapitre 5. Gestion des utilisateurs et des groupes Faycel CHAOUA Systèmes d’exploitation 2 49 5.1. Les utilisateurs Pour la création d’un utilisateur, on utilise la commande /usr/sbin/useradd ou son alias /usr/sbin/adduser qui est un lien symbolique vers la commande précédente pour des raisons de compatibilité historique.  Syntaxe : /usr/sbin/useradd [options] nom-utilisateur  Quelques options utiles :  -c : commentaire.  -g : groupe.  -s : Shell. Pour ajouter un utilisateur « user1 » dans le groupe « chefs » avec le Shell « tcsh » : /usr/sbin/useradd -c 'User 1 le chef' -g 'chefs' -s '/bin/tcsh' user1 Les options par défaut se trouvent dans le fichier /etc/default/useradd, ou bien sont listées par l’option -D de la commande useradd. Chaque utilisateur possède un identifiant ou UID (user identifier), numéro généré automatiquement et compris entre 500 et 60 000. Un autre intervalle de valeurs peut si nécessaire être imposé. Il doit dans ce cas être spécifié dans le fichier /etc/login.defs. Pour activer le compte, l’administrateur doit définir un mot de passe pour le compte par la commande /usr/bin/passwd :  Syntaxe : /usr/bin/passwd nom-utilisateur  Exemple : /usr/bin/passwd user1 Cette commande permet également à l’utilisateur de changer lui-même son mot de passe.
  • 56. Chapitre 5. Gestion des utilisateurs et des groupes Faycel CHAOUA Systèmes d’exploitation 2 50 5.2. Les groupes Un utilisateur appartient toujours au moins à un groupe dit groupe primaire (primary group). Si le groupe n’est pas spécifié au moment de la création du compte deux stratégies générales sont employées pour assigner un groupe par défaut :  Le groupe par défaut est le même pour tous. Il s’appelle par exemple « users » ;  La distribution Red Hat a introduit la notion de groupe privé par utilisateur ou UPG (User Private Group). Le nom du groupe est identique à celui du login. Selon la stratégie employée, le masque par défaut (umask) de création est initialisé à 022 dans le premier cas (classique) et à 002 dans le deuxième cas (UPG). Si un utilisateur crée un fichier, celui-ci appartiendra par défaut au groupe primaire de l’utilisateur. Un utilisateur peut appartenir à d’autres groupes, ce sont les groupes secondaires. La commande id permet de connaître la liste des groupes auxquels l’utilisateur appartient. Dans l’exemple qui suit, l’utilisateur « moi » appartient au groupe primaire « normal » et aux groupes secondaires « compta » et « chefs ». La commande newgrp permet de changer temporairement de groupe primaire, à condition que le nouveau groupe soit un groupe secondaire de l’utilisateur ou que l’utilisateur en connaisse le mot de passe. Par exemple : newgrp chefs. La commande id donne alors : La commande groups permet elle aussi d’afficher les groupes auxquels appartient un utilisateur.
  • 57. Chapitre 5. Gestion des utilisateurs et des groupes Faycel CHAOUA Systèmes d’exploitation 2 51 Pour ajouter un groupe, on utilise la commande groupadd : groupadd forcats. Pour supprimer un groupe, on utilise la commande groupdel : groupdel forcats. Ces commandes mettent à jour le fichier /etc/group. Pour gérer les utilisateurs d’un groupe, on utilise la commande gpasswd. Les options sont les suivantes :  -a : ajout d’un utilisateur.  -d : retrait d’un utilisateur.  -A : affectation d’un administrateur au groupe. Par exemple : gpasswd -a nicolas forcats. 5.3. Les fichiers de configuration 5.3.1. Gestion des utilisateurs Le fichier /etc/passwd contient les informations sur les utilisateurs, structurées en 7 champs :  Login.  Mot de passe ou « x » s’il existe un fichier /etc/shadow.  UID.  GID.  Description de l’utilisateur.  Répertoire par défaut de l’utilisateur.  Shell. Les 7 champs sont présentés sur une ligne et séparés par le caractère « : ». Une ligne extraite d’un fichier /etc/passwd avec utilisation d’un fichier /etc/shadow :
  • 58. Chapitre 5. Gestion des utilisateurs et des groupes Faycel CHAOUA Systèmes d’exploitation 2 52 5.3.2. Gestion des groupes Le fichier /etc/group contient les informations sur les groupes, structurées en 4 champs :  Nom du groupe.  Mot de passe du groupe ou « x » s’il existe un fichier /etc/gshadow.  GID.  Liste des utilisateurs du groupe. Les 4 champs sont présentés sur une ligne et séparés par le caractère « : ». 5.3.3. Fichiers de configuration par défaut Le fichier /etc/login.defs contient les informations par défaut sur la validité des comptes et des mots de passe des utilisateurs. Ces informations sont stockées dans le fichier /etc/shadow lors de la création du compte. 5.4. Gestion des comptes et des options de création par défaut Les options de configuration d’un compte peuvent être modifiées par la commande usermod :  -l : nouveau nom d’utilisateur.  -c : commentaire.  -g : groupe (il doit exister au préalable).  -s : Shell.  -d : chemin du répertoire home.  -u : identifiant utilisateur (UID).  -p : mot de passe à entrer en format md5.  -e : informations d’expiration du compte. Les options de configuration d’un groupe peuvent être modifiées par la commande groupmod:  -n : nouveau nom du groupe.  -g : identifiant du groupe (GID).
  • 59. Chapitre 5. Gestion des utilisateurs et des groupes Faycel CHAOUA Systèmes d’exploitation 2 53 5.4.1. Comment bloquer un compte Un moyen simple est de faire précéder le mot de passe par un « ! » dans les fichiers de configuration. Lors de l’utilisation d'un fichier /etc/shadow, on peut remplacer également le « x » dans le fichier /etc/passwd par un « * ». Une autre méthode consiste à utiliser les commandes passwd et usermod :  passwd –l  usermod –L Pour débloquer le compte en utilisant les mêmes commandes :  passwd –u  usermod –U On peut aussi détruire le mot de passe : passwd –d. Enfin, on peut affecter à un utilisateur le Shell par défaut /bin/false, ce qui l’empêche de se connecter. 5.4.2. Gestion des informations d’expiration du compte Pour modifier les informations par défaut (/etc/login.defs) et les informations d’expiration, on utilise la commande /usr/bin/chage : 5.4.3. Destruction d’un compte On utilise la commande /usr/sbin/userdel. L’option -r (--remove-home) permet de détruire également le contenu du répertoire home : userdel -r user1.
  • 60. Faycel CHAOUA Systèmes d’exploitation 2 54 Chapitre 6. Système de gestion de processus Chapitre 6 : Système de gestion de processus ֍ Durée : 1 heure 30 minutes. ֍ Mots clés : PID, init, systemd, ps, top, pstree, kill, killall, nice, renice, job, nohup. ֍ Objectifs : À l'issue de ce chapitre, vous serez en mesure de : » Lister les processus en cours d’exécution. » Arrêter un ou plusieurs processus. » Modifier la priorité d’un processus. » Lancer un processus en tâche de fond. Plan du chapitre : 6.1. Introduction ................................................................................................................... 55 6.2. La commande « ps »...................................................................................................... 55 6.3. La commande « top » .................................................................................................... 56 6.4. La commande « kill ».................................................................................................... 56 6.5. La commande « nice »................................................................................................... 57 6.6. La commande « renice »................................................................................................ 58 6.7. Les processus et le Shell................................................................................................ 58 6.8. La commande « nohup » ............................................................................................... 59
  • 61. Chapitre 6. Système de gestion de processus Faycel CHAOUA Systèmes d’exploitation 2 55 6.1. Introduction Ce qui est désigné comme processus est une instance de programme s’exécutant à un instant donné ainsi que son contexte (ou environnement). Ce dernier terme désigne l’ensemble des ressources utilisées par le programme pour pouvoir se dérouler, comme par exemple la mémoire, les fichiers ouverts, les droits associés, la priorité, etc. Les processus sont identifiés par un numéro unique dans le système à un moment donné, le PID. C'est à l’aide de ce nombre que l’on peut désigner une instance de programme et interagir avec. Les processus sont également caractérisés par un propriétaire. Il s’agit de l’utilisateur qui en a demandé l’exécution. En général, seul ce propriétaire pourra entreprendre des actions sur le processus. Les processus sont créés par « clonage ». Le premier processus créé est le processus init (systemd) qui est l’ancêtre de tous les autres. La commande pstree affiche les processus sous forme d’arborescence. On peut donc visualiser qui est le processus parent d’un autre. L’option –p affiche le PID de chaque processus et l’option –u affiche le nom de l’utilisateur ayant lancé le processus. 6.2. La commande « ps » La commande ps permet de lister les processus en cours d’exécution.  Syntaxe : ps [-Aefl]  Options principales :  -A : affiche tous les processus.  -e : affiche tous les processus.  -f : affiche toutes les informations.  -l : affiche en format long.  Exemple : ps -Af | head -5 affiche les informations relatives aux 4 premiers processus.
  • 62. Chapitre 6. Système de gestion de processus Faycel CHAOUA Systèmes d’exploitation 2 56 UID PID PPID C STIME TTY TIME CMD root 0 0 0 nov 08 ? 0:00 sched root 1 0 0 nov 08 ? 0:03 /etc/init - root 2 0 0 nov 08 ? 0:01 pageout root 3 0 0 nov 08 ? 10:00 fsflush Les 8 champs correspondent à :  UID : propriétaire du processus.  PID : numéro du processus.  PPID : numéro du processus-père.  C : obsolète.  STIME : heure de début du processus.  TTY : pseudo-terminal contrôlant le processus.  TIME : durée d'exécution du processus.  CMD : nom de la commande. Dans la pratique, nous n'avons besoin que des champs UID, PID et éventuellement TIME. 6.3. La commande « top » La commande top permet d’afficher des informations en continu sur l’activité du système. Elle permet surtout de suivre les ressources que les processus utilisent (quantité de RAM, pourcentage de CPU, durée d’exécution d’un processus depuis son démarrage).  Syntaxe : top [-d delay][-n iterations][-p pid}[-u user]  Option principale : -d permet de spécifier des délais de rafraîchissement (en secondes). 6.4. La commande « kill » La commande kill permet de supprimer un processus.  Syntaxe : kill –signal pid  Option principale : -signal est le numéro du signal envoyé au processus :  -1 : simule une déconnexion.  -15 : ordonne au processus de se terminer normalement.
  • 63. Chapitre 6. Système de gestion de processus Faycel CHAOUA Systèmes d’exploitation 2 57  -9 : ordonne au processus de se terminer inconditionnellement comme dans le cas des processus qui bouclent.  Exemple : On récupère le numéro du processus par la commande ps dans le champ PID. La commande ps –Af | grep user1 renvoie la liste de tous les processus lancés par l'utilisateur user1.  user1 1724 1722 0 Nov 28 ? 0:00 –csh  user1 1749 1747 1 Nov 28 ? 0:00 –csh  user1 1759 1724 8 Nov 28 ? 46:16 essai. Le processus 1759 correspondant au programme essai qui semble boucler (il tourne depuis plus de 46 h). Pour le supprimer, on tape : kill -9 1759. Si l’on ne connaît pas le PID du processus auquel on veut envoyer un signal, on peut le désigner par son nom en utilisant la commande killall.  Syntaxe : killall signal nom_du_processus 6.5. La commande « nice » La priorité d’un processus peut être connue en examinant la colonne PRI du résultat des commandes ps –l ou top. Plus la priorité est grande, plus de temps CPU est offert au processus. Le noyau gère la priorité moyennant une file d’attente de processus. Un utilisateur autorisé peut modifier la priorité des processus à travers une valeur de gentillesse ou valeur nice (colonne NI du résultat des commandes ps –l ou top). La valeur nice varie de -20 à +19, plus elle est élevée, moins le processus est prioritaire. La commande nice permet de modifier la priorité d'un processus au démarrage du processus.  Syntaxe : nice [-n Valeur] [Commande [Arguments ...]]  Option principale : -n indique la valeur de nice. L’utilisateur standard ne peut utiliser qu’une valeur nice positive, seul le super-utilisateur (root) peut utiliser des valeurs négatives.
  • 64. Chapitre 6. Système de gestion de processus Faycel CHAOUA Systèmes d’exploitation 2 58  Exemple : nice -n 19 mon_programme. Cette commande lance mon_programme avec la priorité la moins basse possible. 6.6. La commande « renice » La commande renice permet de modifier la priorité d’un ou plusieurs processus en cours d’exécution.  Syntaxe : renice [-n] nouvelle_valeur_nice [[-p] pid ] [-g] prgg ] [-u] utilisateur]  Options :  -n : la nouvelle priorité.  -p : des identifiants de processus.  -g : des identifiants de groupes de processus. Utiliser renice sur un groupe de processus implique que tous les processus de ce groupe auront leur priorité modifiée.  -u : des noms d’utilisateurs. Lorsqu’un utilisateur est spécifié, tous les processus appartenant à celui-ci auront leur priorité modifiée.  Exemples :  La commande ps -l | grep mon_processus permet d’obtenir le PID de mon_processus.  La commande renice -n 10 -p PID_de_mon_processus permet de modifier la valeur de nice. 6.7. Les processus et le Shell Si on lance un programme depuis un terminal, l’interpréteur de commande (Shell) ne rend la main que quand le programme ainsi lancé est terminé. Il est possible d’interrompre ce programme et de reprendre la main en utilisant la combinaison de touches <Ctrl>-<Z>. Ajouter le signe « & » à la fin de la ligne de commande permet de lancer le programme en arrière-plan – on parle aussi de tâche de fond – et de reprendre tout de suite la main : on