1. Introduction

Rappel des commandes rencontrées et de leur usage basique :

commande rôle usage
man lire les pages de manuel man nomdecommande
apropos trouver des pages de manuel apropos mot-clef
who qui est connecté who [-H]
yppasswd changer de mot de passe yppasswd
ls afficher le contenu d’un dossier ls [chemin]
cd se déplacer dans l’arborescence cd [chemin]
mkdir créer un dossier mkdir [-p] nomdossier
pwd afficher le dossier courant pwd
rmdir supprimer un dossier rmdir nomdossier
rm supprimer un fichier rm [-r] fichier
mv déplacer ou renommer mv source... dest
touch créer un fichier (ou changer son timestamp) touch fichier
cat afficher le contenu d’un fichier cat [fichier]
chmod modifier les droits chmod MODE fichier

2. Inodes et liens

Les fichiers et dossiers sont identifiés sur le disque dur par une adresse sous forme d’un numéro. Ce nombre est nommé inoeud (inode en anglais). Pour connaître cet inoeud, on peut utiliser l’option -i de la commande ls.

Utilisons la commande suivante : ls -il, exemple de résultat

301241 -rw-rw-rw- 1 hainry profs 36 sep 28 17:07 autre
Inode    droits   n proprio grp taille  date     nom de fichier

Où n représente le nombre de liens pointant vers le fichier. En effet, un fichier est écrit sur le disque dur au lieu pointé par l’inoeud et plusieurs noms de fichier peuvent le désigner. Ces différents noms sont des liens vers le fichier. S’il y a plusieurs liens vers un contenu, l’inoeud sera le même pour tous ces fichiers qui sont en nombre n. Notons que quand nous faisons ce que nous appelions précédemment supprimer un fichier, nous ne supprimons en réalité qu’un lien vers ce fichier, tant que le nombre de liens est supérieur à 1, le contenu est toujours acessible.

La commande ln permet de créer des liens. Lire le manuel de la commande ln. Il est possible de créer des liens physiques (ou liens durs : hard links en anglais) qui sont les liens qui nous intéressent ici mais aussi des liens symboliques (symlinks).

2.1. Introduction aux liens symboliques et physiques

  1. Créer un fichier a. Écrire quelque chose dedans. Quel est son inode ? Combien de liens pointent vers son contenu ?

  2. Créer un fichier b lien vers le fichier a. Quel est son inode ? Combien de liens pointent vers son contenu ?

  3. Créer un lien symbolique c vers a.

  4. Aller dans un autre dossier (par exemple ~/Desktop). Faire un lien symbolique vers a en utilisant un chemin relatif.

  5. Supprimer a. Quel est le contenu de b ? Celui de c .?

    Les liens physiques ne peuvent pas être créés pour des dossiers, uniquement pour des fichiers. De plus, on ne peut créer de lien physique pour un fichier que sur la partition où ce fichier est. Notons enfin que certains systèmes de fichiers ne permettent pas la création de liens physiques.

    Les liens symboliques par contre peuvent aller d’une partition vers une autre, ils peuvent également pointer vers un dossier.

2.2. Liens symboliques et liens physiques

Le tableau suivant présente quelques titres de films en français, anglais et en version originale, ainsi que la langue de la version originale.

Titre en vo Titre en vf Titre en anglais Langue originale Réalisateur
Lola Rennt Cours Lola, cours Run Lola run allemand Tom Tykwer
Le fabuleux destin d’Amélie Poulain Le fabuleux destin d’Amélie Poulain Amelie from Montmartre français Jean-Pierre Jeunet
The hangover Very bad trip The hangover anglais Todd Philips
Il buono, il brutto, il cattivo Le bon, la brute et le truand The good, the bad and the ugly italien Sergio Leone
Shichinin no samurai Les sept samouraïs The seven samurai japonais Akira Kurosawa
North by Northwest La mort aux trousses North by Northwest anglais Alfred Hitchcock
M M le maudit M allemand Fritz Lang
Wo hu cang long Tigre et dragon Crouching tiger, hidden dragon chinois Ang Lee
  1. Créer, dans un dossier films, pour chaque film une fiche (un fichier texte) portant pour nom son titre original La fiche de chaque film pourra être de la forme suivante :

    Lola Rennt (Cours Lola cours)
    film allemand de Tom Tykwer

    La création des fiches pourra être réalisée à l’aide d’un éditeur de texte (nano, gedit ou leafpad) ou bien avec echo par exemple avec une commande similaire à

    echo "Lola rennt (Cours Lola, cours)
    film allemand de Tom Tykwer" > Lola\ rennt

    Cette commande écrit le texte entre guillemets dans le fichier Lola rennt. Le \ indique au shell que l’espace fait partie du nom de fichier et n’est pas un séparateur d’arguments. Pour plus d’informations sur ce que signifie le >, attendre le TP sur les entrées sorties et redirections

  2. À l’aide de la commande ln, créer des liens pour que les différents noms de chaque film soient présents dans le dossier films. Vous devez obtenir une arborescence contenant :

    .
    |-- Amelie from Montmartre
    |-- Cours Lola cours
    |-- Le fabuleux destin d'Amélie Poulain
    |-- Lola rennt
    `-- Run Lola Run

    Avec “Run Lola Run”, “Lola rennt” et “Cours Lola cours” qui sont des liens physiques les uns vers les autres.

  3. Quels sont les inodes des différents fichiers ?

  4. Combien y a-t-il de liens pour le fichier “Lola rennt” ? Pour les autres fichiers ?

  5. Comparer les contenus de Lola rennt, de Cours Lola cours et de Run Lola run à l’aide de cat.

  6. Créer des dossiers original, francais, anglais dans lesquels vous déplacerez les fichiers dont le nom est dans la langue en question. Tous les films sont-ils représentés dans tous les dossiers ? L’arborescence à obtenir ressemblera à :

    .
    |-- anglais
    |   |-- ....
    |   `-- Run Lola run
    |-- francais
    |   |-- ....
    |   `-- Cours Lola cours
    `-- original
        |-- ....
        `-- Lola rennt
  7. Comparer les contenus de Lola rennt, de Cours Lola cours et de Run Lola run à l’aide de cat.

  8. Combien y a-t-il de liens pour le fichier Lola rennt ? Pour les autres fichiers ?

  9. Modifier Very bad trip pour qu’il ne soit plus un film anglais mais américain. Quel est le contenu de The hangover ?

  10. Ajouter à tous les films le siècle dans lequel ils ont été tournés (vingtième pour tous sauf the hangover) à l’aide d’une commande de la forme

    echo "XXe siècle" >> original/Lola\ rennt

    Combien de commandes sont nécessaires ? anglais/M a-t-il la même date que original/M ?

  11. Dans le dossier original, créer un lien vers le dossier français en utilisant un chemin relatif. Quelle sorte de lien choisir ?

  12. Supprimer le dossier francais. Les contenus des fichiers sont-ils toujours accessibles ? Peut-on connaître le titres en vf de tous les films ?

  13. Créer un lien symbolique Amelie dans ~ qui pointe vers films/original/Le fabuleux destin d'Amélie Poulain.

  14. Créer un dossier vo dans ~. Y ajouter des liens symboliques qui pointent vers les fichiers du dossier original.

  15. Comparer les contenus de vo/Le fabuleux destin d'Amélie Poulain, Amelie, films/original/Le fabuleux destin d'Amélie Poulain.

  16. Modifier Amelie de façon à ce qu’il pointe vers vo/Le fabuleux destin d'Amélie Poulain.

  17. Quels sont les inodes des fichiers et dossiers créés ?

Épilogue

Vu au cours de ce TP :

  • les notions d’inodes, de liens symboliques et durs.
  • la commandes ln.

À venir : les redirections, la gestion des processus, les scripts.