Système de fichiers

Sources : https://fr.wikipedia.org/wiki/Fichier_informatique

  http://wawadeb.crdp.ac-caen.fr/iso/tmp/ressources/linux/www.ac-creteil.fr/reseaux/systemes/linux/systemes-fichiers.html

Les Fichiers

Un fichier est une collection de données numériques destinée à être stockée sur une mémoire de masse (disque dur, clef USB, mémoire interne de smartphone, …).

Techniquement un fichier est constitué d’une séquence d’octets. L’essence du fichier sont les informations qu’il contient, mais il comporte également un certain nombre de métadonnées fournissant des informations très diverses sur le fichier et son contenu :

  • la taille du fichier,
  • son auteur,
  • les utilisateurs autorisés à le manipuler,
  • la date de la dernière modification,

Les fichiers permettent au système d’exploitation et aux applications (traitement de texte, lecteur multimédia, navigateurs web, …) d’avoir accès aux informations stockées sur mémoire de masse.

Un fichier possède un nom de fichier qui sert à désigner son contenu. Ce nom comprend souvent un préfixe et un suffixe appelé extension, qui renseigne sur la nature des informations qu’il contient et la convention selon laquelle ces informations (ainsi que les métadonnées) sont numérisées et séquencées dans le fichier. Selon la nature et le format du contenu, les fichiers peuvent être qualifiés d’exécutables, de compressés, de textes, de documents, d’images, d’audio ou de vidéos.

exemples de noms de fichier :

  • readme.txt  : fichier texte
  • cmd.exe  : fichier exécutable (application)
  • projet.zip  : archive (méthode zip) compressée
  • simpsons.avi  : fichier vidéo
  • led_zeppelin.mp3  : fichier audio

 

Les systèmes d’exploitation graphiques (MS Windows, Linux Ubuntu, Mac OSX, …) disposent de logiciel d’exploration des fichiers, et associent à chaque type de fichier un pictogramme appelé icône.

 

 

Les Systèmes de fichiers

Les mémoires de masse contiennent des centaines de milliers de fichiers.

En vue de faciliter leur organisation, les fichiers sont gérés par des des systèmes de fichiers (il en existe plusieurs dizaines).

La plupart d’entre eux permet de placer les fichiers dans des emplacements appelés répertoire (directory) ou dossier (folder) eux-mêmes organisés selon le même principe (pouvant contenir des sous-répertoires et des fichiers) de manière à former une hiérarchie arborescente.

Un système de fichiers offre donc une façon d’organiser et de stocker une arborescence sur un support. Chaque OS propriétaire a développé sa propre organisation.

L’arborescence n’est pas physique, mais logique, c’est à dire qu’elle ne dépend pas de la nature de la mémoire de masse : le système de fichiers permet justement de faire le lien entre la structure arborescente (coté utilisateur) et l’emplacement physique des données (qui dépend fortement du média).

Linux

Sous Linux, tout est fichier. Ils sont organisés suivant une unique arborescence (dont la racine est nommée /  et dont l’administrateur est root ) : l’arborescence  peut donc être construite à partir de diverses partitions et différents médias (HDD, clef USB, DVD, …).

Par exemple, après l’insertion d’une clef USB, un nouveau dossier apparaitra dans le dossier /media/eleve/  .

Linux possède ses systèmes appelés ext2 , ext3 et ext4 (selon leur génération), mais peut en gérer d’autres.

 

Windows

Windows utilise principalement les systèmes de fichiers FAT32 et NTFS

Dans le monde Windows, contrairement  aux systèmes Linux, les partitions et périphériques de stockage possèdent leur propre arborescence, dont la racine porte un nom d’une seule lettre : A:  C:  D:

L’arborescence n’est pas aussi stricte que sous Linux, mais on retrouve toutefois quelques dossiers incontournables :


Manipulation des fichiers et dossiers

Les systèmes d’exploitation possédant une interface graphique sont fournis avec des logiciels d’exploration évolués et intuitifs (Explorateur de fichiers sous Windows, Gestionnaire de fichiers sous Ubuntu, …). Ils permettent de :

  • naviguer aisément dans l’arborescence,
  • déplacer/copier/coller des fichiers et des dossier, y compris par glisser/déposer,
  • créer de nouveaux documents,
  • lancer des applications et ouvrir des documents,
  • obtenir des informations avancées sur les fichiers et dossier (métadonnées),
  • réaliser des recherches de fichiers et dossiers,

 

Windows

https://openclassrooms.com/courses/debutez-en-informatique-avec-windows-7/la-navigation-dans-windows-1

Activités :

  • Donner le nombre de fichiers contenus dans le dossier C:/Windows .
  • Donner le chemin absolu du dossier d’installation de Python.

Linux

Le système de fichiers linux contient :

  • des Dossiers ou Répertoires (directory) : nom_du_dossier/
  • des Fichiers (file) : nom_du_fichier.ext  (où ext  est l’extension du fichier (txt, jpg, doc, etc…))
  • des Liens (link) : désigne un raccourci vers un fichier ou un dossier.

Le Terminal Linux

Ouvrir un Terminal (ou une console) :

  • Terminal « graphique » : sous Accessoires

ou bien CTRL+ALT+T

Remarque : dans un terminal linux, la saisie du mot de passe ne provoque pas l’affichage de caractères •••• comme dans les fenêtres graphiques.
Une invite de login et password apparaît à l’écran :
ici eleve puis le mot de mot de passe associé.
  • Terminal « plein écran » :

CTRL+ALT+F1 à F6 (on peut ouvrir jusqu’à 6 terminaux)

CTRL+ALT+F7 pour revenir

En ouvrant le Terminal apparaît un message de bienvenue, puis le prompt (ou l’invite) sous la forme :

Exemple pour l’utilisateur eleve  : eleve@p01s521b:~$

Le   ~  (tilde) est un raccourci pour désigner le répertoire « utilisateur ».

~  ⇔ /home/eleve

Le répertoire courant correspond au répertoire où se situe actuellement le Terminal : son chemin est visible dans le prompt.

  • La commande pwd  montre le nom absolu du répertoire courant
  • La commande cd  (change directory) permet de changer de répertoire courant

syntaxe : cd chemin_du_dossier

Les chemins (path)

Un chemin est une chaîne de caractères permettant de désigner un Dossier ou un Fichier.

Un chemin peut être absolu ou relatif.

Absolu ( = relatif au dossier racine ) Relatif (au répertoire courant)
/home/eleve/exos/info/ exos/info/
Attention : cd /exos/info/  renvoie un message d’erreur puisque le dossier exos/  n’est pas directement sous le répertoire racine /
Exemple : si on est dans le répertoire eleve/  et qu’on veuille aller dans le répertoire info/  situé deux niveaux plus loin, on peut utiliser :

  • cd exos/info/                                              (chemin relatif)
  • cd /home/eleve/exos/info/                 (chemin absolu)

Si le chemin que l’on veut désigner se situe en dessous (hiérarchiquement) du dossier courant, on peut utiliser un chemin relatif.

On peut accéder au répertoire utilisateur par différents noms de chemin :

  • cd  suivie d’un espace
  • cd ~
  • cd $HOME  ( $HOME  est une variable d’environnement qui contient la chaîne de caractères « /home/eleve/ »)
  • cd /home/eleve/
Le /  à la fin des noms de dossier est facultatif, mais il permet de les distinguer des noms de fichier lors d’un affichage sans couleurs.

 

Les principales commandes

  • La commande man  permet d’afficher la fonction et la syntaxe (options, arguments, …) d’une commande

syntaxe : man nom_commande

  • La commande ls  permet de visualiser le contenu d’un répertoire

syntaxe : ls [-options]

Activité :

  • Depuis le répertoire utilisateur, afficher le contenu du dossier /usr/bin/ .
  • Consulter les options de la commande ls , puis trouver les options à utiliser pour obtenir un affichage sans couleurs et avec un /  derrière les noms de répertoire.
  • La commande mkdir  (make directory) permet de créer un nouveau répertoire

syntaxe : mkdir nom_dossier/

  • La commande rmdir  (remove directory) permet de supprimer un répertoire

syntaxe : rmdir nom_dossier/

Activité :

  • Créer un répertoire rep1/  dans votre répertoire de base et vérifier avec la commande ls  qu’il a bien été créé.
  • Supprimer le répertoire rep1/  et en créer un nouveau appelé rep2/  dans le répertoire de base.
  • Créer un sous-répertoire TD1/  dans le répertoire rep2/  qui vient d’être créé, puis se déplacer dans ce répertoire. Revenir ensuite dans le répertoire rep2/ .
  • Créer un répertoire nommé .rep3/  et taper la commande ls . Que constate-t-on ?
  • Tester la commande ls –a. Conclure quant à la fonction du point devant un nom.

La liste des fichiers commence maintenant par ./  et ../  ;

  • En utilisant cd ..  , essayer de comprendre à quoi correspond ce répertoire.

 

Rappel de commandes

Lorsque l’on exécute régulièrement les mêmes commandes (typiquement, lorsqu’on programme, on passe son temps à compiler son programme et à l’exécuter) on n’a pas envie de retaper chaque commande en entier.

Les commandes précédentes sont accessibles en tapant une ou plusieurs fois sur les flèches du haut  et du bas :

  • la flèche du haut permet de rappeler des commandes de plus en plus anciennes,
  • la flèche du bas fait l’inverse.

La touche tabulation permet de compléter automatiquement un nom de commande ou de fichier (on y fera référence par la suite par [TAB]). Pour cela vous tapez la première lettre d’une commande (ou les 2 ou 3 premières) puis appuyez sur la touche [TAB]. Le système complétera le nom de commande s’il est unique ou proposera une liste de choix possibles : il faut appuyer à nouveau sur [TAB] pour voir les différents choix.

Activité :

  • Tester l’autocomplétion en trouvant toutes les commandes commençant par mk .

Manipulation des fichiers

  • La commande touch  permet de créer un fichier vide.

syntaxe : touch chemin_du_fichier

  • La commande rm  (remove) permet de supprimer un fichier ou un répertoire

syntaxe : rmdir nom_dossier/

Activité :

  • Créer un fichier nommé file.txt  dans le répertoire rep2/ .
  • Essayer de supprimer le répertoire rep2/  ; réessayer avec la syntaxe rm –rf nom_dossier. Conclure.
  • Se placer dans le dossier racine / .
  • Créer dans le répertoire eleve/  un répertoire exolinux/  puis info/  dans exolinux/  et enfin fich/  dans info/     (cf. dessin de l’arborescence ci-contre).
  • Supprimer le répertoire exolinux/ , puis recréer les répertoires qui viennent d’être supprimés avec une seule commande : en utilisant cette fois la syntaxe : mkdir –p  (aller voir avec man  ce que fait cette syntaxe).
  • Créer un répertoire programlinux/  dans eleve/  (en vous plaçant où vous voulez).

 

  • La commande mv  permet de déplacer des fichiers ou des dossiers.

syntaxe : mv chemin_dossier_source chemin_dossier_destination

dossier_source , dossier_destination  … désignent des chemins, relatifs ou absolus.
  • La commande mv  permet aussi de renommer un fichier ou un dossier.

syntaxe :  mv dossier_source dossier_destination

mv fichier_source fichier_destination

  • La commande mv  permet aussi déplacer un fichier dans un autre répertoire tout en le renommant :

syntaxe : mv chemin_vers_fichier_source chemin_vers_fichier_destination

Activité :

  • Se placer dans le répertoire info/  ; déplacer le répertoire programlinux/  dans exolinux/
  • Renommer le répertoire programlinux/  en program/. Créer un fichier texte ( .txt ) dans program/  puis le renommer.
  • Déplacer le fichier crée dans program/  dans le répertoire exolinux/  en le renommant et en changeant son extension ( .pdf )

 

  • La commande cp  permet de copier un fichier ou un dossier dans un autre répertoire.

syntaxe :    cp fichier chemin_dossier_destination

cp -r chemin_dossier chemin_dossier_destination

Activité :

  • Créer dans eleve/  un nouveau dossier new/  puis copier l’intégralité du dossier exolinux/  dans new/ tout en le renommant en linuxexo/ .
  • De même, copier le fichier pdf de exolinux/  dans new/  en le renommant (nom de votre choix).

Droits des fichiers et dossiers

Chaque fichier et chaque dossier possède une liste de droits : c’est une liste qui indique qui a le droit de lire le fichier (read), de le modifier (write) et de l’exécuter (execute) ; on y a accès à l’aide de la commande ls -l

La première ligne commence par total  qui indique le nombre de blocs de 512 octets occupés par des fichiers dans ce répertoire (0 s’il n’y a que des dossiers).

On obtient ensuite la liste des éléments que contient le répertoire. Chaque ligne mentionne, dans l’ordre :

  • La commande chmod  permet de changer les droits des fichiers ou dossiers

syntaxe :    chmod -r fichier_ou_dossier  : retire ( - ) l’autorisation de lecture au propriétaire du fichier

chmod -w fichier  : retire ( - ) le droit d’écriture ( w ) au propriétaire du fichier (et de facto à tout le monde)

chmod o+r-w fichier  : donne ( + ) le droit de lire ( r ) et retire ( - ) le droit d’écriture ( w ) aux autres ( o  = other)

chmod a+rw fichier  : donne ( + ) à tout le monde ( a  = all) les droits de lecture ( r ) et d’écriture ( w )

chmod -R a+rx dossier  : donne ( + ) à tout le monde ( a ) les droits de lecture ( r ) et d’ouverture ( x ) de dossier et de tous ses sous dossiers (option -R )

etc…

  • La commande ln  permet de créer un lien symbolique

syntaxe :    se placer dans le répertoire ou l’on veut le lien puis

ln –s chemin_dossier_ou_fichier

 

Activité :

  • Utiliser la commande chmod  pour changer les droits des fichiers ou dossiers dans exolinux/
  • Créer un lien symbolique dans eleve/  vers le dossier program/  et vérifier que le lien est bien établi avec ls –l .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code