Introduction A L'informatique
Introduction A L'informatique
Introduction A L'informatique
Cours complet
IUT de Villetaneuse
S1 2016
Les enseignements
◮ 12 sessions de 4h et du travail personnel . . .
◮ 6 sessions pour la présentation générale du système d’exploitation Linux,
◮ 6 sessions pour la théorie de base du codage informatique
L’évaluation
◮ Une composition après la sixième session (sur papier ou sur ordinateur).
◮ Une composition à la fin du module (sur papier ou sur ordinateur).
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 3 / 235
Généralités
Plan
1 Généralités
Qu’est-ce qu’un ordinateur ?
Les composants principaux et les principes de fonctionnement d’un ordinateur
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Plan
1 Généralités
Qu’est-ce qu’un ordinateur ?
Les composants principaux et les principes de fonctionnement d’un ordinateur
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Définition
Définition (Ordinateur)
Machine électronique programmable capable de réaliser des calculs logiques sur des nombres binaires.
Interaction Hardware/Software
La plupart du temps, l’informaticien n’a pas a interagir directement avec le matériel. Pour traiter avec les
composants, tous les ordinateurs disposent d’une couche logicielle appelée système d’exploitation. Cette
couche est en charge de faire la passerelle entre l’informaticien, ses outils, les programmes qu’il
développe et, les composants et leur fonctionnement.
Plan
1 Généralités
Qu’est-ce qu’un ordinateur ?
Les composants principaux et les principes de fonctionnement d’un ordinateur
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Les interfaces
La forme classique
◮ Un ordinateur est classiquement composé
d’une unité centrale et de périphériques
matériels (écran, clavier, souris, disques durs,
imprimantes/scaner, . . .).
◮ Les interfaces permettent l’interaction avec
l’environnement (utilisateurs ou autres).
Matériel commun
◮ Des capacités de calcul : CPU et/ou GPU
◮ De la mémoire : RAM, Disque dur, . . .
Logiciels similaires
◮ Pour dialoguer avec le matériel : Système d’exploitation, Firmware
◮ Pour accomplir ses tâches : logiciels, programmes, . . .
Périphériques différents
◮ Interfaces : Connexions réseau, écrans, claviers, . . .
Toute information d’un ordinateur peut être vue comme des nombres entiers
◮ Fiches numérotées par des adresses entières. Exemple : la fiche numéro 221 contient la valeur 18.
Les performances
◮ Guichet unique d’accès : une requête à la fois.
◮ On peut écrire une valeur dans une fiche ou lire une fiche, rien d’autre
L’étonnante efficacité
Les instructions données doivent être simples (opérations arithémtiques entre deux valeurs, tests
élémentaires uniquement).
◮ Les registres sont très rapides ; la durée d’un cycle est de l’ordre de la nanoseconde.
◮ Toute opération complexe est divisée par un humain en opérations élémentaires → programmation.
◮ Les instructions forment un code compact appelé code machine.
Analogie : pour faire une multiplication, on peut faire plein d’additions et tester si on arrive à 0.
Aucune intelligence
L’horizon matériel
Interaction avec le matériel
◮ Heureusement le programmeur ou l’utilisateur n’interagit pas directement avec le matériel (sauf pour
remplacer une pièce défectueuse ou connecter un nouveau matériel . . .). Le dialogue avec
l’architecture matériel est l’affaire de programmes dédiés.
◮ Plusieurs couches logicielles existent entre le matériel et l’utilisateur : les firmwares, le noyau du
système et les outils et programmes du système d’exploitation.
◮ La plupart des logiciels que vous serez amené à développer n’interagiront qu’indirectement avec le
matériel par le filtre des librairies système.
Haut Niveau →
◮ Logiciel,langages de programmation, . . .
Bas niveau
◮ Firmwares, exécution des instructions machine, . . .
◮ C’est le domaine de la physique et des électroniciens.
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 14 / 235
Le système d’exploitation
Plan
1 Généralités
2 Le système d’exploitation
La fonction du système d’exploitation
La multiplicité des systèmes existants
Comparatif
3 Le système Linux
8 Flux de données
Plan
1 Généralités
2 Le système d’exploitation
La fonction du système d’exploitation
La multiplicité des systèmes existants
Comparatif
3 Le système Linux
8 Flux de données
Le système d’exploitation
Le système d’exploitation permet de développer des programmes sans tenir compte de la complexité
physique de la machine. Les programmes utilisent des fonctionnalités standardisées d’accès aux
ressources matérielles.
Plan
1 Généralités
2 Le système d’exploitation
La fonction du système d’exploitation
La multiplicité des systèmes existants
Comparatif
3 Le système Linux
8 Flux de données
Plan
1 Généralités
2 Le système d’exploitation
La fonction du système d’exploitation
La multiplicité des systèmes existants
Comparatif
3 Le système Linux
8 Flux de données
Linux Windows
◮ Non propriétaire : Gratuit le plus souvent ◮ Propriétaire : Payant
◮ Ouvert : sources disponibles ◮ Sources non disponibles
◮ Flexible : sources modifiables ◮ Sources non modifiables
◮ Puissant : Programmable ◮ Communauté active : nombreux utilisateurs,
◮ Communauté active : entraide des services payants
utilisateurs ◮ Plus ergonomique : pour les utilisateurs
◮ Plus complexe : plutôt pour les informaticiens (interfaces d’utilisation optimisées)
(interfaces de programmation optimisées)
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Un peu d’histoire
GNU-Linux
◮ Le système GNU-Linux est la rencontre d’une technologie, le noyau Linux et d’une philosophie de
développement et de diffusion. C’est un système au développement collaboratif (par une
communauté) qui est distribué librement et permet l’utilisation de tous les logiciels libres développés
pour son architecture.
◮ Le noyau Linux est historiquement une version libre du système UNIX développé initialement par le
Finlandais Linus Torvalds à partir du début des années 1990.
◮ Le projet GNU est celui du développement collaboratif et libre d’un système d’exploitation libre initié
par Richard Stallman en 1983.
Aujourd’hui
◮ C’est un système très largement diffusé et utilisé sur lequel ont été développées plusieurs
distributions (qui sont des suites logicielles qui accompagnent le noyau).
◮ Initialement confidentiel et réservé à des spécialistes avec des interfaces rudimentaires, il est
aujourd’hui toujours plus ergonomique et automatisé pour les non spécialistes, mais laisse les outils
et interfaces de bas niveau disponibles au plus grand nombre.
◮ On notera par exemple l’existence de nombreuses interfaces graphiques Bureaux (GNOME, KDE,
. . .) de nombreux paquetages pré-compilées, de nombreux outils d’administration et de services
(protocoles, . . .)
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 26 / 235
Le système Linux Debian : La distribution utilisée à l’IUT
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
À l’IUT : Debian
Une distribution téléchargeable
http://www.debian.org/
Pour ce cours
◮ Les concepts abordés dans ce module sont généraux.
◮ Il pourront être testés sur tous les systèmes Linux (avec de très faibles variantes).
◮ Il vous est possible d’installer une version de Linux sur votre ordinateur personnel (installation ou
version Live) pour votre pratique personnelle et la préparation de l’examen.
◮ Une pratique régulière devrait vous assurer une bonne note à peu de frais. . .
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Superutilisateur - Root
◮ certains utilisateurs ont des permissions étendues pour administrer le système et effectuer des
opérations interdites à l’utilisateur normal.
◮ l’utilisateur root a tous les droits dans le système (par exemple il peut changer les permissions de
n’importe quel fichier, il fixe les noms d’utilisateur et les mots de passe, il peut installer des
programmes et librairies dans les répertoires système, . . .)
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 30 / 235
Le système Linux Un système multi-utilisateurs
Identification en 2 étapes
Étape #1
S’identifier en donnant au système son nom d’utilisateur
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 31 / 235
Le système Linux Un système multi-utilisateurs
Identification en 2 étapes
Étape #2
Valider son identité avec le mot de passe
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 32 / 235
Le système Linux Un système multi-utilisateurs
Exercices
Ce TP est un premier contact avec le système d’exploitation Linux. Il vous permettra d’appréhender les
différences entre cet OS et ceux que vous pouvez avoir l’habitude d’utiliser (Windows, MacOS-X). Nous
présenterons au cours du TP les grandes lignes de l’environnement de travail XFCE, la façon dont on peut
interagir avec le système d’exploitation au moyen de l’outil "Terminal" ainsi que les outils de base pour
envoyer des mails (configuration de votre compte mail à l’IUT) et pour obtenir de l’information sur internet
(notamment sur Linux). Il existe de nombreuses versions gratuites ou payantes de Linux. La distribution
installée à l’IUT se nomme Debian et est téléchargeable depuis http://www.debian.org/.
Connexion initiale
Q1 Lorsqu’on allume l’ordinateur un laps de temps est nécessaire pour charger le système d’exploitation.
Au terme de ce chargement, une interface graphique propose à l’utilisateur de s’identifier. Linux est un
système d’exploitation multi-utilisateur. Chaque utilisateur doit systématiquement s’identifier ("login")
auprès du système pour avoir le droit de l’utiliser. Une fois identifié, l’utilisateur à accès a ses fichiers
et son espace de travail personnel. Une fois qu’il a fini d’utliser le système, l’utilisateur se déconnecte
("logout"). La période entre l’identification et la connexion est appellée "session d’utilisation".
Démarrez votre ordinateur.
Q2 Connectez-vous ! Votre identifiant est votre numéro d’étudiant, votre mot de passe est votre numéro
INE. Attention : les identifiants et les mots de passe sont sensibles à la casse. Cela veut dire que les
caractères majuscules et minuscules sont distingués.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Accès au système
Le bureau XFCE
Parmi les différents environnements graphiques existants, vous utiliserez l’environnement XFCE
(https://www.xfce.org/).
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 35 / 235
Le système Linux Une interface graphique
Exercices
Métaphore du bureau
Contrairement aux systèmes d’exploitation propriétaires, l’environnement de travail (bureau) n’est pas
directement lié au système d’exploitation. Les deux environnements de travail les plus utilisés sous Linux
sont GNOME (http://www.gnomefr.org/) et KDE (http://fr.kde.org/).
L’environnement choisi à l’IUT est XFCE (lié à GNOME mais plus léger). Une fois la session lancée et
l’environnement chargé, vous arrivez dans un espace de travail appelé bureau. Cet environnement de
travail est assez proche de celui qui peut être proposé par les systèmes d’exploitation propriétaires. Au
moyen de la souris, vous pouvez intéragir avec le système. En cliquant sur les éléments graphiques, vous
pouvez ouvrir des menus, lancer des programmes, quitter le système...
Q3 Identifier la barre de menu, la barre de tâches et le bureau.
Q4 Dans cet environnement, identifiez deux façons de lancer le navigateur internet (Firefox ), et
l’application terminal ( ).
Exercices
Lancement d’applications
Comme la plupart des systèmes d’exploitation modernes, la distribution de Linux mise à votre disposition
est un système multi-tâches. Cela signifie, que vous pouvez exécuter en parallèle plusieurs applications. Il
n’est pas rare que lors d’une session vous lanciez plusieurs programmes où chaque programme est
associé à une fenêtre. À la suite des exercices précédents, vous devez avoir au moins 4 fenêtres ouvertes
(même si elles ne sont pas toutes visibles à l’écran). Les fenêtres ouvertes apparaissent dans la barre des
tâches située dans la partie basse de l’écran qui doit alors ressembler à ça :
Q5 Donnez différentes façons de passer d’un programme à l’autre, d’une fenêtre à l’autre, (au moyen de
la souris ou du clavier) ? Qu’observez-vous au niveau de la barre des tâches lorsque vous passez
d’une application à l’autre ?
Q6 Identifiez l’outil permettant de passer d’un bureau à l’autre. Décrivez dans quelles situations ces
bureaux peuvent-être utiles. Trouvez comment on déplace une fenêtre depuis un bureau vers un autre.
Q7 Placez sur les bureaux 1 et 2, une fenêtre de terminal chacun et sur les 3 et 4, une fenêtre de navigateur.
Résultat attendu :
Q8 Expliquez la fonction de chacun des boutons placés dans le coin supérieur droit des fenêtres. Fermez
les fenêtres des programmes suivants : un terminal (bureau 1) et un navigateur (bureau 3).
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Exercices
Éditeur de texte
Nous allons créer un nouveau fichier. Pour cela nous allons utiliser un outil fondamental pour tout
programmeur : un éditeur de texte. Plusieurs éditeurs de texte sont à votre disposition (vous pouvez
explorer le menu Applications →Accessoires ou Applications →Développement dans la barre de menu
de XFCE). À la différence de logiciels tels que Word, un éditeur de texte ne permet que de saisir du texte
brut, sans mise en forme. Les programmes sont en général écrits dans un éditeur de texte. Pour lancer un
éditeur de texte trois moyens sont à votre disposition :
◮ Lancer l’application depuis le menu application,
◮ Lancer l’application depuis une icône du bureau,
◮ Lancer l’application depuis la ligne de comande, par exemple en tapant :
login@host:˜$ gedit ←-
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
La ligne de commande
Interface de communication avec le système (IHM)
◮ Interface historique en mode texte,
◮ Interface privilégiée sous Linux : de nombreux programmes ne peuvent être appelés qu’à partir de la
ligne de commande,
◮ Interface puissante et programmable.
Principes de fonctionnement
1. L’utilisateur tape des commandes sous forme de texte
2. Le texte est évalué par un interpréteur,
3. L’interpréteur lance l’exécution des commandes.
Utilité
◮ Permet de lancer des programmes ou des applications,
◮ Permet d’interroger le système et d’interagir avec lui.
◮ Basé sur un interpréteur, un langage de programmation permet de construire des scripts pour
effectuer des tâches complexes de gestion ou d’administration.
La ligne de commande
login@host:˜$
L’interpréteur
◮ L’interpréteur parcourt le texte tapé par l’utilisateur, identifie les commandes et les paramètres, et si
la syntaxe est correcte, lance un processus.
◮ Plusieurs interpréteurs existent : csh, tcsh, bash. Dans ce cours nous utiliserons le bash.
◮ Bash est l’interpréteur du projet GNU. Il est le plus utilisé sous linux.
La ligne de commande
login@host:˜$ ls
public_html/
login@host:˜$
La ligne de commande
Interpretation de la commande
nom_commande Le premier mot doit correspondre au nom d’une commande connue du système,
options Comme le nom l’indique les options ne sont pas obligatoires. Si il n’y en a pas la
commande s’exécute selon un mode « par défaut ». L’ajout d’une option pourra
modifier ce comportement par défaut. Attention à la différence entre - et --
paramètres Certaines commandes peuvent fonctionner sans paramètre.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Un peu d’histoire
Debian : La distribution utilisée à l’IUT
Un système multi-utilisateurs
Une interface graphique
Les logiciels disponibles
Distribution et accès aux logiciels
La ligne de commande
De l’aide sur Linux et les commandes Shell
Description
◮ permet d’accéder à la documentation d’utilisation d’une commande (les pages de man).
◮ Les pages de man décrivent les syntaxes, les options, les arguments des commandes.
◮ Elles décrivent les résultats des évaluations et le format de ces résultats.
Exemple d’utilisation:
login@host:˜$ man ls
affiche :
NAME
ls - list directory contents
SYNOPSIS
ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]
Exercices
Usage du terminal
Une fenêtre de terminal est un outil de base fondamental à toute personne travaillant sous Linux. Cette
fenêtre propose ce que l’on appelle une ligne de commande. C’est un moyen d’adresser directement des
commandes au système, sans avoir à passer par une interface graphique. C’est un outil très puissant qui
est de plus programmable. De ce fait, la ligne de commande permet de faire des choses qu’aucun
programme graphique n’est capable de faire facilement. Cependant pour l’utiliser efficacement un
apprentissage est nécessaire. Ce module est là pour vous en donner un aperçu.
Q14 Rappelez la structure de la ligne de commande telle qu’elle s’affiche dans le terminal (décrivez les
différents éléments et leur rôle).
Q15 Évaluez la commande suivante et commentez l’affichage produit : man ls
Q16 Quelle est la fonction de la commande ls ?
Q17 Testez la commande ls avec plusieurs options parmi celles que vous avez identifié. Vérifiez que le
comportement de la commande est modifié par l’utilisation d’options différentes.
Exercices
Exercices
Usage du client de messagerie électronique (e-mail)
Si votre inscription à l’IUT est finalisée, un compte mail personnel à été créé à votre nom. Son adresse est
de la forme : Prenom.Nom@edu.univ-paris13.fr
Grâce à un logiciel appelé client mail, vous pouvez envoyer et recevoir du courrier électronique.
Consultez-le très régulièrement (au moins une fois par jour) !
Un moyen d’accéder à vos mails est d’utiliser le client web-mail de l’université : une application accessible
depuis n’importe quel navigateur internet (connecté). L’adresse du web-mail de l’IUT est :
http://ent.univ-paris13.fr
Pour accéder à votre courrier vous devez fournir votre identifiant et votre mot de passe.
Q21 Après votre connexion au web-mail et après avoir identifié et cliqué sur le service de messagerie
électronique, identifiez les différents boutons et champs de l’interface.
Q22 Après avoir sélectionné le service de rédaction d’un message, identifiez les différents champs de la
fenêtre de rédaction. Décrivez à quoi servent les champs "À", "Cc", "Cci", "Sujet" et "Texte".
Q23 Renseignez les champs nécessaires et envoyez un mail à votre voisin de table.
Q24 Ouvrez le mail que votre voisin vous a envoyé et répondez-lui dans le corps du message reçu.
Q25 Donnez la procédure pour ajouter l’adresse du web-mail de l’université dans les racourcis (onglets et
favoris) de votre navigateur internet.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
La carte mère
La carte mère est l’élément central de l’ordinateur sur lequel sont assemblés et mis en relation tous les
composants matériels. Elle permet à tous ses composants de fonctionner ensemble efficacement.
La carte mère
La carte mère est l’élément central de l’ordinateur sur lequel sont assemblés et mis en relation tous les
composants matériels. Elle permet à tous ses composants de fonctionner ensemble efficacement.
Organisation de la mémoire
Les ordinateurs réalisent des calculs logiques sur des données
binaires
◮ Les données et les instructions sont stockées sous forme de
blocs repérés par une adresse,
◮ Les blocs contiennent une information binaire organisée en
octet. Chaque octet contient 8 bits d’information qui sont lus
comme une suite ordonnée de 0 ou de 1 ou de Vrai et de Faux.
◮ Un octet peut prendre 28 = 256 valeurs différentes.
Les périphériques
Des composants externes
En fonction de leur tâche, de nombreux composants ad hoc peuvent être greffés sur la structure de base
précédemment décrite. Par exemple :
◮ Ordinateur de Maison : Écran, souris, imprimante, scanner, joystick, modem, . . .
◮ Ordinateurs de bord : Sondes, actioneurs, . . .
◮ Télephone : Antenne, récepteurs, . . .
◮ Robot médical : Interface haptique, bras mécaniques, . . .
Les bus
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 63 / 235
Organiser ses données Les fichiers : noms et contenu
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 65 / 235
Organiser ses données Les fichiers : noms et contenu
Un fichier
De l’information au stockage
Les informations utilisées dans un ordinateur sont stockées dans la mémoire de masse, qui se distingue
de la mémoire vive par sa résistance à l’extinction et de la mémoire morte (et plus tard, du firmware) par
sa mutabilité.
Les performances des systèmes de stockage de masse sont meilleures chaques années, mais l’ordre de
grandeur reste la ms ou 100 µs.
De l’information au fichier
L’information est découpée en petites unités qui s’appellent des fichiers, sémantiquement cohérentes —
ce sont des informations qui « vont ensemble ». Ces éléments de base du stockage informatique peuvent
ne contenir que très peu d’information ou représenter plusieurs Go de données par fichier.
Un fichier est lié à la façon dont on y accède (son nom et son chemin), mais nous verrons que ce n’est pas
un identifiant : il peut y avoir plusieurs accès différents à un même fichier (liens).
Selon les systèmes, certains caractères sont interdits. Par exemple * sous Windows, / sous Linux.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 68 / 235
Organiser ses données Organisation des données enregistrées
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 70 / 235
Organiser ses données L’organisation arborescente
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 72 / 235
Organiser ses données La notion de chemin
La notion de chemin
Le chemin définit un accès unique à partir de la racine
◮ Deux fichiers ou répertoires ne peuvent pas porter le même nom si ils sont dans un même répertoire.
◮ Sous Linux, les noms des fichiers et répertoires différencient les caractères Majuscules et
minuscule. Les fichiers Essai.txt et essai.txt peuvent donc être dans le même répertoire.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 74 / 235
Organiser ses données Répertoire courant et chemins relatifs
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 76 / 235
Organiser ses données Notation spéciales
Notation spéciales
Les chemins des répertoires de référence
La notation ˜ est un chemin absolu, remplacée par le vrai chemin avant l’exécution des
commandes. C’est un raccourci au niveau du shell, pas au niveau du système d’exploitation.
Chemins Absolus
/home/moi/Etoiles/Soleil.jpg
/ . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Racine ˜/Etoiles/Soleil.jpg
home/ /home/moi/../moi/Etoiles/Soleil.jpg
moi/ . . . . . . . . . . . Répertoire Personnel /home/moi/../../home/moi/Etoiles/Soleil.jpg
Chemins Relatifs
Etoiles/ . . . . . . Répertoire Courant Soleil.jpg
Soleil.jpg . . . . . . . Fichier cible ./Soleil.jpg
../Etoiles/Soleil.jpg
../../moi/Etoiles/./Soleil.jpg
L’archivage
D’une arborescence à un fichier
Une technique souvent utilisée consiste à transformer une partie de l’arborescence en un fichier qui n’est
pas utilisable directement. Ce fichier peut ensuite être retransformé en une arborescence.
Le format tar
Le format zip
Utilisé depuis les années 80, le format tar est un
Principalement utilisé pour son universalité
pilier du monde Unix. Il est parfaitement libre. Il
depuis 1986, le format zip est plus ou moins
servait initialement aux sauvegardes sur bande
libre (il y a des doutes sur la possibilité de
magnétique (tape archive).
brevet sur les techniques employées). Le format
Le format tar ne permet pas la compression,
zip n’est pas uniquement caractérisé par son
mais la commande tar donne accès à des
extension : plusieurs autres formats de fichier
programmes de compression qui permettent de
sont en fait une archive ZIP qui contient divers
réduire la taille de l’archive. Une archive au
documents (par exemple, un fichier docx pour
format tar est appelée un(e) tarball.
Microsoft Word est en fait un ZIP qui contient
Le compresseur le plus connu est gzip dont
divers fichiers XML et images).
les fichiers compressés ont un suffixe .gz.
Le format zip, en plus de l’archivage permet
Souvent on combine les deux suffixes : une
aussi la compression. La commande
archive compressée peut ainsi s’appeler
zip/unzip doit donc permettre la
textes2015.tar.gz ou
décompression.
textes2015.tgz.
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 78 / 235
Organiser ses données Quelques mini-manuels
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 79 / 235
Organiser ses données Quelques mini-manuels
Conventions
Noms et chemins
◮ Un chemin peut être absolu ou relatif. Il peut utiliser les notations spéciales.
◮ Par convention la notion de fichier sera comprise dans son sens large. Par exemple, le chemin d’un
fichier devra être interprété sans distinction comme le chemin vers un fichier ordinaire ou comme le
chemin vers un répertoire (sauf mention contraire explicite).
Sources et destination
Les commandes de déplacement acceptent une ou des sources qui sont des fichiers ou répertoires
d’origine, et une destination qui est un fichier ou un répertoire.
Description
◮ Affiche le nom du répertoire courant.
Exemple d’utilisation:
/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire racine / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire racine
home/ home/
moi/ . . . . . . . . . . . . . . . . . Répertoire courant moi/ . . . . . . . . . . . . . . . Répertoire personnel
Etoiles/ Etoiles/ . . . . . . . . . . . Répertoire courant
Syntaxe pour cd
cd <cible>
Description
◮ Change le répertoire courant (permet de naviguer dans l’arborescence).
◮ Si le chemin du répertoire cible est omis, le répertoire courant redevient par défaut le répertoire
personnel.
Exemple d’utilisation:
/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Racine
home/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant initial
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant cas #1
Etoiles/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant cas #2
Commande cas #1 : Commande cas #2 :
login@host:/home$ cd login@host:/home$ cd moi/Etoiles
login@host:˜$ login@host:˜/Etoile$
Syntaxe pour ls
ls <source>
Description
◮ Affiche le contenu d’un répertoire.
◮ Par défaut si aucune source n’est indiquée, la commande affiche le contenu du répertoire courant.
Exemple d’utilisation:
/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire racine
home/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
moi/
astronomie.txt
Etoiles/
login@host:/home/$ ls
moi/
login@host:/home/$ ls moi/
Etoiles/ astronomie.txt
Description
◮ Affiche le contenu d’un répertoire y compris les fichiers et répertoires cachés.
◮ Les fichiers et répertoires cachés ont un nom dont le premier caractère est un point.
◮ Les fichiers et répertoires cachés sont utilisés par le système ou certaines applications.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . Répertoire courant
./ssh/ Sans option -a
id_rsa login@host:˜$ ls
id_rsa.pub astronomie.txt Etoiles/
known_hosts
Avec option -a
.bashrc
login@host:˜$ ls -a
astronomie.txt . .. .bashrc .ssh/
Etoiles/ astronomie.txt Etoiles/
soleil.jpg
Description
◮ Affiche le contenu des fichiers les uns à la suite des autres.
◮ Les fichiers sont concaténés dans l’ordre des paramètres.
Exemple d’utilisation:
Cette commande est en générale utilisée pour concaténer des fichiers textes. On l’utilise avec une commande de redirection (cf. Partie
Redirections) pour enregistrer le résultat de la concaténation dans un nouveau fichier.
Soient les deux fichiers suivants :
tellur.txt La commande :
Mercure, Venus login@host:˜$ cat tellur.txt jov.txt
Terre, Mars Mercure, Venus
Terre, Mars
Jupiter, Saturne
jov.txt Uranus, Neptune
login@host:˜$
Jupiter, Saturne
Uranus, Neptune
Description
◮ Si le chemin est occupé par un fichier ou un répertoire, mise à jour de la date de dernière
modification.
◮ Sinon, création d’un ou de plusieurs fichiers vides à l’endroit spécifié par le chemin.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
astronomie.txt
lisezmoi.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #1
Stars/
TCeti.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #2
ACentauri.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #2
login@host:˜$ touch lisezmoi.txt
login@host:˜$ touch Stars/TCeti.txt Stars/ACentauri.txt
Description
◮ Création d’un ou de plusieurs répertoires aux endroits spécifiés par les chemins.
◮ Si le chemin est occupé par un fichier ou un répertoire, il y a un message d’erreur.
◮ Si le chemin n’est pas déjà créé à part le dernier élément, il y a un message d’erreur.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
Systeme_Solaire/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création commande #1
Etoiles/
Rouges/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création commande #2
Bleues/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création commande #2
login@host:˜$ mkdir Systeme_Solaire
login@host:˜$ mkdir Etoiles/Rouges Etoiles/Bleues
login@host:˜$ mkdir Galaxies/M91
mkdir: impossible de créer le répertoire
« Galaxies/M91 »: Aucun fichier ou dossier de ce type
Description
◮ Création d’un ou de plusieurs répertoires aux endroits spécifiés par les chemins.
◮ Si depuis la racine en suivant un chemin, on rencontre un fichier, il y a un message d’erreur.
◮ Si depuis la racine en suivant un chemin, il n’y pas de répertoire, il est créé.
Exemple d’utilisation:
chez_moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
astronomie.txt
Etoiles/
Galaxies/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #1
M91/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #1
highres/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création Commande #1
login@host:˜$ mkdir -p Galaxies/M91/highres
Syntaxe pour rm
rm chemin [chemin_2 ...]
Description
◮ La commande supprime le fichier pointé par le(s) chemin(s).
◮ Si le chemin pointe sur un répertoire, la commande affiche un message d’erreur.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
astronomie.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #1
Etoiles/
soleil.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #2
aldebaran.gif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #2
login@host:˜$ rm astronomie.txt
login@host:˜$ rm aldebaran.gif Etoiles/soleil.jpg
Description
◮ L’option -r (comme récursif) permet de supprimer un répertoire et tout son contenu.
Exemple d’utilisation:
chez_moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
astronomie.txt
Etoiles/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #1
soleil.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #1
Galaxie/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #1
Andromede.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supprimé par la commande #1
aldebaran.gif
login@host:˜$ rm -r Etoiles
Syntaxe pour cp
cp source cible
Description
◮ Copie le fichier source vers la cible.
◮ La source doit être un fichier ordinaire (pas un répertoire),
◮ Si la source est un répertoire la commande produit un message d’erreur.
◮ Si la cible :
◮ est le chemin d’un répertoire existant, le fichier sera copié dans ce répertoire et conservera son nom,
◮ ne correspond pas à un répertoire existant, le fichier sera copié avec le nom (chemin) cible.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
astronomie.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier source commandes #1 et #2
Etoiles/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire cible commande #1
astronomie.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/Créé par la commande #1
info.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . copié/créé par la commande #2
cv.pdf
login@host:˜$ cp astronomie.txt Etoiles
login@host:˜$ cp astronomie.txt Etoiles/info.txt
Description
◮ Copie plusieurs fichiers sources vers la cible.
◮ Les sources doivent être des fichiers ordinaires, et la cible un répertoire.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
cv.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier source
motivations.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier source
Candidature/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire cible
cv.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande
motivations.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande
login@host:˜$ cp cv.pdf motivations.pdf Candidature
login@host:˜$ cp cv.pdf motivations.pdf Candidature/ #
Moins ambigu
Description
◮ L’option -r (Récursif) permet de copier un répertoire et son contenu si il apparait dans le(s)
source(s).
◮ Attention : si le répertoire n’existe pas et qu’on copie un répertoire, il y a renommage
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
Galaxie/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Source commandes
Andromede.pdf
Etoiles/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire cible #1
Galaxie/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande #1
Andromede.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande #1
Top10/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande #2 (renommage)
Andromede.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copié/créé par la commande #2
login@host:˜$ cp -r Galaxie Etoiles
login@host:˜$ cp -r Galaxie Top10
Syntaxe pour mv
mv source cible
Description
Déplace/renomme un fichier ou répertoire.
◮ modifie le chemin d’accès à la source qui devient le chemin cible.
◮ Le chemin source disparait et le chemin cible est créé.
◮ Le fichier ou répertoire pointé reste le même.
◮ La cible doit être un chemin non occupé ou un répertoire.
Exemple d’utilisation:
État Initial de l’arborescence : État Final de l’arborescence :
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
astronomie.txt . . . . . . . . . . . . . . . . Fichier Source Etoiles/ . . . . . . . . . . . . . . . . . . . . Répertoire Cible
relativite.pdf . . . . . . . . . . . . . . . . . . Fichier Source astronomie.txt . . . . . . . . . . . Fichier Déplacé
Etoiles/ . . . . . . . . . . . . . . . . . . . . Répertoire Cible relativite.pdf . . . . . . . . . . . . . Fichier Déplacé
Exemple d’utilisation:
État Initial de l’arborescence : État Final de l’arborescence :
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
relativite.pdf . . . . . . . . . . . . . . . . . . Fichier Source Espace/ . . . . . . . . . . . . . . . . . . . Répertoire Cible
Etoiles/ . . . . . . . . . . . . . . . . . . Répertoire Source relativite.pdf . . . . . . . . . . . . . Fichier Déplacé
astronomie.txt Etoiles/ . . . . . . . . . . . . . . Répertoire Déplacé
Espace/ . . . . . . . . . . . . . . . . . . . Répertoire Cible astronomie.txt . . . . . . . . Fichier Déplacé
Description
◮ Crée un fichier archive dont le nom (chemin) est donné en premier argument et porte classiquement
l’extension .tar.
◮ Les fichiers sources qui servent a créer l’archive sont préservés par la commande tar.
◮ L’option c (comme create), indique que la commande tar doit utiliser un algorithme d’archivage.
◮ L’option v (verbose), permet d’afficher le déroulement de l’archivage.
◮ L’option f (file), permet de préciser juste derrière un fichier d’archivage.
Exemple d’utilisation:
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
astronomie.txt
Images/
soleil2.jpg
Terre1.jpg
espace.tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Créé par la commande #1
Regroupe dans la même archive espace.tar le fichier astronomie.txt et le répertoire Images/ et son contenu :
Description
◮ Examine une archive ou crée des fichiers à partir de l’archive.
◮ Le fichier archive est préservé par la commande tar.
◮ L’option x (extract), permet de désarchiver.
◮ L’option t (list), permet de lister le contenu d’une archive
Exemple d’utilisation:
login@host:˜$ tar tvf espace.tar
moi/ . . . . . . . . . . . . . . . . . . . . . Répertoire courant astronomie.txt
Images/
espace.tar Images/soleil2.jpg
astronomie.txt . . . créé par la commande #2 Images/Terre1.jpg
Images . . . . . . . . créé par la commande #3 login@host:˜$ tar xvf espace.tar
astronomie.txt
soleil2.jpg . . créé par la commande #3 astronomie.txt
Terre1.jpg . . créé par la commande #3 login@host:˜$ tar xf espace.tar
login@host:˜$
Exercices
Préparation
Q26 Ouvrez un terminal. Vérifiez que le répertoire dans lequel vous êtes est bien
/home/usager/123456789/. Quelle est la commande qui permet de le faire ? (123456789 =
votre identifiant)
Q27 Vérifiez le contenu du répertoire Documents qui est dans votre répertoire personnel. Quelle est la
commande qui permet de le faire ? Est-ce qu’il y a quelque chose ?
Q28 Faites la vérification de trois façons différentes : chemin absolu, utilisation du raccourci ˜, utilisation
d’un chemin relatif.
Q29 Changez le répertoire courant pour aller dans Documents. Quelle est la commande pour le faire ?
Q30 Créez en ligne de commande un répertoire m1101 dans ~/Documents. À partir de maintenant,
assurez-vous que le répertoire courant est ce répertoire m1101.
Q31 Téléchargez l’archive contenant les données pour ce TP : Allez sur la page
http://lipn.fr/~dubacq/m1101.html. Téléchargez le fichier photos.tar.
Recherchez où le fichier a été écrit dans l’arborescence de votre répertoire personnel.
Q32 Donnez la (suite de) commande(s) permettant de déplacer le fichier d’archive dans le répertoire
m1101 que vous venez de créer. À la fin des commandes, le répertoire m1101 sera toujours votre
répertoire courant et ne contiendra que le fichiers photos.tar.
Q33 Quelle commande permet de vérifier que l’archive est bien dans le répertoire
~/Documents/m1101
G. Santini, J.-C. Dubacq (IUTV) ? Introduction à l’informatique S1 2016 100 / 235
Organiser ses données Quelques mini-manuels
Exercices
Examen de fichiers
Q34 Quelles sont les informations données par le nom du fichier ?
Q35 Les commandes less, cat et hexdump permettent d’afficher le contenu d’un fichier. Analysez la
différence de comportement entre ces deux commandes sur le fichier photos.tar. Qu’en
concluez-vous ? Quel est le programme le plus adapté pour voir le contenu de ce fichier ?
Q36 Relisez le manuel de la commande tar. Vérifiez la liste des fichiers contenus dans l’archive.
Combien y en a-t-il ?
Q37 Sortez les fichiers de l’archive.
Q38 Avec les commandes de la question 35, regardez le fichier contenu dans un répertoire. Analysez la
différence de comportement entre ces commandes. Qu’en concluez-vous ?
Remarques : si un affichage prend trop de temps, utilisez le raccourci clavier adéquat pour suspendre
l’exécution de la commande courante. Si l’affichage de votre terminal est durablement perturbé, dans le
menu Terminal →Réinitialiser le terminal.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 102 / 235
Organiser ses données Métacaractères
Le métacaractère *
Le caractère *
Autres métacaractères
Du shell aux programmes
Il faut bien se souvenir que les métacaractères sont interprétés par le shell. Cela a deux conséquences :
◮ Le programme appelé ne sait pas si les noms ont été tapés en entier ou si des métacaractères ont
été utilisés. Il n’a que le résultat final.
◮ Dans un programme, on ne peut pas utiliser les métacaractères.
Les jokers
Ce sont des motifs simples. Lorsqu’ils ne peuvent pas être instanciés, ils ne sont pas supprimés, mais
passés tels quels. Exemple : mkdir -p toto/* selon que toto est un répertoire non-vide ou
autre chose.
On y trouve ? qui remplace une lettre, [a-c][0-2] qui remplace a0 b0 c0 a1 b1 c1 a2 b2 c2,
Les raccourcis
Le motif {fourch,brou}ette est remplacé par fourchette et brouette indépendamment
de l’existence ou nom de chemins correspondants.
Le motif ˜ a déjà été vu et est remplacé par le chemin absolu du répertoire personnel de l’utilisateur
courant. ˜user est remplacé de la même façon mais pour l’utilisateur user.
Exercices
Copie et déplacement
Q39 Quelle commande permet la création "simultanée" de trois répertoires GIF et
Photos/Portugal, Photos/Marseille et Photos/Montagne ?
Q40 Quelle commande permet de déplacer depuis le répertoire images tous les fichiers présentant
l’extension gif dans le répertoire GIF nouvellement créé ?
Q41 Quelle commande permet de copier depuis le répertoire images tous les fichiers présentant
l’extension jpg dans le répertoire Photos nouvellement créés ?
Q42 Définissez le répertoire Photos/Montagne comme votre répertoire courant. Quelle commande
permet de déplacer la photo de chalet dans ce répertoire ?
Q43 En vous mettant dans Photos, déplacez les photos restantes dans le bon répertoire (Marseille est
supérieure à 2000). Si possible, faites usages de jokers.
Exercices
Suppressions
Q44 Quel est le résultat de la séquence de commandes suivante :
cd ..
rm images
Q45 Comment modifier la dernière commande pour supprimer le répertoire images/ ? Comment
modifier la commande pour éviter les invites de confirmation ?
Q46 Quelle commande permet de copier le répertoire GIF et son contenu dans un répertoire nommé
images_GIF ?
Q47 Quelle est la différence entre les deux commandes suivantes :
cd ~
cd /home/usager/votre_identifiant/
Q48 Fabriquez une archive qui contient le répertoire Photos (et uniquement celui-ci). Vérifiez son contenu.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
6 Fichiers exécutables
G. Santini, J.-C. Dubacq (IUTV)et Processus Introduction à l’informatique S1 2016 109 / 235
Organiser ses données Arborescence et montage
Le partitionnement
Du disque aux partitions
◮ Un disque est souvent divisé en plusieurs zones d’usage distinct (par exemple, système et données
utilisateurs).
◮ Chacun de ces zones est appelée une partition. Elle est un système de fichiers indépendant des
autres, et peut être combinée avec d’autres.
◮ Sous Windows, chaque partition est désignée par une lettre en fonction de son ordre de découverte
par le système. Cette lettre fait partie du chemin.
L’ordre des partitions peut changer et donc la lettre ; ça pose problème pour les mises à jour.
Montage et démontage
◮ Un système d’exploitation peut rendre accessible une partition : c’est le montage de la partition.
◮ Inversement : c’est le démontage de la partition.
Une partition montée peut être utilisée normalement par les programmes.
Une partition démontée doit utiliser une interface spéciale plus compliquée qui contourne le système
de fichiers et permet d’accéder directement au disque.
Les partitions qui ne sont pas la racine sont accrochées dans la partition racine (ou une autre déjà
accrochée) au niveau d’un répertoire qui sert de point de montage.
Le contenu du point de montage est alors inaccessible et remplacé par le contenu du système de
fichier qui a été monté
◮ Le chemin absolu d’un élément du système monté est le chemin du point de montage suivi du
chemin dans le système de fichiers monté.
Exemple : fichier moi/toto.txt dans un système monté sur /home, le chemin absolu est
/home/moi/toto.txt.
Le pseudo-système /dev
Sous Linux, les périphériques sont accessibles par une interface de type fichier. Leur chemin est
/dev/codeperipherique.
Le sous-arbre à partir de /dev est un système de fichiers indépendant d’un périphérique physique. On
parle de système de fichiers virtuel.
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 111 / 235
Organiser ses données Arborescence et montage
Description
◮ périphérique correspond à périphérique (/dev/xxx). Il y a plusieurs syntaxes possibles.
◮ point_de_montage correspond à un nom de répertoire valide dans l’arborescence principale
donnant accès au contenu de l’arborescence du périphérique.
◮ Sans argument, la commande liste tous les montages en cours
Exemple d’utilisation:
login@host:/home$ mount /dev/sde1 /mnt/usb
Exercices
Analyse de périphériques
Q49 Le périphérique zero est un périphérique virtuel. La commande dd if=/dev/zero
count=1 | hexdump -v permet de voir les 512 premiers octets de ce périphérique virtuel
(en hexadécimal). Regardez-le. Qu’est-ce qu’il a de particulier ?
Q50 Le périphérique urandom est un périphérique virtuel. La commande dd if=/dev/urandom
count=1 | hexdump -v permet de voir les 512 premiers octets de ce périphérique virtuel
(en hexadécimal). Regardez-le. Recommencez. Qu’est-ce qu’il a de particulier ?
Q51 Le périphérique sda1 est une des partitions du disque dur. La commande dd if=/dev/sda1
count=1 | hexdump -v permet de voir les 512 premiers octets de ce périphérique virtuel
(en hexadécimal). Regardez-le. Que se passe-t-il ? Un programme normal comme dd peut-il
examiner le disque dur en outrepassant le système de fichiers ?
Q52 En utilisant la commande mount, analysez les différentes partitions présentes dans votre système.
Identifiez celles qui correspondent à un vrai périphérique et les systèmes de fichier virtuel.
Espace libre
Une partition occupe une taille fixe. La plupart des systèmes de fichiers sont de taille fixe. Elles peuvent
accueillir uniquement une certaine quantité de données.
L’espace de travail
Comme dans un parking, la quantité de données que l’on peut mettre dans un disque ne doit pas être
égale à la quantité de données qu’il peut accueillir, sinon, on ne peut pas faire un certain nombre
d’opérations. En plus de l’espace réservé à la signalisation (index et tables divers), on réserve aussi un
peu d’espace pour les programmes importants du système.
La fragmentation
Les fichiers sont posés par petits blocs dans la partition (qui est elle-même un gros bloc dans l’ensemble
du disque). Parce qu’un fichier est plus rapide à lire si les blocs sont les uns à côté des autres, les
systèmes de fichiers essayent de maintenir cet état. Sous Windows, on peut aider le système en
procédant à une opération de rangement : la défragmentation.
Les systèmes de fichiers utilisés sous Linux n’ont quasiment pas de fragmentation si on utilise moins de
95% de leur espace.
Syntaxe pour df
df [-h] [emplacement]
Description
◮ Affiche les disques montés et leur capacité de mémoire (celui de la partition qui correspond à
l’emplacement, tous s’il n’y en a pas).
◮ L’option -h (human readable) convertie l’affichage des tailles mémoires en unités conventionnelles
binaires (en nombre de blocs par défaut). Avec -H c’est en unités décimales.
Exemple d’utilisation:
login@host:˜$ df -h
Sys. de fichiers Taille Uti. Disp. Uti% Monté sur
/dev/sda1 56G 16G 37G 31% /
myserver:/home/moi 1,8T 1,6T 192G 90% /users/moi
... ... ... ... ... ...
login@host:˜$
Exercices
L’organisation des fichiers et répertoires est elle stockée dans des blocs spéciaux appelés nœuds
d’index (ou inodes). Un chemin est associé à un inode unique qui va contenir la liste des numéros de
blocs de données qu’il utilise.
◮ Un répertoire est un inode qui pointe vers un bloc de données qui contient un tableau de type nom
→ inode
◮ Un fichier est un inode qui pointe vers un ou plusieurs blocs de données qui contiennent... les
données.
Description
◮ Si le chemin est occupé par un fichier ou un répertoire, affiche les métadonnées relatives au chemin.
Exemple d’utilisation:
login@host:˜$ stat /etc/fstab
Fichier : « /etc/fstab » Taille : 672 Blocs : 8
Blocs d’E/S : 4096 fichier Périphérique : 801h/2049d
Inœud : 5244539 Liens : 1 Accès : (0644/-rw-r-r-)
UID : ( 0/ root) GID : ( 0/ root) Accès : 2015-09-22
22:04:47.768711256 +0200 Modif. : 2013-11-13
09:12:51.763972183 +0100 Changt : 2015-08-09
10:57:36.553313285 +0200 Créé : -
login@host:˜$
Exercices
Syntaxe pour ln
ln source [cible]
Description
◮ Crée un lien dur entre la référence source et le chemin cible.
Exemple d’utilisation:
login@host:˜$ ln astronomie.txt Etoiles/lisezmoi.txt
Le lien sur un fichier crée une deuxième entrée pointant vers le même inode.
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
moi/ . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
astronomie.txt
astronomie.txt . . . . . . . . . . . . . Référence source
Etoiles/
Etoiles/
soleil.jpg
soleil.jpg
lisezmoi.txt . . . . . . . . . . . . . Nouveau chemin
aldebaran.gif
aldebaran.gif
Exercices
Liens durs
Q65 Dans votre répertoire /̃Documents/m1101/textes, créez un petit fichier source.txt.
Insérez quelques lignes de texte dedans (avec gedit source.txt), puis quittez l’éditeur de
texte.
Q66 Vérifiez dans la console son numéro d’inode, et son contenu. Quelles sont les commandes pour cela ?
Q67 Faites une copie de source.txt vers copie.txt, et un lien de source.txt vers
lien.txt. Vérifiez le contenu de la copie et du lien. Vérifiez que les numéros d’inode et les
compteurs de liens sont comme ce à quoi vous vous attendiez.
Q68 Avec l’éditeur de texte, comme plus haut, modifiez le fichier source. Regardez les trois fichiers dans le
terminal. Est-ce conforme à vos attentes ? Essayez ensuite en changeant la copie.
Q69 Faites un lien de lien.txt vers lienlien.txt. Vérifiez le compteur de liens. Effacez ensuite
lien.txt, et vérifiez encore.
Q70 Modifiez lienlien.txt, puis regardez tous les contenus. Effacez le fichier source.txt. Le
fichier lienlien.txt est-il toujours là ?
Q71 Essayez de faire un lien entre copie.txt et /tmp/copie.txt. Que se passe-t-il ?
Pourquoi ? Expliquez.
Une redirection
Sous Windows ou sous Unix, on peut créer des « raccourcis » qui lient un chemin spécifique à un
autre endroit dans l’arborescence.
◮ Unix les appelle des liens symboliques.
◮ Windows les appelle des raccourcis.
◮ Un lien symbolique est un chemin (relatif ou absolu) qui indique un autre point de l’arbre. Il
fonctionne au niveau chemin et pas au niveau inode.
◮ Un lien symbolique peut traverser les partitions.
Un lien symbolique peut pointer sur un chemin qui ne correspond pas à un fichier ou un répertoire.
On dit qu’il est brisé.
Exercices
Liens symboliques
Q72 Dans votre répertoire /̃Documents/m1101/textes, recréez un petit fichier source.txt,
effacez lienlien.txt et copie.txt.
Q73 Faites un lien symbolique de source.txt vers lien.txt. Vérifiez le contenu du lien.
Regardez les métadonnées associées.
Q74 Avec l’éditeur de texte, comme plus haut, modifiez le fichier source. Regardez les deux fichiers dans
le terminal. Est-ce conforme à vos attentes ?
Q75 Faites un lien de lien.txt vers lienlien.txt. Vérifiez le contenu des trois fichiers (en
modifiant).
Q76 Modifiez lienlien.txt, puis regardez tous les contenus. Effacez le fichier source.txt. Le
fichier lienlien.txt est-il toujours là ?
Q77 Essayez de faire un lien entre commande.txt et /tmp/story.txt. Que se passe-t-il ?
Pourquoi ? Expliquez.
Q78 Faites un lien symbolique vers un répertoire. Que se passe-t-il ? Quel est le danger ?
Un lien symbolique archivé en tant que tel pointant en dehors de l’archive peut être brisé !
Exercices
Liens et archives
Q79 Dans votre répertoire ˜/Documents/m1101, créez un répertoire selection.
Q80 Faites un lien symbolique dans selection d’une image de images, un lien dur et une copie de
fichier. Rajoutez un lien dur dans selection vers la copie de fichier sous un autre nom (par
exemple lameilleure.jpg.
Q81 Archivez le répertoire selection au format tar. Vérifiez avec tar vvf
selection.tar que les fichiers sont tous présents, sauf le lien symbolique.
Q82 Archivez avec zip le même répertoire. Vérifiez (avec stat sel.zip) que la taille de l’archive
est cohérente avec la présence de quatre images (et non pas trois).
Q83 Archivez dans un autre fichier zip le même répertoire avec la conservation des liens symboliques.
Comparez les tailles et expliquez.
Q84 Créez trois répertoires d1, d2, d3. Dans chacun de ces répertoires, décompressez les archives
crées précédemment. Regardez ce qui arrive aux liens symboliques et aux liens durs dans chacun
des cas.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Exercices
Préparation
85. Vérifiez que votre répertoire courant est bien m1101. Analysez l’affichage produit par la commande
ls suivie des options -lh. Vous pourrez comparer les affichages obtenus par les commandes ls
-l et ls -lh pour comprendre l’effet de l’option -h. Vous pourrez aussi rechercher cette
information dans les pages de man.
86. Analysez l’arborescence créée lors de l’extraction des données de l’archive au moyen de la
commande ls. Vous dessinerez cette arborescence.
87. Après vous être placé dans le répertoire créé lors de l’extraction de l’archive (donnees), quelle
commande permet d’identifier le plus gros fichier (taille mémoire). Identifiez-le.
88. Quelles commandes vous permettent d’afficher le contenu des fichiers texte command.txt et
README ? Quels sont leurs contenus ?
89. Analysez le résulat de l’évaluation des commandes suivantes :
file textes/README.txt
file textes/command.txt
file images/img_1175.jpg
90. Quelle est la fonction de la commande file ? Parcourez les pages de manuel de cette commande.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Système multi-tâches
◮ Plusieurs programmes en cours d’exécution partagent les mêmes ressources matériel (mémoire
vive, CPU, disques, . . .). Ils peuvent provenir d’un seul ou de plusieurs utilisateurs,
◮ Chaque programmes lance des processus et il utilise les résultats de ces processus.
PID et PPID
Utilités
◮ L’utilisateur peut suivre un processus, le suspendre temporairement, le relancer ou le tuer
(interruption définitive).
◮ Le système s’en sert pour lui affecter des ressources matériel.
Exercices
93. À la suite de l’affichage précédent tapez la combinaison de touches Ctrl A . Que se passe-t-il ?
94. Que fait la commande man sleep ? Que pouvez-vous dire de la commande sleep ?
95. Exécutez la commande sleep 32000000. Que se passe-t-il si vous tapez la combinaison de
touches Ctrl C ?
96. Quelle action produit la pression de la flèche ↑ sur votre clavier ?
97. Quelle est l’action produite par la pression de la combinaison de touches Ctrl U après avoir tapé
quelques lettres ? Par la combinaison de touche Ctrl L ?
98. Quelle est l’action produite en tapant ls →− (le caractère
−→ signifie la présence
d’un espace) ?
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Syntaxe pour ps
ps <-eu>
Description
◮ Affiche les processus en cours d’exécution.
◮ L’option <-e> indique que tous les processus doivent être affichés,
◮ L’option <-u> restreint l’affichage aux processus de l’utilisateur.
Exemple d’utilisation:
login@host:˜$ ps -eu
Warning: bad ps syntax, perhaps a bogus ’-’? See http://procps.sf.net
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
santini 5905 0.0 0.2 4824 1656 pts/1 Ss 09:27 0:00 -bash LC_ALL=fr_FR.UTF
santini 5962 0.0 0.1 3884 896 pts/1 R+ 09:48 0:00 ps -eu MANPATH=/etc/jav
login@host:˜$
Description
◮ Permet de suivre dynamiquement (temps réel) les ressources matériel utilisées par chaque
processus.
◮ Ouvre un interface dans la ligne de commande qui peut être quittée en pressant la touche Q
◮ Donne pour chaque processus en autres choses, le PID, le nom du propriétaire, la date de
lancement du processus, les %CPU et %MEM utilisés.
Exemple d’utilisation:
Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.7%us, 0.0%sy, 0.0%ni, 93.6%id, 0.0%wa, 0.7%hi, 0.0%si, 0.0%st
Mem: 772068k total, 231864k used, 540204k free, 2412k buffers
Swap: 995992k total, 0k used, 995992k free, 161316k cached
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
login@host:˜$ sleep 20
(il faut attendre 20 secondes avant
l’apparition du nouveau prompt)
...
...
login@host:˜$
login@host:˜$ gedit
(Il faut quitter l’application ou tuer
le processus gedit pour avoir un nouveau
prompt)
...
...
login@host:˜$ gedit
ˆZ
[1]$+ Stopped gedit
login@host:˜$ gedit & login@host:˜$ bg
login@host:˜$ [1]$+ gedit &
login@host:˜$
Exercices
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Utilité
◮ Chaque fichier (ou répertoire) et chaque processus du système est associé à un utilisateur : cet
utilisateur est le propriétaire du fichier (ou répertoire) ou celui qui a lancé le processus.
◮ Être propriétaire d’un fichier ou d’un processus confère des droits sur ceux-ci.
Description
◮ Affiche le contenu d’un répertoire en format long.
◮ Le format long donne le nom du propriétaire et son groupe, ainsi que les droits des différentes
classes d’utilisateurs sur les fichiers et répertoires.
Exemple d’utilisation:
chez_moi/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Courant
public_html/
index.html
astronomie.txt
login@host:˜$ ls -l
total 32
drwxr-xr-x 2 santini ensinfo 4096 20 jui 15:50 public_html
-rw-r--r-- 1 santini ensinfo 25 20 jui 15:49 astronomie.txt
Ici, le nom de l’utilisateur est santini, nom du groupe est ensinfo et les droits sont colorés en vert.
Types d’utilisateurs
Cible
u (U)ser Propriétaire du fichier/répertoire
g (G)roup Membre du même groupe que le propriétaire
o (O)ther Tous les autres
a (A)ll Tous les utilisateurs (réunion de ’u’, ’g’ et ’o’).
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 155 / 235
Compléments sur l’arborescence Droits sur les fichiers
Description
◮ Modifie les droits et permissions accordés par le propriétaire aux différents utilisateurs du système.
Exemple d’utilisation:
Retire au propriétaire le droit d’écriture sur le fichier Retire aux utilisateurs qui ne sont ni le propriétaire ni membre de
cv_2011.pdf. son groupe les droits de lecture, d’écriture et d’exécution.
login@host:˜$ chmod u-w cv_2011.pdf login@host:˜$ chmod o-rwx
Ajoute au propriétaire et aux membres de son groupe le droit listing.bash
d’exécution sur le fichier listing.bash. Ajoute à tous les utilisateurs, tous les droits.
login@host:˜$ chmod ug+x login@host:˜$ chmod a+rwx
listing.bash listing.bash
Description
Il existe plusieurs notations des droits.
◮ La notation alphanumérique :(ugoa) (+/-) (rwx)
◮ La notation octale
◮ Calcul des droits pour un utilisateur (u, g ou o) :
Droit --- --x -w- -wx r-- r-x rw- rwx
Binaire 000 001 010 011 100 101 110 111
Octale 0 1 2 3 4 5 6 7
◮ Exemple de notation octale des droits d’un fichier
User Group Other
Alphabétique r w x r - x - - x
Binaire 1 1 1 1 0 1 0 0 1
Octale 7 5 1
Exemple d’utilisation:
Alph. Oct.
Alph. Oct.
--- --- --- 000
rwx --- --- 700 login@host:˜$ chmod 700 dir_parano
rw- --- --- 600
rwx r-x r-x 755 login@host:˜$ chmod 644 fichier_pub
rw- r-- r-- 644
rwx rwx rwx 777
rw- rw- rw- 666
Exercices
Identification et droits
Q101 Au moyen de la commande id, affichez votre UID et votre GID ? Comparez-le avec celui de votre
voisin de table. Qu’en concluez-vous ? Comparez-les avec celui de l’utilisateur root. Qu’en
concluez-vous ?
Q102 Quels sont vos droits sur le répertoire racine /, root, /tmp, sur votre répertoire ˜/, et celui de
votre voisin de table ˜/../login_voisin.
Q103 Pouvez-vous lire les données contenue dans le répertoire de votre voisin. Quelle commande
permettrait de le faire ? Qui doit lancer la commande ?
Q104 Donnez les commandes octale et alphanumérique de changement de droits permettant :
◮ d’autoriser aux membres de votre groupe et aux "autres" l’accès en lecture aux images du répertoire
donnees_tdtp2/images.
◮ de donnez les droits d’écriture aux membres de votre groupe sur le fichier
donnees_tdtp2/command_line.txt
◮ de vous (le propriétaire) retirer toute possibilité de supprimer le fichier donnees_tdtp2/0readme
Q105 Imaginez comment donner à votre voisin un accès sous votre répertoire personnel à un répertoire
dans lequel il aurait les droits d’écriture sur un fichier spécifique, que vous ne pourriez vous que lire
(mais pas modifier). Il ne doit pas pouvoir créer un autre fichier chez vous. Comment faites vous pour
effacer ce fichier ?
Exercices
Remise en état
Après toutes les modifications pouvant impliquer votre répertoire personnel, n’oubliez pas chmod 711
pour remettre les modes de votre répertoire à leur état d’origine.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Répertoire Contenu
/ Répertoire racine : Toutes les données accessibles par le système
/bin Binaires exécutables des commandes de bases (cd, ls, mkdir, . . .)
/dev Fichiers spéciaux correspondants aux périphériques
/etc Fichiers de configuration (profile, passwd,fstab... )
/home Les répertoires personnels des utilisateurs
/lib Librairies partagées et modules du noyeau
/mnt Points de montage des périphériques
/root Répertoire personnel de l’administrateur
/tmp Données temporaires
/usr Ressources accessibles par les utilisateurs
/var Fichiers de log ou fichiers changeant fréquemment
Exercices
Hiérarchie du système
Astuce : si la sortie d’une commande est trop longue, on peut ajouter |less à la fin de la ligne
pour l’afficher par morceaux. Ceci vous sera expliqué dans quelques séances...
Q106 Identifiez le propriétaire, le groupe et les différents droits des fichiers contenus dans le répertoire
/bin ? Quels sont vos droits sur ces fichiers ?
Q107 Ces fichiers on le droit x. Que pouvez-vous en conclure ?
Q108 A votre avis, que se passe-t-il en fait lorsque vous saisissez une commande telle que ls ?
FHS
Q109 Identifiez, à l’aide de la FHS, la fonction de /usr/include. Confirmez votre hypothèse en
regardant quelques fichiers.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Inconvenients Avantages
◮ Il faut recompiler pour prendre en compte ◮ Plus rapide (spécifique à la machine qui
une modification du code. exécute les instructions).
◮ L’exécutable n’est pas portable sur ◮ L’ensemble des instructions sont
d’autres machines. regroupées dans un seul fichier.
Avantages
Inconvenients
◮ Modifications du code source
◮ Moins rapide.
immédiatement prises en compte lors de
◮ Plusieurs fichiers (et librairies) servent à la réexécution.
l’exécution. ◮ Le code est portable sur d’autres machine
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Cas général
◮ Pour exécuter un programme il suffit saisir sur la ligne de commande le chemin menant au fichier
contenant les instructions,
◮ Si le fichier présente la permission "X" pour exécutable, les instructions qu’il contient sont
exécutées.
Exercices
Description
◮ Affiche sur la sortie standard l’expression après interprétation.
Exemple d’utilisation:
Affiche ’Bonjour’ :
Définie une variable puis affiche sa valeur :
login@host:˜$ Astre=Terre
login@host:˜$ echo $Astre
Terre
login@host:˜$ echo La planete $Astre
login@host:˜$ echo Bonjour
La planete Terre
Bonjour
login@host:˜$
login@host:˜$
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
login@host:˜$ ls
Mes_Documents/ Etoiles/ astronomie.txt
cv.pdf
login@host:˜$
PATH=repertoire1:repertoire2:...:RepertoireN
◮ Lors de chaque appel de commande, l’interpréteur parcourt cette liste dans l’ordre à la recherche
d’un fichier portant le nom de la commande,
◮ Dès qu’il rencontre un tel fichier, il met fin à sa recherche et exécute le fichier.
Rôle de $PATH
→ Il s’agit d’une liste de répertoires que l’interpréteur parcours automatiquement et séquentiellement
(par défaut) si aucun chemin n’est donné pour trouver le fichier exécutable.
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 173 / 235
Compléments sur l’arborescence Chemins par défaut et variable d’environnement
Description
◮ Affiche le chemin du fichier correspondant à une commande.
◮ Parcours successivement les répertoires de la variable $PATH. Dès qu’il trouve un fichier
correspondant au nom de la commande il renvoie son chemin.
Exemple d’utilisation:
/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . Répertoire Racine
bin/
ls . . . . . . . . . . . . . . . . . . . . . . . Exécutable #1 login@host:/home/chez_mo$ echo $PATH
... /bin:/usr/bin:/usr/local/bin:/home/chez_m
login@host:/home/chez_moi$ which ls
home/
/bin/ls
chez_moi/ . . . . . . . . . . . . Répertoire Courant
bin/
ls . . . . . . . . . . . . . . . Exécutable #2
Exercices
Environnement
Q114 Au moyen de la commande env, donnez la liste des répertoires contenus dans $PATH.
Q115 Au moyen de la commande which, afficher la localisation des exécutables correspondants aux
commandes mv, cd, man, cat, firefox, acroread.
Q116 Vérifiez que ces répertoires font partie de la liste contenue dans la variable $PATH ? Que se
passerait-il si ce n’était pas le cas ?
Q117 Ajouter le répertoire ˜/bin à la liste des répertoires $PATH.
Q118 Maintenant que ˜/bin est parcoure par défaut lors de l’appel d’une commande, comment
invoque-t-on désormais l’exécution du script listintro.sh ? Vérifiez le comportement attendu.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
Fichiers de configuration
Fichiers systèmes et utilisateurs
◮ Les variables d’environnement (et d’autres variables de configuration) sont définis dans divers
fichiers.
◮ On distingue les fichiers système qui définissent des comportements pour tous les utilisateurs
(stockés dans le répertoire /etc/) des fichiers de configuration propres à un utilisateur (stockés
dans le répertoire personnel)
Fichiers de configuration
Contenu d’un fichier .bashrc
◮ Redéfinition des variables d’environnement,
◮ Définition des alias,
◮ Définition des fonctions,
◮ et de façon générale toutes les instructions que l’on souhaite évaluer lors de l’ouverture d’un
nouveau shell.
.bashrc
# Mes aliases
alias ll=’ls -l’
alias df=’df -h’
alias rm=’rm -i’
# Mes variables
PATH=$PATH:$HOME/bin
Description
◮ créet un alias entre un nom de commande et une expression.
◮ l’expression est donnée entre quotes : ’expression ...’
Exemple d’utilisation:
login@host:˜$ ll
chez_moi/ . . . . . . . Répertoire Courant
-bash: ll: command not found
login@host:˜$ alias ll=’ls -l’
public_html/ login@host:˜$ ls -l
index.html total 32
astronomie.txt drwxr-xr-x 2 santini ensinfo 4096 20 jui 15:50 public_h
-rw-r-r- 1 santini ensinfo 25 20 jui 15:49 telluriques.
Exercices
Q121 Modifiez/créez un fichier ˜/.bashrc pour ajouter le répertoire ˜/bin de façon stable à votre
variable $PATH.
Q122 ajoutez dans le même fichier les alias qui vous paraissent intéressants.
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Entrée et sortie standard
Redirections
Tubes
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Entrée et sortie standard
Redirections
Tubes
Description
◮ Affiche le contenu des fichiers les uns à la suite des autres.
◮ Les fichiers sont concaténés dans l’ordre des paramètres.
Exemple d’utilisation:
Cette commande est en générale utilisée pour concaténer des fichiers textes. On l’utilise avec une commande de redirection (cf. Partie
Redirections) pour enregistrer le résultat de la concaténation dans un nouveau fichier.
Soient les deux fichiers suivants :
tellur.txt La commande :
Mercure, Venus login@host:˜$ cat tellur.txt jov.txt
Terre, Mars Mercure, Venus
Terre, Mars
Jupiter, Saturne
jov.txt Uranus, Neptune
login@host:˜$
Jupiter, Saturne
Uranus, Neptune
Description
◮ Affiche par défaut les 10 premières lignes d’un fichier.
◮ Si un entier n précède le nom du fichier, la commande affiche les n premières lignes du fichier.
Exemple d’utilisation:
Soit le fichier planetes.txt contenant les lignes suivantes :
planetes.txt
# Premier groupe
1 Mercure
Tellurique
2 Venus
Tellurique La commande suivante affiche les 5 premières lignes du fichier :
3 Terre
Tellurique login@host:˜$ head -5 planetes.txt
4 Mars # Premier groupe
1 Mercure Tellurique
Tellurique
2 Venus Tellurique
# Deuxième groupe 3 Terre Tellurique
1 Jupiter 4 Mars Tellurique
Gazeuse login@host:˜$
2 Saturne
Gazeuse
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 188 / 235
Flux de données Entrée et sortie standard
Description
◮ Affiche par défaut les 10 dernières lignes d’un fichier.
◮ Si un entier n précède le nom du fichier, la commande affiche les n dernières lignes du fichier.
Exemple d’utilisation:
Soit le fichier planetes.txt contenant les lignes suivantes :
planetes.txt
# Premier groupe
1 Mercure
Tellurique
2 Venus
Tellurique La commande suivante affiche les 4 dernières lignes du fichier :
3 Terre
Tellurique login@host:˜$ tail -4 planetes.txt
4 Mars 1 Jupiter Gazeuse
Tellurique 2 Saturne Gazeuse
# Deuxième groupe 3 Uranus Gazeuse
1 Jupiter 4 Neptune Gazeuse
Gazeuse login@host:˜$
2 Saturne
Gazeuse
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 189 / 235
Flux de données Entrée et sortie standard
Description
◮ Affiche les lignes du fichier qui comportent le "motif".
◮ Les lignes sont affichées dans leur ordre d’apparition dans le fichier.
Exemple d’utilisation:
Soit le fichier planetes.txt contenant
les lignes suivantes :
planetes.txt
# Premier groupe
1 Mercure
Tellurique Commandes :
2 Venus
login@host:˜$ grep ’Tellurique’
Tellurique
planetes.txt
3 Terre 1 Mercure Tellurique
Tellurique 2 Venus Tellurique
4 Mars 3 Terre Tellurique
Tellurique 4 Mars Tellurique
# Deuxième groupe login@host:˜$ grep ’1’ planetes.txt
1 Jupiter 1 Mercure Tellurique
Gazeuse 1 Jupiter Gazeuse
login@host:˜$
2 G. Saturne
Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 190 / 235
Flux de données Entrée et sortie standard
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Entrée et sortie standard
Redirections
Tubes
Exemple de redirection
login@host:˜$ ls
aldenaran.jpg alphacentauri.gif login@host:˜$ ls > 1.out
etacentauri.jpg login@host:˜$ ls
login@host:˜$ ls 1.out aldenaran.jpg alphacentauri.gif
aldenaran.jpg alphacentauri.gif etacentauri.jpg
etacentauri.jpg login@host:˜$
login@host:˜$ La sortie standard de la première commande ls est redirigée vers le
La sortie standard de la première commande ls est l’écran. La liste du fichier 1.out. La liste du contenu du répertoire courant est écrite dans
contenu du répertoire courant est affichée à l’écran. le fichier 1.out.
La deuxième commande ls, montre qu’un fichier portant le nom
1.out a été créé.
Description
◮ Affiche sur la sortie standard l’expression après interprétation.
Exemple d’utilisation:
Affiche ’Bonjour’ :
Définie une variable puis affiche sa valeur :
login@host:˜$ Astre=Terre
login@host:˜$ echo $Astre
Terre
login@host:˜$ echo La planete $Astre
login@host:˜$ echo Bonjour
La planete Terre
Bonjour
login@host:˜$
login@host:˜$
Exercices
Redirections
Q130 Que font les commandes suivantes ?
login@host:˜$ echo “Bonjour"
login@host:˜$ echo “Bonjour" > bonjour.out
login@host:˜$ echo “Salut" > bonjour.out
login@host:˜$ echo “Bonjour" » bonjour.out
Q131 Entrainez-vous avec les commandes suivantes. Profitez-en pour comprendre les affichages produits par les
commandes ps et file :
login@host:˜$ ps > essai_ps.out
login@host:˜$ file /usr/include/stdio.h > file.out
Q132 Proposez une commande pour copier le contenu de /proc/cpuinfo dans un fichier cpuinfo.out sans utiliser la
commande cp
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Entrée et sortie standard
Redirections
Tubes
Tubes
Principes de fonctionnement des Tubes (Pipe en anglais)
◮ A la différence des redirections simples qui permettent de rediriger la sortie standard d’une
commande vers un fichier,
◮ Un tube permet de rediriger la sortie standard d’une commande vers l’entrée standard d’une autre
commande.
Syntaxe
◮ Le tube est symbolisé par le caractère |.
cmd1 | cmd2
◮ ◮ La sortie standard de la première commande (cmd1) est redirigée vers l’entrée standard de la deuxième
commande (cmd2).
◮ L’entrée standard de la commande cmd1 et la sortie standard de la commande cmd2 ne sont pas
modifiées.
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 198 / 235
Flux de données Tubes
Exemple #1
◮ Si de très nombreux fichiers sont contenus dans un répertoire, la commande ls peut produire un
affichage qui ne tient pas dans l’écran, rendant impossible le parcours de la liste des fichiers (seuls
les derniers sont visibles).
login@host:˜$ ls | more
aldebaran.jpg Images/ . . . . . . . . . . . . . . . . . . . . . . . Répertoire courant
alphacentauri.gif
aldebaran.jpg . . . . . . . . . . . . . . . . . . . . . . . Page 1
betelgeuse.jpg
etacentauri.jpg alphacentauri.gif . . . . . . . . . . . . . . . . . . . . . Page 1
soleil.jpg syrius.gif betelgeuse.jpg . . . . . . . . . . . . . . . . . . . . . . . Page 1
Affichage d’une première page puis etacentauri.jpg . . . . . . . . . . . . . . . . . . . . . . . Page 1
Presser la touche Enter pour la page suivante soleil.jpg . . . . . . . . . . . . . . . . . . . . . . . . . Page 1&2
soleil.jpg syrius.gif syrius.gif . . . . . . . . . . . . . . . . . . . . . . . . . Page 1&2
vega.png vega.png . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 2
login@host:˜$
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique S1 2016 200 / 235
Flux de données Tubes
Exemple #2 :
◮ Si de très nombreux fichiers sont contenus dans un répertoire, la commande ls peut produire un
affichage qui ne tient pas dans l’écran, rendant compliqué l’identification de certain type de fichier
(fichiers au format gif par exemple).
Syntaxe pour wc
wc fichier <fichier_2 ...>
Description
◮ Affiche des statistiques sur le nombre de lignes, de mots et de caractères (comptés en nombre
d’octets) contenus dans le fichier dont le chemin est donné en paramètre.
Exemple d’utilisation:
Soit le fichier suivant :
Commande #1 :
tellur.tsv
login@host:˜$ wc tellur.tsv
1 Mercure Venus 2 6 29 tellur.tsv
2 Terre Mars login@host:˜$
Exercices
Tubes
Q133 Étudiez et comparez les commandes suivantes. Pour vous aider vous pouvez évaluer les commandes
pas à pas en vous arrêtant avant chaque tube.
login@host:˜$ cat /proc/cpuinfo | wc -l
login@host:˜$ head /proc/cpuinfo | wc -l
login@host:˜$ cat /proc/cpuinfo | grep ’cpu’ | wc
-l
login@host:˜$ head /proc/cpuinfo | grep ’cpu’ | wc
-l
Q134 Proposez une commande pour afficher le nombre de fichiers dans votre répertoire home
Q135 Proposez une commande pour afficher le nombre des processus
Q136 Proposez une commande pour afficher les premières 5 lignes des dernières 10 lignes du fichier /proc/cpuinfo
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Rappel
Les interpréteurs
◮ L’interpréteur parcourt le texte tapé par l’utilisateur, identifie les commandes et les paramètres, et si
la syntaxe est correcte, lance un processus.
◮ Plusieurs interpréteurs existent : csh, tcsh, bash.
◮ Bash est l’interpréteur du projet GNU. Il est le plus utilisé sous linux. C’est Bash l’interpréteur qu’on
utilise dans ce cours.
◮ L’interpréteur peut lire les commandes à partir d’un fichier, le script shell.
Introduction
Exemple
#!/bin/bash
echo Liste des Fichiers:
#affiche la liste
ls
Introduction
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
Les Variables
Exemple
MSG=Bonjour
echo $MSG
echo $PATH
Les Variables
Q142 Définissez un script nommé exo_4_script.sh à partir du script exo_2_script.sh, et
modifiez-le pour que le nom du répertoire Test/ soit une variable dans le script.
Les Paramètres
Les paramètres
◮ Il s’agit d’unes variables spéciales qui contiennent les arguments fournis au script par la ligne de
commandes
◮ $0 : nom du script
◮ $1 $2 ... : paramètres en position 1, 2, ...
◮ $# : nombre de paramètres positionnels
◮ $* : ensemble des paramètres
Exemple
Soit arg.sh le script suivant :
#!/bin/bash
echo "Nombre d’argument "$#
echo "Les arguments sont "$*
echo "Le second argument est "$2
login@host:˜$ ./arg.sh A B C
Nombre d’argument 3
Les arguments sont A B C
Le second argument est B
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
10 Structures deDubacq
G. Santini, J.-C. contrôle
(IUTV) en BASH Introduction à l’informatique S1 2016 216 / 235
Structures de contrôle en BASH Les calculs arithmétiques
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
10 Structures deDubacq
G. Santini, J.-C. contrôle
(IUTV) en BASH Introduction à l’informatique S1 2016 218 / 235
Structures de contrôle en BASH Les calculs arithmétiques
Syntaxe
$(( expression_arithmétique ))
Exemples
login@host:˜$ total=$(( 5 + 3 ))
login@host:˜$ echo $total
8
login@host:˜$ echo $(( 5 - 3 ))
2
login@host:˜$ echo $(( 5 * 3 ))
15
login@host:˜$ echo $(( 5 / 3 ))
1
Exercices
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
10 Structures deDubacq
G. Santini, J.-C. contrôle
(IUTV) en BASH Introduction à l’informatique S1 2016 221 / 235
Structures de contrôle en BASH La boucle for
for
Syntaxe #1
for Boucle itérative
for (( init ; test ; incr )) ; do
◮ permet de répéter l’évaluation d’une expr_1
ou plusieurs instructions, expr_2
◮ à chaque tour de boucle une variable ...
appelée itérateur change de valeur, done
◮ la sortie de boucle s’effectue lorsque
l’itérateur atteint une certaine valeurs. Ici, la condition d’arrêt est sur la valeur numérique
de l’itérateur.
Exemple #1
test_for_loop_1.bash
#!/bin/bash
login@host:˜$
echo "test #1" ./test_for_loop_1.bash
for (( i = 0 ; i < 3 ; i++ test #1
));do $i = 0
echo ’$i = ’$i $i = 1
done $i = 2
for
Syntaxe #2
for Boucle itérative
for var in val_1 val_2 . . . ; do
◮ permet de répéter l’évaluation d’une expr_1
instruction, expr_2
◮ à chaque tour de boucle une variable ...
appelée itérateur change de valeur, done
◮ la sortie de boucle s’effectue lorsque
l’itérateur a parcouru toute la liste. Ici, la boucle s’arrête lorsque toute la liste des
valeurs a été parcourue.
Exemple #2
test_for_loop_2.bash
#!/bin/bash login@host:˜$
./test_for_loop_2.bash
echo "test #2" test #2
for i in hello la terre;do $i = hello
echo ’$i = ’$i $i = la
done $i = terre
Exercices
La boucle for
Q147 Dans le cours nous avons vu plusieurs syntaxes possibles pour la boucle for. Soit le script suivant :
#!/bin/bash
# affiche les 10 premiers entiers pairs
for int in 2 4 6 8 10 12 14 16 18 20
do
echo $int
done
Q148 Modifiez ce script pour remplacer la liste de valeurs par une expression arithmétique
Plan
1 Généralités
2 Le système d’exploitation
3 Le système Linux
8 Flux de données
10 Structures deDubacq
G. Santini, J.-C. contrôle
(IUTV) en BASH Introduction à l’informatique S1 2016 225 / 235
Structures de contrôle en BASH Les branchements conditionnels if
if
Branchements conditionnels
◮ Le if permet de mettre en place des alternatives.
◮ Un test (dont le résultat est Vrai ou Faux) permet de conditionner les expressions qui seront
évaluées.
Syntaxe #1
Comportement
if test ◮ Ici, les expressions ne sont évaluées
then que si le test renvoie la valeur Vrai.
expr_1
expr_2
◮ Aucune des expressions ne sont
... évaluées si le test renvoie la valeur
fi Faux.
if
Syntaxe #2
Comportement
if test ◮ Si le test renvoie la valeur Vrai
then l’expression expr_1 est évaluée, et
expr_1
else
◮ sinon le test renvoie la valeur Faux
expr_2 c’est l’expression expr_2 qui est
fi évaluée.
Syntaxe #3
if test_1 Comportement
then ◮ Si test_1 renvoie la valeur Vrai
expr_1 l’expression expr_1 est évaluée,
elif test_2 ◮ si test_2 renvoie la valeur Vrai
then l’expression expr_2 est évaluée,
expr_2
◮ si test_3 renvoie la valeur Vrai
elif test_3
l’expression expr_3 est évaluée, et
then
expr_3 ◮ si aucun des tests ne renvoie la
else valeur Vrai alors c’est l’expression
G. Santini, J.-C. Dubacq (IUTV) Introduction à l’informatique expr_4 qui est évaluée. S1 2016 227 / 235
Structures de contrôle en BASH Les branchements conditionnels if
Les tests
Tests de l’arborescence
Syntaxe Valeur
Exercices
Tests de l’arborescence
Q149 Créez un script ico_existe.sh, qui teste si un fichier ico est présent dans le répertoire
courant. Si le fichier existe, le script affiche le message d’avertissement suivant ($PWD sera remplacé
lors de l’exécution par la valeur de la variable d’environnement) :
Attention: le fichier $PWD/ico existe
Q150 Modifiez le script pour qu’il supprime le fichier ico si celui-ci existe et affiche un message
d’avertissement indiquant que le fichier est supprimé. Les affichages seront alors les suivants :
Attention: le fichier $PWD/ico existe
Le Fichier $PWD/ico est supprime
Q151 Modifiez ce script pour qu’il teste en plus si le répertoire courant contient un répertoire nommé ico/.
Si il ne contient pas de répertoire ico/, le script crée ce répertoire.
Les tests
Syntaxe Valeur
Les tests
Syntaxe Valeur
Les tests
Opérateurs booléens
Syntaxe Valeur
Tables de vérité
Exercices
Substitution de commande
Exemple
#!/bin/bash
TITLE="En ce jour du $(date -I)"
MOTS=$(grep cool /usr/share/dict/words)
for i in $MOTS; do
echo "$TITLE, $i est un mot cool"
done
Exercices
Archiveur
Faites un script qui a les actions suivantes si on lui donne en argument un répertoire (par exemple
~/M1101/TD6) :
Q154 S’arrête si la cible n’est pas un répertoire
Q155 Définit une variable BACKUPDIR qui vaut le chemin du répertoire du dessus suivi du mot
sauvegarde (ici ~/M1101/sauvegarde) en utilisant la commande dirname
Q156 Crée le répertoire s’il n’existe pas
Q157 Définir une variable faite avec la date du jour et le nom du répertoire (par exemple 2014-10-31-TD6)
en utilisante les commandes basename et date.
Q158 Crée une archive compressée du répertoire (ici en exécutant
tar czf ~/M1101/sauvegarde/2014-10-31-TD6.tgz ~/M1101/TD6)
On pourra affiner en s’arrêtant si une archive existe déjà sous ce nom avant de la créer (ou proposer de
l’effacer en utilisant la commande read x pour lire une variable depuis le terminal).