Vous êtes sur la page 1sur 31

SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

Chapitre I : INTRODUCTION A LINUX


I. Historique et genèse de Linux

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 !

II. Notion de noyau et de distribution

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.

III. La fondation FSF et le projet GNU

III.1 Qu’est-ce que la FSF ?

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.

III.2 Qu’est-ce que le projet GNU ?

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.

III.3 Les licences GPL

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.

Voici à titre indicatif quelques aspects de cette licence :

 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).

IV. Les caractéristiques du système

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.

Le système Linux possède notamment les avantages suivants :


 Le support des standards de l'internet, c'est-à-dire des protocoles TCP/IP, la famille de protocoles
utilisée sur Internet. Linux est donc un moyen gratuit de créer un réseau local, de se connecter à
Internet et de mettre en place un serveur.
 Une sécurité accrue due à la transparence de son code source et à la réactivité de la communauté
lors des annonces de vulnérabilités.
 Un cloisonnement des espaces mémoire et de l'espace disque couplé à une gestion pointue des
droits permettant de gérer un grand nombre d'utilisateurs avec un niveau de risque minimal.
 Un noyau entièrement configurable en fonction du matériel de la machine sur laquelle le système
est installé afin de maximiser les performances.

Chapitre II : INSTALLATION DE LA DISTRIBUTION UBUNTU


I. Documentation

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.

II. Les principales étapes de l’installation

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.

II.1 Première méthode

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

Cliquez sur « Installer dans Windows »

Renseignez les champs suivants :


 Disque d’installation : Choisissez surtout une autre partition que la partition système C:/. Ainsi
avant toute installation, il serait mieux de créer une ou de nouvelle partition
 Taille de l’installation : La taille que vous voudriez allouer à l’installation. Choisissez plus de
6Go pour une meilleure installation
 Nom d’utilisateur : Mettez un nom d’utilisateur sans espace (vivement conseillé et
recommandé)
 Mot de passe : Insérez deux fois le même mot de passe. Il faut savoir que Linux est sensible à la
casse.

Puis cliquer sur Installer.

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.

II.2 Installation universelle

Les principales étapes de cette installation sont les suivantes :


5
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

 Déterminer le type d’utilisation de la machine et les partitions à créer ou à modifier


 Démarrer l’installation
 Création des partitions
 Choix et installation des packages
 Configuration du réseau si nécessaire

Insérez le CD-Rom dans l’ordinateur et redémarrez-le. Normalement, ce redémarrage devrait activer le


CD-Rom et ouvrir un bel écran d’accueil, qui vous somme tout d’abord de sélectionner la langue
(Français).

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 Windows est déjà installé sur la machine, installer Ubuntu en redimensionnant


automatiquement les partitions.
 Utiliser tout le disque. C’est l’option à choisir si vous utilisez un disque vierge... ou si vous
souhaitez envoyer votre installation Windows au paradis des octets.
 Installer Ubuntu sur l’espace libre éventuellement disponible sur le disque.
 Modifier manuellement les partitions, c’est-à-dire redimensionner la partition contenant le
système Windows et créer manuellement les partitions pour Ubuntu. C’est l’option qui vous
donne le contrôle
 optimal. Le choix par excellence des utilisateurs avancés. C’est cette option que nous allons
décrire ici, pas à pas.

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.

III. Les principaux répertoires lors de l’installation

III.1 Les répertoires standards

 / : répertoire racine contenant tous les répertoires et autres


 /home : répertoire contenant les répertoires et fichiers personnels de tous les utilisateurs autres
que le root
 /root : répertoire contenant les répertoires et fichiers personnels de l’administrateur ou root

III.2 Les répertoires systèmes

 /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

Chapitre III : COMMANDER SON SYSTEME GRACE AU SHELL


I. Définition du shell

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

[nom_utilisateur]@[nom_machine] : ˜ $ pour le mode utilisateur


root@[nom_machine] : ˜ # pour le mode administrateur

II. Les modes en Linux

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.

III. Opérations courantes en ligne de commande

III.1 Demander de l’aide

Pour toutes les commandes, il est possible d’obtenir de l’aide en tapant man suivi du nom de la
commande.

Syntaxe : man « commande »


Exemple  : man cal

En tapant une commande suivie du paramètre --help, nous obtenons la listes des paramètres possibles.

Syntaxe : « commande » --help


Exemple  : ls --help

III.2 Se déplacer dans les répertoires

La commande cd permet de se déplacer dans les répertoires.

Syntaxe : cd « nom du répertoire »


Exemples :
 cd / : déplacement à la racine système
 cd /bin : déplacement dans le répertoire bin de la racine
 cd essai  : déplacement dans le répertoire courant essai
 cd essai/ : déplacement dans le répertoire courant essai
 cd .. : recule d’une branche
 cd ~ déplacement dans notre répertoire personnel
 cd ~ a stc déplacement dans le répertoire personnel de l’utilisateur « astc »

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

III.3 Afficher le contenu d’un répertoire

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.

Syntaxe : ls « -option » « nom du répertoire »


Exemple : ls /bin

Quelques options intéressantes de ls sont :


$ ls –l : permet de lister les attributs d’un fichier
$ ls –d : affiche uniquement les répertoires
$ ls –a : liste tous les fichiers des répertoires y compris les fichiers cachés
$ ls –m : affiche les fichiers en les séparant par une virgule
$ ls –t : affiche les fichiers par date
$ ls –lu : affiche les fichiers par date du dernier accès et indique cette date
$ ls –F : affiche les fichiers par type
$ ls –S : affiche les fichiers triés par ordre de taille décroissante
$ ls –x : affiche les fichiers par type d’extension
$ ls –r : affiche les fichiers par ordre alphabétique inverse
$ ls –a* : liste les fichiers ou répertoires commençant par la lettre « a »

III.4 Créer un répertoire

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

Syntaxe : mkdir « nom répertoire »


Exemple : $ mkdir RACINE

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

Exemple : $ mkdir –p RACINE/rep1/rep2/rep3/rep4

III.5 Déplacer ou renommer un fichier

La commande mv permet de déplacer ou renommer un fichier ou un répertoire.

Syntaxe : mv « source » « destination »


Exemples :
$mv lisezmoi.txt essai : déplace le fichier « lisezmoi.txt » dans le répertoire « essai » si « essai  » est un
répertoire ou renomme le fichier « lisezmoi.txt » en « essai » si il est un répertoire
$mv rep repertoire  : déplace le répertoire « rep » dans le dossier « repertoire » si le dossier
«  répertoire  » existe ou renomme « rep  » en « repertoire »

Quelques options intéressantes de mv sont :


$mv –b  : va effectuer une sauvegarde des fichiers avant de les déplacer
$mv –i : demande pour chaque fichier et chaque répertoire s’il peut ou non les déplacer
$mv –u : demande à «  mv » de ne pas supprimer le fichier si sa date de modification est la même ou
plus récente que son remplaçant
$ mv –f : ne demande pas avant d’écraser

II.6 Copier un fichier ou un répertoire

13
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

La copie de fichiers ou de répertoires s’effectue avec la commande cp.

Syntaxe : cp « source » « destination »


Exemples :
$ cp lisezmoi.txt essai.txt duplique le fichier «  lisezmoi.txt » et le renomme « essai.txt »
$ cp lisezmoi.txt rep : copie le fichier « lisezmoi.txt » dans le répertoire « rep »
Quelques options intéressantes de la commande cp sont :
$ cp –b : permet de s’assurer que la copie n’écrase pas un fichier existant
$ cp –I : avertit de l’existence d’un fichier de même nom et demande s’il peut ou non le remplacer
$ cp –l : permet de faire un lien “en dur” entre le fichier source et sa copie
$ cp –s : permet de faire un lien “symbolique” entre le fichier source et sa copie
$ cp –p : permet lors de la copie de préserver toutes les informations concernant le fichier
$ cp –r : permet de copier l’ensemble d’un répertoire et de ses sous-répertoires

III.7 Supprimer des fichiers ou des répertoires

La commande rm permet de supprimer un fichier et un répertoire et un répertoire grâce à ses options.

Syntaxe : rm « -option » « fichier ou répertoire »


Exemple : $rm lisezmoi.txt

Quant à la commande rmdir, elle permet de supprimer un répertoire ne contenant pas de fichiers ou de
dossiers créés

Syntaxe : rmdir «  répertoire sans contenu »

Quelques options intéressantes pour la commande rm :


$ rm –i : demande confirmation avant chaque suppression
$ rm –I : demande confirmation avant de supprimer plus de trois fichiers ou lors de suppression
récursive
$ rm –r  : permet de supprimer un répertoire et ses sous-répertoires
$ rm –f : permet de supprimer les fichiers protégés en écriture et répertoires sans confirmation
$ rmdir –p : supprime le répertoire et ses sous-répertoires associés

III.8 Editer un fichier

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

 a : ajoute des caractères devant le curseur


 A : ajoute à la fin de la ligne sur laquelle se trouve le curseur
 i : insère des caractères derrière le curseur
 I : insère des caractères au début de la ligne sur laquelle de trouve le curseur
14
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

 o : ajoute une nouvelle ligne en dessous de la ligne active


 O : ajoute une ligne au-dessus de la ligne active

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

Exemple : saisissez ce texte dans un fichier nommé « astc_information »


Première partie
« ASTC (académie des Sciences Technologiques et Comptables) est une grande école de Côte d’ivoire.
Elle est située au Plateau à 50m de la CNPS et au deuxième étage de l’immeuble Lamblin. C’est une
institution financière à caractère professionnel, scientifique et culturel. « « « « « « « « « « 
L’Académie des Sciences Technologiques et Comptables (ASTC) est une société anonyme bénéficiant
d’un Président de Conseil d’Administration. »

III.9 Les liens

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é

Syntaxe : ln « -option » « fichier source » « fichier destination »


Exemple : $ ln fic ficlien crée un lien dur entre les fichiers « fic » et « ficlien »

Quelques options intéressantes de la commande ln sont :


$ ln –s  : crée un lien symbolique au lieu d’un lien direct
$ ln –i : demande s’il faut supprimer les destinations
$ ln –f : supprime les fichiers de destinations existants

Deuxième partie : lien dur astc_dur


« L’ASTC dispense les cours de formation en cycle BTS, POST-BTS et aussi des formations
qualifiantes :
Cycle ingénieur :
- Marketing
- Administration et Gestion des Entreprises
- Transit et Transport
- Finance
- Sciences Informatiques »

Troisième partie : lien symbolique astc_symbolique


« Cycle BTS :
15
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

- Finance Comptabilité et Gestion d’Entreprise


- Gestion Commerciale
- Réseau Informatique et Télécommunication
- Informatique Développeur d’Application
- Ressources Humaines et Communication »

III.10 Les redirections

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

III.11 Afficher le contenu d’un fichier

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.

III.12 Trouver du texte dans un fichier

Pour trouver du texte dans un fichier, on utilise la commande grep.

Syntaxe : grep « -option » chaine de caractères » « nom du fichier »


Exemple : $ grep –i –n academie astc affichera toutes les lignes numérotées contenant le mot
«  academie » sans prendre en compte les majuscules (option –i) dans le fichier « astc »

Voici d’autres options répertoriées dans le tableau ci-dessous

16
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

III.13 Autres commandes

La commande pwd permet de savoir dans quel répertoire courant nous nous trouvons pour faire nos
manipulations
Exemple : $ pwd

La commande who permet de lister les utilisateurs connectés à la station.


Exemple : $ who
La commande clear efface tout ce qui se trouve sur l’écran et affiche un nouveau prompt.
Exemple : $ clear

La commande logout permet de déconnecter un utilisateur.


Exemple : $ logout

La commande logname permet de savoir sous quel nom est logué.


Exemple : $ logname

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

La commande uname affichage les informations relatives à la release UNIX installée


Exemple : $ uname

La visualisation du fichier /etc/issue nous indique le nom de la distribution linux utilisée.


Exemple : $ cat /etc/issue
17
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

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

Chapitre III : ADMINISTRATION DU SYSTEME


I. Rôles de l'administrateur

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 :

 Configurer le noyau du système


 Installer le système et de nouveaux logiciels.
 Gérer les utilisateurs.
 Configurer le processus de démarrage de Linux
 Configurer le réseau
 Planifier et réaliser les sauvegardes.
 Protéger le système.
 Former et conseiller les utilisateurs.
 ...

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.

II. Gestion des utilisateurs

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.

II.1 Ajout et suppression d’un groupe

Pour ajouter un groupe, on utilise la commande groupadd.


Syntaxe : groupadd « nom du groupe »
Exemple : $ groupadd formateur_linux

Pour supprimer un groupe, on utilise la commande groupdel.


Syntaxe : groupdel « nom du groupe »
Exemple : $ groupdel formateur_linux

II.2 Ajout et suppression d’un utilisateur

La commande useradd permet d’ajouter un nouvel utilisateur.


Syntaxe : useradd « nom de l’utilisateur» -g « groupe » -s /bin/bash –m
Exemple : $ useradd professeur -g formation_linux -s /bin/bash –m

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éé »

La commande userdel permet de supprimer un utilisateur.


Syntaxe : userdel « nom de l’utilisateur»
Exemple : $ userdel professeur

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

III. Modification des droits d’accès

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.

Syntaxe : chmod « modification des droits d’accès » « nom du fichier »


Exemples :
$ chmod a+r astc autorise tout le monde à lire le fichier « astc »
$ chmod ug +rw, o-r astc le propriétaire et les membres de son groupe peuvent lire et modifier le fichier
«  astc  » alors que les autres personnes ne peuvent que lire
$ chmod u=x info.php autorise le propriétaire à exécuter le fichier « info.php »

Une autre méthode permet d’attribuer les droits d’accès à un fichier.

User (u) Group (g) Others (o)

000 0 Aucune action


001 X 1 Exécution
010 W 2 Ecriture
011 w x 3 Ecriture – Exécution
100 R 4 Lecture
101 r x 5 Lecture – Exécution
110 r w 6 Lecture – Ecriture
111 r w x 7 Lecture – Ecriture – Exécution

Exemple : $ chmod 100 info.php autorise seulement le propriétaire à exécuter le fichier « info.php »

La commande chown permet de changer le propriétaire d’un fichier.


Syntaxe : chown « utilisateur » « nom du fichier »
Exemple : $ chown formateur astc

La commande chgrp permet de changer le groupe d’un fichier.


Syntaxe : chgrp « nom du groupe » « nom du fichier »
Exemple : $ chgrp formateur astc

IV. Installation d’application

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.

IV.1 Les tarballs

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.

La procédure d’installation standardisée pour un package GNU est la suivante :


1. Récupération du tarball.
2. Décompression avec l'outil GNU gzip.
3. Restauration avec tar.
4. Ouverture d'un shell sur la racine du répertoire de restauration de l'étape 3.
5. Exécution du script de configuration configure.
6. Compilation au moyen de la commande make.
7. Installation au moyen de la commande make install.

IV.2 Les paquetages rpm

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.

IV.3 Les paquetages deb

Ils sont utilisés pour les distributions Debian et Ubuntu.


 dpkg : Gestionnaire de paquetages (préalablement téléchargés) pour Debian
o installation
o désinstallation
o informations
 apt-get : Téléchargement et installation d'un paquetage avec gestion des dépendances.
o téléchargement
o installation
o désinstallation

V. Configuration TCP/IP

20
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

V.1 Consultation de la configuration TCP/IP actuelle

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.

V.2 Configuration de TCP/IP

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é)

VI. Les systèmes de fichiers

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.

Avantages de cette organisation :


 Souplesse
 Extensibilité
 Gestion des disques amovibles
 ...

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

 smb : Partage Lan Manager


 nfs : Partage nfs
 iso9660 : Système de fichiers des CDRom
 ...

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).

VI.1 Disques IDE

Il n’existe que deux disques au maximum par interface IDE et généralement deux interfaces IDE par
machine.

 /dev/hda et dev/hdb disques master et éventuellement slave de la 1ère interface IDE.


 /dev/hdc et dev/hdd disques master et éventuellement slave de la 2ème interface IDE.
 2 lettres par 2 lettres pour les éventuelles interfaces suivantes.

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é.

 /dev/hd<x>1 à /dev/hd<x>4 : Partitions principales ou étendue du disque /dev/hd<x>.


 /dev/hd<x>5  à /dev/hd<x><n> : Volumes de la partition étendue du disque /dev/hd<x>.

VI.2 Disques SCSI

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.

VI.3 Consultation de l'état instantané des systèmes de fichiers

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.

VI.4 Montage d'un système de fichiers

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 ...

Exemple: mount -t smbfs -o username=xxxx0,password=yyyy //Serveur/NomDePartage


/home/xxxx1/PointDeMontage

VI.5 Configuration des systèmes de fichiers montés à l'amorçage du système

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

VI.6 Création d'un système de fichiers

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).

Chapitre V : Gestion des processus


I. Les caractéristiques d'un processus

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.

II. Visualiser les processus

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 :

UID     PID  PPID  C STIME      TTY     TIME    COMMAND  


root    1    0     0 Dec 6      ?       1:02    init  
...  
jean    319 300    0 10:30:30   ?       0:02    /usr/dt/bin/dtsession  
olivier 321 319    0 10:30:34   ttyp1   0:02    csh  
olivier 324 321    0 10:32:12   ttyp1   0:00    ps -ef

La signification des différentes colonnes est la suivante:

 UID nom de l'utilisateur qui a lancé le process


 PID correspond au numéro du process
 PPID correspond au numéro du process parent
 C au facteur de priorité : plus la valeur est grande, plus le processus est prioritaire
 STIME correspond à l'heure de lancement du processus
 TTY correspond au nom du terminal
 TIME correspond à la durée de traitement du processus
 COMMAND correspond au nom du processus.

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.

III. Commandes de gestion des processus

III.1 Changer la priorité d'un processus

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 :

nice -valeur commande

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.

La fourchette de valeur dépend de la distribution utilisée qu'on utilise.

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

III.2 Arrêter un processus

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

IV. Lancer en processus en tâche de fond

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 tapant une commande en tâche de fond, vous aurez à l'affichage :


> ps ef &  
[321]  
>
A la suite de la saisie de la commande suivie d'un &, le shell vous donne immédiatement la main, et
affiche le numéro du PID du processus lancé.

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

Vous voulez basculer netscape en tâche de fond tapez, CTRL+Z, il va afficher

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.

Chapitre V : Automatisation de tâches avec Cron et at


Parfois, il est nécessaire (ou du moins appréciable) d'exécuter une commande à intervalles régulières
(vidage de la corbeille par exemple). Pour cela, il existe un logiciel qui est capable d'automatiser cette
tâche : cron.

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.

II. Utilisation, configuration

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

# m h dom mon dow user  command


 17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
 25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
 47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
 52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

    */1 *   * * *   root    sh /etc/acpi/eeepc/eeepc-fan-control.sh

La ligne SHELL et PATH correspondent aux variables d'environnement du même nom.

/bin/sh : le shell utilisé par cron


PATH : Correspond au $PATH utilisé par Cron (voir le cours sur le $PATH)

Ensuite, nous avons l'en-tête de la configuration des tâches répétitives, voici les significations des
abréviations :

 m : minutes (de 0 à 59)


 h : heures (de 0 à 23)
 dom : jour du mois (de 1 à 31)
 mon : mois (1 à 12 ou jan, feb, mar, ...)
 dow : jour de la semaine (0 ou 7=dimanche, 1=lundi, 2=mardi, ...)
 user : utilisateur qui exécutera la commande
 command : la commande à exécuter

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)

Après avoir choisi un éditeur de texte, vous obtenez l'en-tête habituelle :

# m h dom mon dow  command

Ajoutons maintenant cette commande :

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.

Voici la syntaxe de configuration ainsi que différents exemples :

 * : 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) :

 @hourly : une fois par heure


 @daily : une fois par jour
 @weekly : une fois par semaine
 @monthly : une fois par mois
 @yearly : une fois par an
 @reboot : au redémarrage de la machine

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.

III. Programmation occasionnelle d'une seule tâche avec at

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 :

 dans 2 minutes : at now + 2 minutes Entrée rm /tmp/*.tmp Entrée "Ctrl+D"


 à 13h37 : at 13:37 Entrée rm /tmp/*.tmp Entrée "Ctrl+D"
27
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

Une fois la commande tapée, vous obtenez ces lignes :

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

1) Quel est le système installé?


2) Quelle est la distribution installée?
3) Quels sont les utilisateurs en cours du système?
4) Ouvrir un nouveau terminal en utilisant un autre compte.
5) Fermer ce terminal.

EXERCICE 2 : La commande man

1)Tester la commande man pour obtenir de l'aide sur man.


2)Quelles sont les commandes susceptibles d'être documentées dans man?

EXERCICE 3 : Contenu de répertoires et de fichiers ascii (texte)

1) Lister le contenu du répertoire /etc.


2) Lister de manière détaillée le contenu du répertoire /etc.
Les fichiers nommés "passwd", "shadow", "group" et "gpasswd" sont-ils présents dans /etc?
3) Lister le contenu du répertoire /dev.
4) Lister le contenu du fichier /etc/passwd.
5) Lister le contenu du fichier /etc/shadow.
6) Afficher par ordre alphabétique les utilisateurs définis dans le fichier /etc/passwd.
7) Rechercher tous les fichiers du répertoire /etc contenant la chaine de caractères "root".
8) Rechercher la localisation du fichier "stdio.h" dans le système de fichier de votre installation.
9) A l'aide de la commande "od", illustrer la différence majeure entre les types de fichier ascii (texte)
DOS, UNIX et Macintosh. Utiliser le fichier ascii Dos montexte.dos fourni en lien et créer les
fichiers ascii Unix "montexte.unix" et ascii Macintosh "montexte.mac" avec le même contenu au
moyen d'un éditeur texte (Kate par exemple) puis comparer (version Macintosh si l'éditeur le
permet).
Quelle est la différence?
10) Utiliser les commandes de comparaison de fichiers de Linux pour tester le contenu d'un même
fichier texte en version Unix et Dos.
11) Combien de lignes, de mots et de caractères comportent les fichiers "montexte.unix",
"montexte.dos" et "montexte.mac"?

EXERCICE 4 : Commandes

Déterminer les commandes permettant de réaliser les actions suivantes:

28
SUPPORT DE COURS INITIATION A LINUX ET AUX LOGICIELS LIBRES 2013 - 2014

a) Déterminer le répertoire par défaut dans la hiérarchie des répertoires?


b) Y a t-il des fichiers, des répertoires dans ce répertoire?
c) Entrer du texte dans un fichier nommé "Mon_fichier".
d) Lister le contenu de "Mon_fichier".
e) Lister le répertoire courant.
f) Lister les répertoires /bin et /dev.
g) Créer sous votre répertoire deux sous-répertoires : "Source" et "Data".
h) Se positionner sous "Source".
i) Listez le répertoire courant.
j) Revenir sous le répertoire de départ et détruire "Source".
k) Créer un deuxième fichier nommé "Mon_fichier_2".
l) Copier chaque fichier en nom_de_fichier.old.
m) Créer un répertoire "Old".
n) Déplacer les fichiers avec l'extension old vers le répertoire "Old".
o) Copiez les fichiers sans extension dans le repertoire "Data".
p) Sous votre répertoire de départ, créez un lien matériel "Mon_lien" équivalent à "Mon_fichier_2".
q) Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro d'inode. Que
remarquez-vous?
r) Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu?
s) Sous votre répertoire de départ, créez un lien symbolique "Mon_nouveau_lien" sur
"Mon_fichier_2".
t) Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2". Que remarquez-vous?
u) Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu?
v) Quelle est la taille totale des fichiers contenus dans votre répertoire?
w) Effacer tous les fichiers crées.

EXERCICE 5 : Mise en place d'un espace de travail pour 4 utilisateurs

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.

EXERCICE 6 : Droits d’accès

a- Pour cet exercice, vous créerez un utilisateur banalisé

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, ...).

 Créer un répertoire nommé inc dans votre répertoire de connexion (HOME).


En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le nom
commence par std.
 Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
 Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci
soit placé dans un fichier nommé "Abc.list" de votre répertoire de connexion.
 Afficher le contenu de ce fichier en utilisant la commande cat. Copier avec cat son contenu dans
un nouveau fichier nommé "Copie".
 Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à bout
(concaténation) des fichiers "Abc.list" et "Copie". Vérifier que le nombre de lignes a bien
doublé à l’aide de la commande wc.
 Créer un fichier nommé "Temp" contenant une ligne de texte.
 Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.

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

 Afficher la liste des fichiers .h situés sous le répertoire /usr/include.


 Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion.

e- head, tail, tubes

 Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.


 Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.

f- tr, more, tubes

 Afficher le fichier /etc/passwd en remplaçant les caractères / par des X.


 Obtenir le résultat précédent page par page.

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.

 Quel doit être le mode de ces fichiers et répertoires?


 Écrire un script permettant d’afficher la liste des fichiers d'un répertoire et le type de chacun
(utilisation de file et sort ) trié par type.

h- grep, cut, uniq, sort et tubes

Étudier la documentation des commandes cut et uniq.

 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

Vous aimerez peut-être aussi