Introduction à Linux

Dernière mise à jour : 26/05/2016

Système de fichiers

Structure du système de fichier

Comme la plupart des systèmes de fichiers, celui de Linux est structuré hiérarchiquement. Les fichiers sont regroupés dans des répertoires et les répertoires peuvent avoir des sous-répertoires.

Ici, la notion de lecteur n'existe pas. Tout est organisé à partir de la racine (notée /) et chaque système de fichiers est "monté" dans un répertoire. Ainsi, les différents disques seront accédés comme n'importe quel répertoire. Cette technique est un peu lourde à gérer pour les médias amovibles. En effet, avant de pouvoir accéder à une clé USB par exemple, il faut la "monter" et la "démonter" avant de pouvoir la retirer. Les distributions modernes possèdent des outils qui vous facilitent grandement la vie dans ce domaine.

Les noms de répertoires et de fichiers sont séparés par le caractère /.

Le système de fichiers de Linux ne reconnaissent pas les extensions. Ainsi, un point dans le nom d'un fichier sera interprété comme n'importe quel autre caractère. Une exception cependant si le nom du fichier commence par un point. Il sera alors considéré comme caché et ne sera affiché que s'il est demandé explicitement.

Le système de fichiers de Linux est sensible aux majuscules et aux minuscules. Ainsi deux fichiers différents peuvent avoir un même nom s'il y a une différence au niveau de la casse. Il est recommandé d'utilise les minuscules pour nommer les fichiers et uniquement des caractères ASCII.

Voici une illustration montrant l'explorateur de fichiers de Ubuntu 12.08.

Explorateur de fichiers

Notions de chemin sous UNIX

Comme nous l'avons vu, toute l'arborescence commence à partir du répertoire racine /. Dans un chemin, les différents répertoires sont séparés par le caractère /. Un chemin absolu commence à la racine et donc par le caractère /. Un chemin de relatif commencera à partir du répertoire courant. Exemple :

/repertoire/sous_rep/sous_sous_rep/fichier (chemin absolu)

repertoire/sous_rep/sous_sous_rep/fichier (chemin relatif)

Dans chaque répertoire, il existe deux sous-répertoires spéciaux : . et ... . représente le répertoire courant et .. le répertoire parent. Ils sont notamment utilisés dans les chemins de recherche pour indiquer qu'il faut partir du répertoire courant ou pour remonter dans les répertoires.

Les chemins peuvent contenir des "jokers" ("wildcard"). * représente n'importe quel caractère répété un nombre indéterminé de fois (0, 1 ou plusieurs fois). ? représente un et un seul caractère quelconque.

Les droits d'accès

Les droits appliqués aux fichiers sont de trois sortes : r (lecture), w (écriture) et x (exécution). Ces droits sont classés en 3 groupes : les droits pour le propriétaire du fichier, les droits pour les utilisateurs membre du même groupe que le propriétaire et les droits pour les autres utilisateurs. La notation utilisée est la suivante :

-rwxrwxrwx

Le premier groupe rwx représente les droits du propriétaire, le deuxième groupe ceux des utilisateurs faisant partie du groupe du propriétaire et le troisième groupe ceux des autres utilisateurs.

Très fréquemment, vous trouverez une notation octale pour désigner les droits. vous devez vous représenter chaque groupe de droits comme un nombre binaire à trois chiffres. Ainsi, r vaut 4, w vaut 2 et x vaut 1. En faisant la somme de ces trois chiffre, on obtient le chiffre représentant les droits du fichier. Exemple :

755 signifie rwxr-xr-x

644 signifie rw-r--r--

Illustration de l'affichage détaillé du contenu d'un répertoire.

Contenu détaillé d'un répertoire

Notez que les droits d'accès ne s'appliquent pas au super-utilisateur. Ce dernier a accès à tout.

Les liens

Sous Linux, il est possible de créer deux types de liens : les liens symboliques et les liens physique.

Avec les liens symboliques, un fichier est créé qui renvoie vers le fichier de destination. Si le fichier de destination est supprimé, lorsqu'on essaie d'accéder au lien, nous obtenons une erreur.

Avec les liens physiques, une nouvelle entrée pointant vers le fichier de destination est créée dans le système de fichiers. Si le fichier de destination est supprimé, les données ne le sont pas et sont accessibles depuis le lien.

Hiérarchie standard du système de fichiers Linux

Afin de garantir une certaine inter-opérabilité entre les différentes distributions Linux, un certain nombre de répertoires ont été standardisés. Ce standard est en général bien respecté, mais avec quelques nuances parfois. Vous pouvez, si vous en avez le courage, consulter le standard complet sur cette page. Sinon, en voici un résumé

Répertoire Description
/ Racine
/bin Exécutables des commandes essentielles pour tous les utilisateurs
/boot Fichiers statiques pour le lanceur.
/dev Fichiers correspondants aux périphériques (disques, carte réseau, etc.)
/etc Fichiers de configuration système spécifiques à la machine locale
/etc/opt Fichiers de configuration pour les programmes installés dans /opt
/etc/sgml Fichiers de configuration pour SGML (optionnel)
/etc/X11 Fichiers de configuration pour le serveur X Window
/etc/xml Fichiers de configuration pour XML (optionnel)
/home Répertoires personnels des utilisateurs
/lib Librairies partagées essentielles et modules du noyau
/media Point de montage pour les média amovibles
/mnt Point de montage pour les systèmes de fichiers temporaires
/opt Logiciels supplémentaires
/proc Système de fichier virtuel d'information pour les processus et le noyau
/root Répertoire personnel du super-utilisateur
/sbin Exécutables du système
/srv Données pour les services fournis par le système
/tmp Fichiers temporaires
/usr Données partagées et en lecture seule. Ce répertoire est un des plus important
/usr/bin La plupart des exécutables utilisateurs
/usr/include Entêtes des bibliothèques standard
/usr/lib Librairies pour la programmation et les paquets
/usr/local Hiérarchie locale (pour les programmes installés localement)
/usr/local/share Identique à /usr/share, mais pour les programmes locaux
/usr/sbin Exécutables standards non essentiels
/usr/share Données indépendantes de la plate-forme
/usr/share/dict Liste de mots (optionnel)
/usr/share/man Pages du manuel
/usr/share/misc Données diverses indépendantes de la plate-forme
/usr/src Code source
/usr/X11R6 Système X Window, Version 11R6
/var Fichiers de données pouvant être modifiés
/var/account Journaux de comptabilité des processus (optionnel)
/var/cache Cache des données des applications
/var/crash Dumps du système après un crash (optionnel)
/var/games Données des jeux (optionnel)
/var/lib Informations d'état modifiables
/var/lock Fichiers de verrouillage
/var/log Journaux (log files)
/var/mail Fichiers des boîtes aux lettres des utilisateurs (optionnel)
/var/opt Données temporaires pour /opt
/var/spool Fille d'attente des applications
/var/spool/lpd Fille d'attente de l'imprimante (optionnel)
/var/tmp Fichiers temporaires préservés entre deux redémarrage du système