Académique Documents
Professionnel Documents
Culture Documents
Linus B.Torvalds est à l'origine de ce système d'exploitation entièrement libre. Au début des années 90,
il voulait mettre au point son propre système d'exploitation pour son projet de fin d'étude. Linus
Torvalds avait pour intention de développer une version d'UNIX pouvant être utilisé sur une architecture
de type 80386. Le premier clone d'UNIX fonctionnant sur PC a été Minix, écrit par Andrew
Tanenbaum, un système d'exploitation minimal pouvant être utilisé sur PC. Linus Torvalds décida donc
d'étendre les possibilités de Minix, en créant ce qui allait devenir Linux. Amusées par cette initiative, de
nombreuses personnes ont contribué à aider Linus Torvalds à réaliser ce système, si bien qu'en 1991 une
première version du système a vu le jour. C'est en mars 1992 qu'a été diffusée la première version ne
comportant quasiment aucun bug.
Avec le nombre croissant de développeurs travaillant sur ce système, celui-ci a rapidement pu intégrer
des redéveloppements libres des outils présents sous les systèmes UNIX commerciaux. De nouveaux
outils pour Linux apparaissent désormais à une vitesse vertigineuse.
L'originalité de ce système réside dans le fait que Linux n'a pas été développé dans un but commercial.
En effet aucune ligne de code n'a été copiée des systèmes UNIX originaux (en effet Linux s'inspire de
nombreuses versions d'UNIX commerciales: BSD UNIX, System V.). Ainsi, tout le monde, depuis sa
création, est libre de l'utiliser mais aussi de l'améliorer.
Bien que Linux ait été initialement conçu pour fonctionner sur plateforme PC, il a désormais été porté
(c'est-à-dire adapté) vers de nombreuses autres plateformes, telles que Macintosh, stations SPARC,
stations DEC Alpha, et même des plateformes telles que des assistants personnels (PDA), voire des
consoles de jeu vidéo !
Linux est architecturé autour d'un noyau (en anglais kernel) chargé de prendre en charge le matériel.
On appelle distribution l'assemblage d'un ensemble de logiciels autour d'un noyau Linux afin de fournir
un système clé en main. Le noyau d'une distribution peut-être mis à jour afin de permettre la prise en
compte de matériels récents. Toutefois cette manipulation consistant à recompiler le noyau est délicate
car elle nécessite un certain niveau de connaissance du système et du matériel. La recompilation du
noyau est à réserver aux spécialistes ou bien aux utilisateurs prêts à rendre inutilisable leur système dans
le but d'apprendre.
La plupart des distributions proposent également une installation graphique qui leur sont propres ainsi
qu'un système de gestion de paquetages permettant d'installer automatiquement des logiciels en gérant
les dépendances (les logiciels sous Linux sont parfois liés à des librairies externes ou s'appuient sur
d'autres logiciels).
Chaque distribution possède ses avantages et ses inconvénients. En effet si certaines sont plus adaptées à
des débutants et proposent des interfaces graphiques évoluées, d'autres privilégient la sécurité ou
l'évolutivité. Les distributions les plus connues sont :
La distribution RedHat ;
La distribution Debian ;
La distribution SuSe ;
La distribution Knoppix ;
2
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
La distribution Slackware ;
La distribution Mandriva.
La FSF (Free Software Foundation) a été fondée au début des années 80 par Richard Stallman. Le but
de cette fondation est de développer les logiciels libres. Néanmoins, ces logiciels peuvent être vendus
bien que ce soit rarement le cas en pratique, car il existe toujours un moyen légal en vertu de la licence
de se les procurer gratuitement.
Le projet GNU (GNU is NOT UNIX) est un projet de la FSF dont le but est de développer un système
d’exploitation complet, distribué selon les conditions GPL. Ce système d’exploitation reprend un certain
nombre de concepts de UNIX, mais ce n’est pas UNIX. Richard Stallman a commencé ce projet seul,
juste après avoir créé la FSF.
Le code source du noyau de Linux est accessible gratuitement, ce qui fait que ce système peut être
compilé sur d'autres plates-formes que le PC. Afin de permettre la distribution de programmes exempts
de droits, la fondation FSF (Free Software Foundation, traduisez Fondation pour les logiciels libres) a
développé un projet nommé GNU (pour la petite histoire, GNU est un acronyme récursif signifiant
«GNU is Not Unix»). Les utilitaires GNU sont soumis aux termes de la licence d'utilisation GPL
(General Public License) décrivant les conditions légales de l'utilisation, de la distribution ou la
modification du code source.
la licence GPL permet la modification du programme original, et sa diffusion (sous licence GPL)
;
la licence GPL autorise la vente du logiciel libre sous sa forme originelle ou modifiée, à
condition que le vendeur autorise la diffusion (même gratuite) du logiciel ainsi modifié ;
la licence GPL autorise l'utilisation du logiciel à des fins lucratives (permettant des bénéfices) ;
les logiciels sous licence GPL restent la propriété de leurs auteurs, personne ne peut donc
s'approprier tout ou partie des droits d'auteur ;
la licence n'implique aucune forme de rémunération des auteurs.
Cette licence est parfois appelée copyleft, par analogie avec copyright, un mot anglais qui signifie
"droits d'auteur" (right signifie droite ou droit au sens permission d'exploitation tandis que left signifie
gauche ou laissé, c'est-à-dire qu'on laisse de larges droits - de modification notamment - au futur
utilisateur).
Linux est un système d'exploitation proche des systèmes UNIX pouvant être exécuté sur différentes
plates-formes matérielles : x86 (c'est-à-dire des plates-formes à base de processeurs Intel, AMD, etc.),
3
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Sparc, PowerPC, Alpha, ARM, etc. Ainsi le système Linux peut fonctionner aussi bien sur des
ordinateurs personnels que des consoles de jeu ou des assistants personnels !
Linux est ainsi un système multi plate-forme. Il est également multiutilisateurs (plusieurs personnes
peuvent en même temps travailler sur le même ordinateur), mais aussi multitâches (plusieurs
applications peuvent être lancées en même temps sans qu'aucune n'affecte les autres) et
multiprocesseurs. Linux est considéré comme un système fiable, robuste et puissant. Il est d'ailleurs
capable de fonctionner avec très peu de ressources sur des ordinateurs bas de gamme très peu puissants.
Il existe une abondante documentation concernant l’installation de Linux et son utilisation. Parmi celles-
ci, on peut citer les différents HOW TO disponibles avec les distributions et certains ouvrages de
synthèses comme le Guide ROOTard.
Avec certaines distributions, des facilités ont été offertes pour l’installation surtout dans la cohabitation
avec le système d’exploitation Windows. Nous allons donc voir deux méthodes d’installation d’une
distribution Linux.
Wubi (Windows-based Ubuntu Installer) est certainement la manière la plus simple de découvrir
Ubuntu. Cette méthode n’est pas universelle, mais est accessible même aux plus débutants. Pour
commencer, il faut savoir que cette méthode permet d’installer deux systèmes d’exploitation (à savoir
Windows et Linux) sans trop d’intervention et de configuration. Il faudrait pour cela et pour une
meilleure sécurité créer une partition dédiée à accueillir la nouvelle distribution Linux.
Après avoir inséré le CD d’installation ou après avoir monté l’image ISO, une fenêtre s’ouvre :
4
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
A la fin de l’installation, vous devez redémarrer. A l’amorçage, vous devez choisir l’option « Ubuntu »
et laisser faire l’installation jusqu’au prochain redémarrage.
Descendez sur l’option « Installer Ubuntu ». Après le chargement, le processus d’installation se lance
alors et vous demande la langue principale que vous souhaitez utiliser pour votre système.
Vous pouvez à chaque fois passer à l’étape suivante en cliquant sur le bouton Avancer.
Il faut ensuite choisir son fuseau horaire. Si le choix par défaut ne vous convient pas, cliquez une
première fois sur le continent de votre choix afin d’effectuer un zoom. Choisissez ensuite la grande ville
la plus proche.
6
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Et voici déjà la troisième des sept étapes pour installer Ubuntu sur votre ordinateur : le choix du clavier.
Ce choix est particulièrement important, rien n’est en effet plus perturbant que d’avoir un clavier mal
configuré.
Étape la plus critique et la plus fastidieuse, le partitionnement consiste à organiser votre disque dur afin
d’accueillir Ubuntu de manière optimale. L’utilisation d’outils graphiques intuitifs lors de l’installation a
grandement simplifié ce processus réputé particulièrement complexe.
Il faut imaginer que votre disque dur est un large espace. Pour une utilisation idéale par le système, ce
grand espace est découpé en plusieurs sous-espaces parfaitement indépendants, appelés partitions.
Le partitionnement est une étape qui demande beaucoup de précaution, car elle peut entraîner la perte
des données écrites sur le disque. Pour cette raison, si vous avez bien suivi les étapes de préparation
décrites précédemment, vous avez sauvegardé vos données en les gravant sur CD-Rom, DVD, ou en
envoyant une copie sur un espace web (à condition qu’il ne s’agisse pas de données confidentielles).
Avant toute modification pouvant entraîner une perte de données, l’installeur d’Ubuntu demande
confirmation pour prévenir les risques de mauvaises manipulations.
La première chose à faire est de sélectionner le disque dur sur lequel installer Ubuntu. Dans la majorité
des cas, votre ordinateur ne dispose que d’un seul disque physique et cette étape est superflue. Une fois
le disque sélectionné, plusieurs possibilités s’offrent à vous :
7
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Si vous avez choisi de partitionner manuellement, vous êtes alors confronté à l’interface de GParted, le
logiciel de partitionnement. Sur un système Linux, à chaque partition sera affecté un emplacement
particulier du système appelé « point de montage ». Ainsi, la partition racine, partition indispensable
contenant l’ensemble du système sera affectée au point de montage « / ». Cette partition doit faire au
moins 4 Go. Actuellement, nous n’allons pas encore nous préoccuper des points de montage. Nous
allons uniquement créer les partitions.
Une partition doit contenir un système de fichiers. Celui-ci est, en quelque sorte, la manière dont les
données sont encodées sur le disque. Windows utilise le système de fichiers FAT32 et, depuis Windows
2000, le système NTFS. Les systèmes GNU/Linux utilisent différents systèmes de fichier. Dans notre
cas, nous utiliserons celui appelé EXT3.
En jouant avec le redimensionnement et l’effacement des partitions, vous devez arriver à créer un espace
libre suffisant pour installer Ubuntu. 5 ou 6 Go sont un minimum extrême. Dans l’exemple, nous
disposons d’un disque de 40 Go, que nous décidons de « partitionner en deux » : 20 Go pour Windows,
20 Go pour Ubuntu.
Une fois l’espace libre créé, nous allons créer de nouvelles partitions. Vous devez créer au moins une
partition swap dont la taille équivaudra à la RAM disponible (deux fois celle de votre RAM) dans votre
PC, et une partition de 6 Go en EXT3, qui sera la racine.
La configuration à trois partitions (racine, espace utilisateurs et swap) est la plus conseillée pour une
utilisation courante. Si votre espace disque est fortement limité, optez pour la configuration double
8
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
(racine, swap). Il est cependant possible de réaliser un partitionnement extrêmement fin en séparant le
répertoire destiné aux applications (/usr), le répertoire nécessaire à démarrer la machine (/boot), le
répertoire de travail (/var) voire le répertoire temporaire (/tmp). L’utilité d’un tel partitionnement sort
néanmoins du cadre de ce livre et n’est absolument pas nécessaire à notre niveau d’utilisation. Une fois
satisfait de l’allure de votre disque dur, vous pouvez cliquer sur Suivant.
La prochaine étape de ce processus d’installation concerne votre identité ainsi que celle de la machine.
Dans le premier champ, vous devez renseigner votre nom complet. Il n’y a pas de restriction sur les
caractères disponibles ou sur la longueur.
Le second champ est votre nom d’utilisateur, aussi appelé identifiant ou login. Il doit s’agir d’un nom
court, entièrement en minuscule, sans espace ni accent ou caractère spécial. Il s’agit généralement du
prénom ou du surnom.
Chaque utilisateur est identifié par un mot de passe. Veuillez choisir un mot de passe que vous êtes
certain de retenir et entrez-le dans les deux champs dédiés à cet usage. Le second champ sert de
confirmation au premier, il est impératif de taper deux fois exactement le même mot de passe. Attention,
la distinction entre minuscules et majuscules est importante ! Soyez sûrs que la touche Caps Lock n’est
pas activée par erreur.
9
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Un écran récapitulatif vous informe de tous les changements qui vont être effectués sur votre système
durant l’installation. Vérifiez-les attentivement.
Il est encore temps de revenir en arrière. Jusqu’à présent, aucun changement n’a encore été réalisé sur
votre système. Une fois satisfait, et enfoncez le bouton Installer. Il ne vous reste plus qu’à être patient.
Une barre de défilement vous informe du temps restant.
À la fin de l’installation, un message va vous informer que vous devez redémarrer. Acceptez ce
message, l’ordinateur s’éteint et vous laisse la possibilité de sortir le CD.
10
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
L’ordinateur redémarre alors et vous propose la liste des systèmes installés sur votre ordinateur.
Choisissez Ubuntu et appuyez sur Entrée puis connectez-vous en insérant votre identifiant et votre mot
de passe.
/bin : répertoire contenant les binaires fondamentaux à la gestion de Linux, les commandes et
utilitaires employés par les utilisateurs
/boot : répertoire contenant toutes les informations permettant de charger Linux
/dev : Répertoire contenant tous les fichiers périphériques permettant d’accéder aux composants
matériels
/etc : répertoire contenant les commandes et les fichiers de paramétrage nécessaire à
l’administration système
/lib : Répertoire contenant les bibliothèques communes à tous les utilisateurs
/proc : répertoire spécial utilisé par le système et contenant la liste des processus en cours
d’exécution
/sbin : répertoire contenant les commandes et utilitaires utilisés seulement par l’administrateur
/tmp : répertoire contenant les fichiers temporaires
/usr : répertoire composé d’un certain nombre de sous-répertoires utilisés par l’ensemble de tous
les utilisateurs
/var : répertoire spécial utilisé par le système pour stocker les données souvent modifiées
Le shell, ou interpréteur de commandes, est l’un des programmes les plus utilisés sous Unix. C’est en
effet lui qui va permettre à l’utilisateur de communiquer avec son système.
Lorsque vous finissez d’insérer votre login et votre mot de passe, vous êtes devant le prompte du shell.
C’est à partir de ce moment que vous pouvez saisir des commandes. Le prompte du shell se présente
comme suit :
11
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Il existe deux modes sous Linux : le mode graphique et le mode texte ou console. Pour passer du
mode console au mode graphique on fait CTRL+ALT+F7. Pour le mode texte, nous avons six pseudo-
terminaux que nous pouvons ouvrir en faisant CTRL+ALT+FN (N = [1à 6]).
Pour se connecter en tant que administrateur, on tape sudo –s pour Ubuntu ou su root pour Red Hat par
exemple. Pour revenir en mode utilisateur, on tape exit.
Pour toutes les commandes, il est possible d’obtenir de l’aide en tapant man suivi du nom de la
commande.
En tapant une commande suivie du paramètre --help, nous obtenons la listes des paramètres possibles.
Etant donné que le système mémorise le répertoire courant (répertoire dans lequel nous sommes), on
peut utiliser des noms de chemins relatifs :
$ cd /home/astc/essai chemin absolu
$ cd essai chemin relatif
12
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Pour afficher (on parle parfois de lister) le contenu d’un répertoire, on utilise la commande ls.
Pour créer un répertoire, il suffit d’utiliser la commande médira avec le nom du ou des répertoires
passés en paramètres
Une option intéressante avec la commande mkdir est l’option « -p » car elle permet de créer une suite
de répertoires imbriqués
13
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Quant à la commande rmdir, elle permet de supprimer un répertoire ne contenant pas de fichiers ou de
dossiers créés
Ici, nous allons utiliser l’éditeur que nous trouvons sur la plupart des systèmes d’exploitation Linux à
savoir vi. Cet éditeur de texte n’utilise pas d’interface graphique. Il prend en charge les commandes et
les données en même temps. Une fois vi lancé, deux modes de fonctionnement se présentent : le mode
commandes et le mode d’édition :
pour passer du mode d’édition au mode commandes, il suffit d’appuyer sur la touche ECHAP
pour passer du mode commandes au mode d’édition, il faut taper une touche d’insertion
a. Touches d’insertion
b. modes commandes
/ « mot » : recherche l’instance « mot » dans le fichier (n pour le mot suivant dans le fichier et N
pour le précédent)
: « nombre » : va à la ligne numéro « nombre »
:q ou :q! : quitte l’éditeur sans sauvegarder et affiche le prompte du shell
:w ou :w! : sauvegarde sans quitter l’éditeur
:x ou :x! : sauvegarde, quitte l’éditeur puis affiche le prompte du shell
Les liens forment un axe central dans le fonctionnement des fichiers au sein de Linux. Un lien est un
type spécial de fichiers qui permet à plusieurs noms de fichiers de faire référence au même fichier sur le
disque. On peut distinguer deux sortes de liens :
Les liens « durs » associent deux ou plusieurs fichiers à une même capacité sur le disque. Les
deux fichiers sont pourtant indépendants. On peut dire que les fichiers sont les mêmes mais
virtuellement qu’ils ne le sont pas
Les liens « symboliques » évitent la copie de fichiers identiques dans différents répertoires. La
suppression du fichier source a une influence sur le lien : on dit qu’il est cassé
Les commandes de redirection permettent de rediriger la sortie d’une commande ou d’un programme
ailleurs que vers l’écran c’est-à-dire dans un fichier.
Avec le symbole « > » (signe supérieur), nous pouvons rediriger la sortie d’un programme vers un
fichier.
Exemple : $ cal > calendrier
Avec le symbole « >> » (signe supérieur supérieur), nous pouvons ajouter à la fin de l’affichage des
informations dans un fichier sans pour autant écraser ce qu’il y avait auparavant.
Exemple : $ cal 2012 >> calendrier
Avec le symbole « < » (signe inférieur), nous redirigerons le contenu d’un fichier vers l’entrée d’une
commande.
Exemple : $ wc –l < calendrier
La commande cat permet de visualiser le contenu d’un fichier c’est-à-dire d’envoyer le contenu du
fichier vers l’écran.
Exemple : $ cat calendrier
Une option utile de la commande cat est l’option –n qui permet de numéroter les lignes.
Exemple : $ cat –n calendrier
La commande more permet également de visualiser le contenu d’un fichier. L’affichage s’effectue page
par page ou ligne par ligne. Pour passer d’une page à l’autre tapez sur la touche ESPACE. Pour passer
d’une ligne à l’autre taper sur la touche ENTRER.
16
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
La commande pwd permet de savoir dans quel répertoire courant nous nous trouvons pour faire nos
manipulations
Exemple : $ pwd
La commande wc permet de compter soit les mots, les lignes ou les caractères. Ses options sont :
-c affiche le nombre d’octets
-m affiche le nombre de caractères
-l affiche le nombre de lignes
-w affiche le nombre de mots
-L’affiche la longueur de la ligne la plus longue
Exemple : $ wc –l < calendrier
Le symbole « | » (pipe) permet de rediriger la sortie d’une commande vers l’entrée d’une autre.
Exemple : $ ls –l | wc –l
La commande head affiche le nombre de lignes que vous voulez en commençant par la première ligne
(par défaut dix lignes).
Exemple : $ head -3 astc
La commande tail affiche le nombre de lignes que vous voulez en commençant par la dernière ligne (par
défaut dix lignes).
Exemple : $ tail -3 astc
Les commandes halt et shutdown permettent d’arrêter le système. Quant à la commande reboot, elle
permet de redémarrer le système
Exemple : #halt
Linux étant un système d’exploitation multiutilisateur, la gestion du système et des utilisateurs est
confiée à un super-utilisateur nommé aussi « root ». Le rôle de l’administrateur ou root est de :
Du fait que le super-utilisateur ou root possède tous les droits, il doit détenir des connaissances
concernant le fonctionnement du système.
Même si vous êtes le seul utilisateur, il est indispensable de créer des utilisateurs ne serait-ce que pour
des raisons de sécurité. Lorsque vous avez besoin de faire de l’administration système, vous avez
toujours la possibilité de changer d’utilisateur et de devenir root à partir de la commande « sudo –s » ou
su root.
18
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
L’option –m permet de copier les fichiers de configuration du shell. On a choisi notre shell avec l’option
–s. ensuite, on fait entrez le mot de passe grâce à cette commande : passwd « nom de l’utilisateur
créé »
Lorsque nous voulons supprimer le répertoire personnel de l’utilisateur en même tant que compte, on
utilise l’option –r
Exemple : $ userdel –r professeur
La commande chmod permet de changer les droits d’accès d’un fichier. Vous ne pouvez modifier les
droits d’un fichier que si vous en êtes le propriétaire ou bien l’administrateur.
Exemple : $ chmod 100 info.php autorise seulement le propriétaire à exécuter le fichier « info.php »
19
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Il existe différentes méthodes d'installation pour les applications ou les composants du système :
Le système "tarball" à base de fichiers tar compressés.
Les fichiers de paquetage (package) rpm propres aux distributions RedHat et Fedora.
Les fichiers de paquetage (package) deb propres aux distributions Debian et Ubuntu.
Ce sont des fichiers tarés puis gzipés contenant les composants de l'application :
exécutables,
bibliothèques,
fichiers de configuration,
documentations,
fichiers de données,
exemples,
...
Il y a une certaine procédure standard d'installation. Néanmoins, il est toujours conseillé de consulter les
fichiers obtenus après unzipage et détarage, puis de l’accompagner de son manuel d’installation.
Ils sont utilisés pour les distributions RedHat et Fedora. Il n’y a pas de gestion des dépendances par
rapport à certaines bibliothèques. La commande d’installation de ces paquetages est rpm.
V. Configuration TCP/IP
20
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
La commande qui permet l’affichage de la configuration TCP/IP est ifconfig. Par défaut, l’interface
ethernet est nommée eth0 et la boucle locale a l'adresse 127.0.0.1. Pour afficher le nom de la machine,
on tape la commande hostname.
La configuration peut être réalisée de manière graphique mais aussi en mode console via un ensemble de
fichiers situés dans le répertoire /etc et certains de ses sous-répertoires. Très variable en fonction des
distributions et des options de configuration choisies :
Configuration des interfaces réseau pour les distributions RedHat, Fedora et Mandrake :
o /etc/sysconfig/network
o /etc/sysconfig/network-scripts/ifcfg-eth0 (1ère interface réseau)
o ...
Configuration des interfaces réseau pour les distributions Debian :
o /etc/network/interfaces
La consultation de certains fichiers nous permet d’avoir plus de renseignements sur la configuration de
notre machine et de notre réseau :
/etc/hostname : Nom de la machine.
/etc/resolv.conf : Configuration DNS (liste ordonnée des serveurs de noms, suffixe de nom de
domaine de la machine).
/etc/hosts : Fichier local de résolution de noms (si pas de serveur DNS configuré)
La visualisation d'une arborescence unique de répertoires implantée sur la racine fait penser à l'existence
d'un seul système de fichiers. En réalité, cette union possible de plusieurs arbres correspond à des
systèmes de fichiers différents situés sur des disques ou même des ordinateurs différents.
Le montage de la racine de chaque arborescence sur un répertoire vide (ou non) d'une arborescence déjà
montée crée la construction d'une arborescence logique.
On peut aussi assister à la création de chaque système de fichiers dans une partition, elle-même située
sur un ou plusieurs disques (ou supports de stockage). Les distributions Linux peuvent gérer un grand
nombre de systèmes de fichiers:
ext2, ext3 : Linux natif
swap : Mémoire virtuelle pour Linux
msdos : FAT16 (MsDos)
umsdos : MsDos étendu pour une meilleure compatibilité avec Linux (noms longs, UID,
GID, ...).
vfat : FAT32 (Windows)
ntfs : NTFS (Windows NT)
21
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Les partitions sont désignées par des fichiers "device" hébergés dans le répertoire /dev. Un type spécial
de partition, nommé linux-swap, est une mémoire virtuelle pour le système (non directement utilisable).
Il n’existe que deux disques au maximum par interface IDE et généralement deux interfaces IDE par
machine.
Par disque IDE, nous pouvons avoir au maximum quatre partitions toutes principales sauf
éventuellement une partition étendue pouvant contenir autant de volumes logiques que souhaité.
Pour ceux-ci, on peut avoir jusqu'à 7 périphériques par interface SCSI. /dev/sd<x> disques SCSI
détectés. /dev/sd<x><n> partitions sur ces disques.
La commande df affiche des informations relatives aux systèmes de fichiers montés (tailles comptées en
blocs de 1 Ko ou en inodes). La consultation du fichier /etc/mtab montre les systèmes de fichiers
montés au sein de l'arborescence du système.
Les disques installés ne sont pas toujours reconnus directement par les différentes distributions. Il faut
les faire reconnaitre par le système. La commande mount permet le montage d'un système de fichiers
sur un répertoire. Ces options de commande sont :
o -t : Type de système de fichiers
o -options : Options de montage (ro ou rw, umask, dmask, ...)
o ...
Les systèmes de fichiers à monter à l'amorçage du système sont décrits dans le fichier /etc/fstab.
22
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Certaines distributions comme Ubuntu permettent la détection automatique des disques durs réalisée par
le noyau pour peu qu'il dispose des composants logiciels nécessaires. L’utilitaire fdisk est un utilitaire de
partitionnement et de définition du type de système de fichiers associé à une partition. L’utilitaire mkfs,
quant à lui crée un système de fichiers dans une partition. Et enfin, l’utilitaire fsck vérifie et corrige les
erreurs d'une partition (et donc d'un système de fichiers).
Le système Linux lance des processus et il doit être capable de les identifier. Pour cela il attribue à
chacun d'entre eux, un numéro appelé PID (Process Identification). Un processus peut lui même créer
un autre processus, il devient donc un processus parent ou père, et le nouveau processus, un processus
enfant. Ce dernier est identifié par son PID, et le processus père par son numéro de processus
appelé PPID (Parent Process Identification).
Tous les processus sont ainsi identifiés par leur PID, mais aussi par le PPID du processus qui la créé,
car tous les processus ont été créés par un autre processus. Le seul qui ne suit pas cette règle est le
premier processus lancé sur le système le processus init qui n'a pas de père et qui a pour PID 1.
On peut visualiser les processus qui tournent sur une machine avec la commande : ps (options), les
options les plus intéressantes sous HP-UX sont -e (affichage de tous les processus) et -f (affichage
détaillée). La commande ps -ef donne un truc du genre :
23
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Pour l'exemple donné, à partir d'un shell vous avez lancé la commande ps -ef, le premier processus à
pour PID 321, le deuxième 324. Vous noterez que le PPID du process " ps -ef " est 321 qui correspond
au shell, par conséquent le shell est le process parent, de la commande qu'on vient de taper.
Certains processus sont permanents, c'est à dire qu'ils sont lancés au démarrage du système et arrêtés
uniquement à l'arrêt du système. On appelle ces processus des daemons, le terme démon est une
francisation, daemon sont des abréviations.
Pour voir les processus d'un seul utilisateur, vous pouvez taper :
ps -u olivier
Sous LINUX par exemple ps -Al permet une sortie assez riche, en faisant un man ps, vous aurez
l'éventail de tous les paramètres possibles.
Les processus tournent avec un certain degré de priorité, un processus plus prioritaire aura tendance à
s'accaparer plus souvent les ressources du système pour arriver le plus vite possible au terme de son
exécution. C'est le rôle du système d'exploitation de gérer ces priorités.
Vous disposez de la commande nice pour modifier la priorité d'un processus. La syntaxe est la suivante :
Plus le nombre est grand, plus la priorité est faible. Par exemple une valeur de 0 donne, la priorité la
plus haute 20 donne la priorité la plus faible.
Par exemple :
nice -5 ps –ef
Généralement on utilise nice sur des commandes qui prennent du temps, sur des commandes courantes
l'effet de nice est imperceptible. On l'utilisera par exemple pour compiler un programme.
nice -5 cc monprogramme.c
Vous disposez de la commande kill pour arrêter un processus, on doit aussi tuer un processus. Si vous
voulez arrêter un processus, vous devez connaître son PID (commande ps), puis vous tapez :
kill -9 PID
Un utilisateur ne peut arrêter que les processus qui lui appartient (qu'il a lancé). Seul l'administrateur
système a le droit d'arrêter un processus ne lui appartenant pas.
24
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Pour lancer une commande quelconque, vous en saisissez le nom après le prompt du shell, tant que la
commande n'est pas terminée, vous n'avez plus la main au niveau du shell, vous ne disposez plus du
prompt. Si la commande prend un certain temps, votre shell ne vous donnera pas la main tant que la
commande n'est pas terminée, vous êtes obligé de lancer un autre shell, pour taper une autre commande.
Vous disposez d'une technique simple qui permet de lancer une commande à partir d'un shell, et de
reprendre aussitôt la main. Il vous suffit de rajouter un & à la fin de commande. Celle-ci se lancera en "
tâche de fond ", et vous reviendrez directement au prompt du shell.
En lançant une commande à partir du shell sans le & à la fin, et si celle-ci prend du temps à vous rendre
la main, vous pouvez faire en sorte qu'elle bascule en tâche de fond, pour que vous repreniez la main.
>netscape
311 stopped +
311 étant le PID du processus netscape. Tapez ensuite bg (pour background), vous voyez s'afficher
[311]
Ca y est votre processus netscape est en tâche de fond et le shell vous rend la main.
I. Présentation
Cron est un logiciel (plus précisément un démon) intégré dans tout système Unix qui permet d'exécuter
une commande à intervalles régulières avec un réglage extrêmement précis. Par exemple, vous pouvez
sauvegarder vos fichiers de configurations tous les 2 jours à 13h37 sauf le dimanche et le lundi (c'est un
exemple comme un autre).
Cron est donc un programme qui tourne en arrière-plan en attendant qu'un évènement spécifié dans son
ficher de configuration (crontab) se réalise.
25
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Comme je l'ai dit ci-dessus, tout se passe dans le fichier de configuration : /etc/crontab. Analysons-le
d'un peu plus près :
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Ensuite, nous avons l'en-tête de la configuration des tâches répétitives, voici les significations des
abréviations :
Maintenant que vous connaissez la syntaxe, nous allons pouvoir ajouter une commande. Cependant, il
ne faut pas éditer le fichier /etc/crontab directement. Nous allons utiliser la commande crontab.
En premier lieu, lançons cette commande en utilisateur lambda : crontab -l (L minuscule). Nous
devrions obtenir ce résultat : no crontab for login. On s'aperçoit qu'aucune exécution n'est prévue pour
l'instant, nous allons donc en créer une.
Par exemple, nous allons vider la corbeille tous les jours à 13h37 (concrètement, cela revient à
supprimer l'intégralité du dossier/home/login/.Trash). Tapez donc cette commande dans votre
console : crontab -e (cette commande sert à éditer un fichier de configuration propre à l'utilisateur)
37 13 * * * rm -rf /home/login/.Trash : tous les jours de tous les mois à 13h37, on exécute rm -rf
/home/login/.Trash
26
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Cette commande sera donc exécutée automatiquement avec les privilèges de l'utilisateur. Si vous devez
exécuter une commande nécessitant les droits root, exécutez simplement cette commande : sudo
crontab -e puis, ajoutez votre ligne de configuration.
* : Tous (en fonction de la colonne où elle est placée, tous les jours, tous les mois, toutes les
heures, ....)
/ : Répétition
- : Intervalle
, : Plusieurs valeurs
Quelques exemples :
*/1 * * * * commande : Toutes les minutes de toutes les heures de tous les jours de tous les mois
0 10 * * 1-5 commande : Du lundi au samedi (1-6) à 10h00
0 21 4,14,24 * * commande : Les 4, 14 et 24 de chaque mois à 21h00
19 8-16/1 * 1,2 1-6 commande : Toutes les heures de 8h à 16h, à la 19ème minute, en Janvier et
Février tous les jours sauf le dimanche
Bon, je pousse le bouchon un peu loin, mais c'est pour vous montrer la finesse de configuration de cron.
Pour simplifier les choses, il existe des mots clés correspondant aux utilisations "basiques" de cron
(syntaxe : mot_clé commande) :
Une deuxième méthode consiste à créer un script shell contenant votre commande et de le copier, au
choix, dans le répertoire /etc/cron.daily, /etc/cron.weekly ou /etc/cron.monthly.
Une commande bien aussi pratique que la commande crontab est : la commande at. Si vous souhaitez
effectuer une action particulière dans la journée (par exemple dans 15 minutes ou à une heure précise),
vous n'utiliserez pas cron (car il n'y a pas de répétition, c'est juste une exécution unique programmée)
mais il faudra utiliser la commande at.
Pour utiliser la commande at : Dans une console, tapez at *** (*** étant le temps souhaité, voir la liste
plus bas) puis entrée. Vous obtenez un prompt at>, tapez la commande que vous souhaitez exécuter puis
entrée. Vous pouvez désormais taper une deuxième commande qui sera exécuté ou "Ctrl+D" afin de
signifier que la série de commandes est terminée.
Démonstration par l'exemple : Je souhaite supprimer tous les fichiers *.tmp du répertoire tmp :
at> <EOT>
job 1 at Tue Feb 17 12:41:00 2009
Votre commande sera donc exécutée le 17 février à 12h41 (dans mon exemple) avec pour numéro de job
1 (identifiant de la commande). Pour voir les exécutions programmées, tapez la commande atq et pour
supprimer une exécution tapez atrm -V job (où job est le numéro de job).
EXERCICES D’APPLICATION
EXERCICE 1 : Infos système
28
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Définir le lot de commandes à exécuter pour créer 4 utilisateurs en suivant les règles suivantes:
Création de 2 groupes.
Les premier et deuxième utilisateurs sont membres du premier groupe.
Les troisième et quatrième utilisateurs sont membres du second groupe.
Le deuxième utilisateur est aussi membre du second groupe.
Le quatrième utilisateur est aussi membre du premier groupe.
Outre leur répertoire de travail, les utilisateurs ont accès à un répertoire commun /home/groupe1
et/ou /home/groupe2 suivant leur groupe. Dans ce répertoire, ils peuvent écrire, créer des fichiers
mais ne peuvent pas effacer les fichiers.
1. Détaillez les étapes de création des groupes, des utilisateurs et des répertoires en indiquant quels
fichiers vous utilisez et quelles commandes vous utilisez sur ces fichiers.
2. Modifiez les profils des utilisateurs pour qu'au login, le répertoire d'accueil sur lequel il souhaite
travailler lui soit demandé (s'il entre U, il sera sous son répertoire, s'il entre G, il sera sous le
répertoire de son groupe).
3. Dites ce que signifie ces 3 valeurs: 066, 067, 077.
29
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
Créez un dossier nommé /travaux/pratiques. Vous est-il possible de le faire ? Répeter cette
tentative en tant qu'utilisateur root et Expliquer la situation à l’aide de la commande ls -l.
Vous est-il possible de faire une copie du fichier /etc/passwd? Vous est-il possible de supprimer
ou de modifier le fichier /etc/passwd? Répeter la tentative de copie en tant qu'utilisateur root et
expliquer la situation à l’aide de la commande ls -l.
A l’aide de la commande id, vérifier votre identité et le(s) groupe(s) au(x)quel(s) vous
appartenez.
Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais non
modifiable (même pas par vous).
Créer un répertoire nommé "Secret", dont le contenu est visible uniquement par vous-même.
Les fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de votre groupe?
Créer un répertoire nommé "Connaisseurs" tel que les autres utilisateurs ne puissent pas lister
son contenu mais puissent lire les fichiers qui y sont placés. On obtiendra:
ls Connaisseurs
ls : Connaisseurs: Permission denied
cat Connaisseurs/toto
<...le contenu du fichier toto (s’il existe)...>
Chercher dans le répertoire /usr/bin des exemples de commandes ayant la permission SUID. De
quel genre de commande s’agit-il?
b- Les utilisateurs
Votre compte d'utilisateur est-il défini dans le fichier /etc/passwd? Pourquoi? Il y a-t-il d'autres
alternatives?
Quel est le répertoire de connexion de l’utilisateur root?
Quel est le shell de l’utilisateur root?
Quelle est la particularité de l’utilisateur nobody? Et de l’utilisateur shutdown?
Quels sont les utilisateurs définis dans /etc/passwd qui font partie du même groupe que
l’administrateur?
c- Redirections, méta-caractères
Le répertoire /usr/include contient les fichiers d’entête standards en langage C (stdlib.h, ...).
30
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include dont le nom
contient la lettre t.
d- find
g- Contrôles d'accès
Un administrateur désire s’assurer chaque matin que tous les fichiers placés sous $REPERTOIRE sont
lisibles par tout le monde, mais non modifiables excepté par leur propriétaire.
Afficher la liste des répertoires de connexion des utilisateurs déclarés dans le fichier /etc/passwd.
On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell) lancé lors
de son login. La commande correspondante est indiquée dans le 7ième champ du fichier
/etc/passwd.
Afficher en une ligne de commande le nombre d’interpréteurs de commandes différents
mentionnés dans /etc/passwd.
On dispose d'un fichier texte telephone.txt contenant un petit carnet d’adresses.
Chaque ligne est de la forme "nom prenom numerotelephone". Les champs sont séparés par des
tabulations.
Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande shell:
o Afficher le carnet d’adresse trié par ordre alphabétique de noms.
o Afficher le nombre de personnes dans le répertoire.
o Afficher toutes les lignes concernant les “Dupond”.
o Afficher toutes les lignes ne concernant pas les “Dupond”.
o Afficher le numéro de téléphone (sans le nom) du premier “Dupond” apparaissant dans le
répertoire.
o Afficher le numéro de téléphone (sans le nom) du premier “Dupond” dans l’ordre
alphabétique (ordre basé sur les prénoms).
31
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014
g- cron
Mettre en place un script qui, toutes les 5 minutes, ajoute la date, l'heure et la liste des processus en
cours de fonctionnement dans un fichier nommé "Processus.txt".
32