Vous êtes sur la page 1sur 6

Institut Supérieur des Etudes Technologiques de Jendouba

Département Technologies de l’Informatique


2ème année Licence Appliquée
Atelier Système 2 (Linux)
Amir Souissi © 2017
TP N° 3
La gestion des fichiers
Objectifs

• Comprendre l’organisation du système de fichier et savoir les notions de chemin relatif et chemin absolu,
• Maitriser les commandes de manipulation et de gestion de contenu des fichiers et des répertoires,
• Faire la différence entre les différents types de fichiers
• Présenter et manipuler les liens symboliques et les liens physiques
• Compression et décompression des fichiers.

1) Organisation du Système de Fichier


 La racine / du système de fichier contient tous les répertoires et sous répertoires du système. La racine est
représentée par le signet « système de fichiers » sous Ubuntu.
 Le dossier /home est un sous dossier de la racine. Il contient les dossiers personnels de chaque utilisateur du
système. Le nom du dossier personnel porte le même nom que celui de l’utilisateur déclaré. Le dossier d’un
utilisateur est représenté par le signet « dossier personnel » sous Ubuntu.
 Les autres sous dossiers ont des significations particulières pour un système Linux comme Ubuntu. C’est une
organisation qui varie selon la distribution Linux.
 Pour se déplacer dans l’arborescence du système, on utilise la commande cd en ligne de commande.
 cd /chemin/repertoire permet de se déplacer dans le répertoire désigné et de le transformer en répertoire
actif.
 cd ~ permet de se placer dans le répertoire personnel. Ce dernier devient le répertoire actif.
 cd ~ est équivalent à ……………………………………………………………

 Quel est le rôle de la commande pwd ?


 Que fait la commande cd .. ?
 Naviguer dans l’arborescence du système puis rappeler le rôle des répertoires : /bin, /boot, /dev et
/etc
 Le répertoire /etc contient les fichiers de configurations du système et des outils installés pour tous les
utilisateurs du système.
 Comment trouver les fichiers de configurations propres à un seul utilisateur ?

 L’ajout d’un périphérique (cdrom, clé USB, …) au système Linux créera un nouveau répertoire inséré quelque
part dans le système de fichier : On appelle le point d’insertion point de montage. L’emplacement d’un point
de montage dans Linux dépend des distributions Linux.
 Monter un nouveau périphérique et déterminer le répertoire de son point de montage dans le
système de fichier ?

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 1


Chemin relatif et chemin absolu

 Il existe deux manières de référencer un fichier (ou un répertoire) sous Linux :


Chemin absolu : description du chemin en partant de la racine / (root) quel que soit le répertoire courant.
Chemin relatif : description du chemin depuis le répertoire courant (actif). Commence par un nom de fichier et
non pas par un /.
 Quel est l’avantage de l’utilisation des références relatives par rapport aux références absolues ?

Exercice A : (répertoire actif, chemins relatifs et chemins absolus)


1) A partir des prompts suivant, déterminer le chemin du dossier actif :
amir@ubuntu:/etc/apt$
amir@ubuntu:~/dossier$
amir@ubuntu:/$
2) Soit la ligne de commande suivante :
amir@ubuntu:~/dossier$ mv /home/amir/doc.txt /home/amir/dossier/
a. Déduire ce que fait la commande mv ?
b. A-t-on utilisé des chemins relatifs ou des chemins absolus ?
c. Ecrire la commande d’une autre manière
3) Utiliser des chemins relatifs pour déplacer le fichier doc.txt se trouvant dans ~/dossier vers le répertoire
parent.
4) Remettre doc.txt à sa place toujours en utilisant des chemins relatifs.
 La commande ls permet d’afficher le contenu d’un répertoire.
ls . permet d’afficher le contenu du répertoire courant (ls  ls .)
ls ../ permet d’afficher le contenu du répertoire parent du répertoire courant.
ls ../.. permet d’afficher le contenu du répertoire parent du répertoire parent du répertoire courant.
 Expliquer puis tester la ligne de commande suivante :
amir@ubuntu:~dossier$ mv ./doc.txt ../../ali/dossier
 Comme sous MSDOS, par exemple, on pourra utiliser sous Linux un ensemble de caractères génériques :
* zéro ou plusieurs caractères indéfinis
? un caractère quelconque
[abc] un caractère parmi a,b,c
[a-z] un caractère pris dans l’intervalle de a à z
Exercice B : (commande ls et caractères génériques)

1) Lister tous les fichiers et répertoires contenus dans le répertoire de travail dont le nom commence
par « a ».
2) Lister ceux dont le nom possède au moins trois caractères, commence par « a » et possède un « c »
en troisième position.
3) Lister ceux qui possèdent un chiffre compris entre 1 et 5 (compris) en seconde position.
4) Lister tous les fichiers possédant exactement un nom de 4 caractères et commençant par « a ».
5) Lister tous les fichiers possédant exactement un nom de 4 caractères.
6) Lister les noms de fichiers constitués par exactement 4 chiffres.

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 2


2) Commandes de Manipulation des Fichiers et Répertoires

 Créer un fichier touch (fichier vide) ou éditeur quelconque.


 Renommer un fichier mv fichier1 fichier2
 Déplacer un (des) fichier(s) mv fichier1 [fichier2 ..] répertoire
 Copier un fichier cp fichier1 fichier2
cp fichier1 [fichier2 ..] répertoire
 Détruire un fichier rm fichier1 [fichier2 ..]
Attention : définitif !
Attention à rm –r !
Pour plus de précaution il serait souhaitable d’initialiser un alias rm = « rm -i »

 Visualiser un fichier less more cat (cat –n ; cat –b)


 Concaténer des fichiers cat
 Créer un répertoire mkdir répertoire
 Renommer un répertoire mv rep newrep
 Déplacer un répertoire mv rep newrep
 Détruire un répertoire rmdir dir

Visualiser le contenu d’un fichier

 Visualiser le fichier /var/log/syslog par la commande cat


 Visualiser le par la commande less (avec barre d’espacement)
 Noter la différence entre cat et less
 Utiliser tail pour voir la fin du fichier syslog. Quelle est le nombre de ligne affiché par défaut ?
 Utiliser tail avec l’option –n30 ou -30
 L’option –f de tail permet de voir en temps réel ce qui s’ajoute au fichier gardé ouvert. Comment reprendre
la main au shell après un tail –f ?
 La commande sœur de tail est head. Tester-la.

Visualiser la taille d’un fichier et d’un répertoire

 Utiliser la commande stat pour le fichier syslog. Quelles sont les informations du système de fichier
concernant ce fichier que vous trouvez importantes ?
 Utiliser la commande wc et déterminer son rôle.
 Utiliser du (disc usage) pour montrer la taille d’un répertoire en nombre de blocs (Exp :du /var/log)
 L’option –b de du donne la taille d’un répertoire en nombre d’octets.
 L’option –h de du donne la taille mieux lisible par un humain (en kilo, en méga ou giga octets)
 Que fait la commande du -h -s ou du -hs ?
 La commande df permet de connaitre la taille de tous les systèmes de fichiers des périphériques attachés au
système.

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 3


La première colonne désigne le nom du périphérique
Les 3 colonnes suivantes désignent respectivement la taille totale, la taille utilisée et la taille disponible.
La cinquième colonne désigne le pourcentage d’utilisation
La sixième colonne désigne le point de montage du périphérique
 Utiliser df avec les options -h et -H, puis déterminer la taille de la partition principale de votre système
exprimée en giga octet.
Exercice C :

1) Donner le chemin absolu de votre répertoire de travail.


2) Le répertoire /etc étant votre répertoire courant, donnez la commande permettant de transformer votre
répertoire de travail personnel en répertoire courant.
3) Créez l’arborescence suivante dans votre répertoire de travail :
Mon_répertoire

Essais Documentation Travail

En_cours Rendu

4) Créez un fichier non vide nommé « un.txt » dans le répertoire /Essais, à l’aide d’un éditeur de texte installé.
5) Créer un fichier nommé « deux.txt » dans le répertoire /Essais, à l’aide de la commande touch.
6) Éditez-le, à l’aide de emacs et placez-y quelques lignes de texte.
7) Déplacez le fichier « un.txt » dans /Documentation.
8) Dupliquez le fichier « un.txt » dans /En_cours. (il doit y avoir maintenant deux exemplaires de « un.txt »
dans l’arborescence).
9) Renommez « /En_cours/un.txt » en « /En_cours/trois.txt »
10) Quelle commande permettrait de déplacer un fichier tout en le renommant.
11) Renommez le répertoire /Essais en /Brouillons.
12) Détruire le répertoire /Travail et tout ce qu’il contient.
13) Concaténez les deux fichiers « un.txt » et « deux.txt » pour obtenir un fichier nommé « total.txt ». Que sont
devenus les deux fichiers de départ.
14) Donnez toutes les commandes permettant d’effectuer les actions décrites dans la section précédente
(manipulation de fichier et répertoires), qui n’ont pas été complétés.

3) Les Types de Fichiers


 Un fichier est une suite finie d’octets possédant un début et une fin.
 Chaque fichier est désigné, en interne, par un numéro unique (inode).
 Les types des fichiers sont :
 Fichiers normaux (fichiers texte et binaire)
 Répertoires
 Fichiers spéciaux (devices interfaces avec des périphériques)

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 4


 L’utilisation de la commande « ls -l » fait apparaître des informations importantes sur les fichiers.
Exemple : affichage suite à une commande ls
amir@ubuntu:~$ ls -l
total 4
-rwxrw-r-- 2 cesar users 1126 may 2 13:33 essai.txt
-rwxrw-r-- 1 cesar users 10255 june 5 15:02 scratch.bin
drwxr-xr-x 1 cesar users 1024 apr 28 05:35 mes_docs
lrwxrw-r-- 2 cesar users 1126 may 2 14:32 toto
 Que représente le premier caractère du premier champ ? quels sont les caractères possibles de
ce champ ?
 Que représente le deuxième champ ?
Remarque : la commande ls possède de nombreuses options d’affichage. Se reporter aux pages man et
info la concernant.
 Utiliser la commande file pour connaitre le type de fichier.

4) Liens Matériels et Liens Symboliques

 Rappeler la différence entre le lien symbolique et le lien physique ?

 Pour créer un lien matériel (ou physique) on utilise la commande ln :


Syntaxe : ln <nom fichier> <nom lien>

 Tester la commande ls –i et vérifier les numéros inode.


 Supprimer monfichier et vérifier si le fichier existe toujours sous le nom monlien.
 Modifier l’un et vérifier si l’autre est modifié ou non.

 Pour créer un lien symbolique on utilise la commande ln avec l’option -s :


Syntaxe : ln -s <nom fichier> <nom lien>

 Créer un lien symbolique sur dossier : ln -s ./dossier ./liendossier


 Les liens symboliques sont affichés en couleur cyan au résultat de la commande ls.
 Après un ls –l , le lien symbolique est affiché suivi d’une flèche vers le dossier pointé.

 Tester la commande ls –i et vérifier les inodes.


 Tester la commande ls –l et vérifier le nombre de liens qui pointent sur le fichier.
 Tester la suppression, la copie et le déplacement du lien symbolique. Commenter ?

 Lorsqu’on crée un lien symbolique, il faut utiliser des chemins complets.


 Tester la commande : ls ./liendossier
Qu’est-ce qu’on obtient ?
 On peut conclure que le shell interprète les chemins relatifs et il les transforme en chemins absolues avant de
créer le lien.

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 5


5) Compression et Décompression des Fichiers

 La commande tar (tape archive ou archive sur bande) est très utile en terminal.
 La commande tar permet d’archiver ou de désarchiver plusieurs fichiers dans un seul fichier. En utilisant tar
sur une suite de fichier, on obtient une archive de la même taille que la suite des fichiers.
 On peut utiliser zip ou gzip qui sont des algorithmes de compression disponible sur Linux dans la ligne de
commande.
 tar ne fait pas la compression par défaut. Mais elle peut intégrer la compression en ajoutant une option de
compression.

Options de tar :

-c créer une nouvelle archive


-z utiliser l’algorithme de compression gzip
-v pour avoir un résultat visuel juste après l’exécution de la commande
-f pour dire qu’on va utiliser un fichier (le nom de l’archive) dans lequel on va archiver les autres
fichiers.
Exemple : tar -czvf monarchive.tar.gz . (le point à la fin veut dire que l’archive sera créée à partir du
répertoire courant.)

 Par convention, on ajoute une extension .tar.gz ou tgz pour dire qu’on a créé une archive qui est ensuite
compressée en gz. C’est un format de compression traditionnel de Linux.
 Les archives compressées sont affichés en rouge lorsqu’on utilise la commande ls.
 Pour voir le contenu de l’archive on utilise l’option -t à la place de -c et on remet les autres options.

Exemple : tar -tzvf monarchive.tar.gz

 Pour extraire le contenu d’une archive (désarchivage et décompression), on utilise l’option –x, en conservant
l’arborescence des répertoires compressés.

Exemple : tar -xzvf monarchive.tar.gz

 Créer une archive nommée « mesdocs » pour votre répertoire personnel.


 Vérifier la taille de votre archive et comparer la avec la taille de votre répertoire personnel.
 Créer un nouveau dossier nommé « extraction » dans lequel on va décompresser le contenu de
l’archive « mesdocs ».

Remarque :

 Le tiret des options avec tar est optionnel : tar –czvf mesdocs.tar.gz  tar czvf mesdocs.tar.gz
 Expliquer la suite des deux commandes suivantes :
amir@ubuntu:~/Documents$ tar cvzf mesdocs.tar.gz *

amir@ubuntu:~/MyDoc$ tar xvzf ../Documents/mesdocs.tar.gz

Amir Souissi © 2017 TP N° 3 _ Atelier Système 2 (Linux) 6