Systèmes de fichier
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 est l’ensemble des données 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 textecmd.exe
: fichier exécutable (application)projet.zip
: archive (méthode zip) compresséesimpsons.avi
: fichier vidéoled_zeppelin.mp3
: fichier audio- …
Les systèmes d’exploitation graphiques (MS Windows, Linux Ubuntu, Mac OS, …) 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
Pour cette partie, l’utilisateur de l’ordinateur est
eleve
.
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
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… en sont d’autres)) - 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 : par exemple 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
Terminal en ligne :
En ouvrant le Terminal, apparaît un message de bienvenue, puis le prompt (ou l’invite) sous la forme :
utilisateur@nom_de_l_ordinateur:répertoire_courant$
Exemples :
- pour l’utilisateur
eleve
:eleve@p01s521b:~$
- ou sur un Raspberry, utilisateur
pi
:pi@raspberry:~$
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/ |
Si le chemin que l’on veut désigner se situe en dessous (hiérarchiquement) du dossier courant, on peut utiliser un chemin relatif.
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)
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]
- 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/
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.
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/
- 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
- 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
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