Les utilisateurs persçoivent les fichiers comme étant rangés dans des répertoires, eux mêmes classés dans d'autres répertoires permettant ainsi d'avoir une vision hiérarchique de l'organisation des fichiers et en y facilitant la gestion.
Le système d'exploitation à quant à lui une vision bien différente.
Pour lui tout est un ensemble de de données écrites directement sur le support de stockage sans aucune notion de hiérarchie mais accessible par un inode qui possède des pointeurs vers ses données.
Pour UNIX, un écran, une souris, un clavier ou même un disque dur sont représentés par des fichiers. A noter que mêmes les processus sont des fichiers.
Autrement dit, pour le système d'exploitation : TOUT est fichier.
Il s'agit ici des fichiers au sens propre du terme : les textes, les scripts, les commandes, etc.
Un répertoire est pour le système un type de fichier particulier contenant des références permettant d'accéder à des fichiers.
Les fichiers spéciaux désignent les périphériques matériels de la machine.
Ils sont divisés en deux parties :
Un lien symbolique correspond à un fichier spécial permettant de pointer vers un nom de fichier.
Il permet de simplifier les accès aux fichiers et répertoires mais également à maintenir la compatibilité entre système UNIX.
Les inodes contiennent des informations concernant les fichiers stockés sur les systèmes de fichiers et sont tous référencés par des numéros.
Lorsqu'un utilisateur souhaite accéder à un fichier, l'inode du fichier est lu.
Si les permissions autorisent l'accès au fichier, les données seront accessibles grâce aux pointeurs.
Les inodes contiennent des informations telles que :
Attention un inode ne contient pas le nom du fichier
Les noyaux des systèmes UNIX ne gèrent pas la notion d'extension de fichier comme dans Windows.
Par exemple, appeler un fichier text.txt ou programme.exe n'indique en rien au système qu'il s'agit d'un fichier texte ou d'une application.
L'utilisation d'extension n'est utile que pour les utilisateurs afin de faciliter l'utilisation et la reconnaissance des types de fichiers.
Mise à part le / qui est utilisé comme séparateur dans l'arborescence, il n'y a pas de caractère interdit dans les noms de fichier. Attention cependant à l'utilisation des caractères spéciaux qui peuvent être difficiles à manipuler. De plus, le nom des fichiers peut atteindre 255 caractères.
Lorsque l'on manipule des fichiers il est impératif de respecter la casse.
Les systèmes UNIX respectent la casse et un fichier dont le nom est FICHIER.TXT n'est pas identique à fichier.txt.
Les fichiers commençant par un . sont considérés comme étant des fichiers cachés.
Les fichiers de configuration des environnements utilisateurs contiennent généralement ce type de fichier.
syntaxe:
$ pwd

La commande pwd affiche le chemin complet du répertoire courant, c'est à dire le répertoire dans lequel est positionné l'utilisateur lors de l'exécution de la commande.
Cette commande ne possède ni arguments ni options
syntaxe:
$ cd <chemin dans lequel se positionner>
Le chemin fourni à la commande peut être soit absolu soit relatif.
Si la commande est lancée sans préciser un chemin, la commande positionnera automatiquement l'utilisateur dans le répertoire de connexion.
syntaxe:
$ mkdir [OPTIONS] <NOM>
| Option | Descriptions |
|---|---|
-m mode |
Mode est une valeur numérique qui permet de définir les permissions du répertoire si nécessaire |
-p |
Création de répertoires parents s'ils n'existent pas (dans ce cas le nom du répertoire doit être un chemin) |
<NOM> |
Nom du répertoire ou du chemin à créer |
syntaxe:
$ rmdir [OPTIONS] <NOM>
| Option | Descriptions |
|---|---|
-p |
Suppression du répertoire spécifié et des parents uniquement s'ils sont vide |
<NOM> |
Nom du répertoire ou du chemin à supprimer |
syntaxe:
$ ls [OPTIONS] <fichier(s) ou répertoire(s) ou les deux>
la commande ls permet de lister les noms et les caractéristiques d'un fichier ou d'un ensemble de fichiers.
L'affichage se fait par défaut par ordre alphabétique.
Les arguments répertoire et fichier peuvent contenir des méta-caractères.
Si aucun argument n'est fourni à la commande, ls affichera la liste du contenu du répertoire courant.
| Options | Descriptions |
|---|---|
-a |
Liste tous les fichiers y compris les fichiers cachés. Répertoire parent et courant inclus (. et ..) |
-A |
Liste tous les fichiers y compris les fichiers cachés. Répertoire parent et courant non inclus (. et ..) |
-C |
Présentation en colonne avec tri vertical |
-d |
Affiche le nom des répertoires de façon identique au nom de fichier |
-F |
Présentation en colonnes avec tri vertical, certains noms sont suivis d'uncaractère indiquant le type (/ pour un répertoire, * pour un fichier exécutable, @ pour un lien symbolique) |
-i |
affiche le numéro d'inode |
-l |
affiche au format long (type de permissions, nombre de liens physiques, utilisateurs et groupes propriétaires, etc. |
-m |
Présentation sous forme de liste de noms séparés par , |
-r |
Affiche le nom avec tri inversé |
-R |
Liste récursive de tous les sous répertoires |
-s |
Affiche la taille en blocs de fichier (1 bloc = 512 octets) |
-t |
Tri par date de dernière modification |
-u |
tri par date de dernier accès |
-x |
Présentation en colonnes avec tri horizontal |
répertoire |
nom d'un répertoire dont on souhaite avoir le contenu |
fichier |
nom du ou des fichiers concernés par la liste |
Analyse des colonnes :
-rw-r--r-- 1 antoine antoine 0 21 mai 11:33 exemple
-rw-r--r-- : Ensemble de 10 caractères indiquant le type de fichier et les permissions sur le fichier (caractère 1) pour l'utilisateur (caractères 2-3-4), le groupe (caractères 5-6-7) et les autres (caractères 8-9-10)1 : Nombre de liens physiques pour un fichier et nombre de sous répertoire pour un répertoireantoine : Nom de l'utilisateur propriétaireantoine : Nom du groupe propriétaire0 : taille en octé pour un fichier21 mai 11:33 : Heure et/ou date de la dernière modificationexemple : Nom du fichier ou du répertoireTypes de fichiers :
- : fichier ordinaire
d : répertoire
b : périphérique de type bloc
c : prériphérique de type caractère
l : lien symbolique
p : tube nommé (FIFO)
s : socket Unix
Permissions :
- : Aucun droit
r : droit de lecture (toujours en première position)
w : droit d'écriture (toujours en deuxième position)
x : droit d'exécution (toujours en troisième position)
Contrairement à Windows, les systèmes Unix ne possèdent pas d'attributs permettant de savoir si un fichier doit être sauvegardé ou non.
Pour cela on va utiliser la dernière date de modification du fichier. En effet, lors d'une sauvegarde complète ou incrémentale il suffira d'utiliser un fichier de référence horodaté à une date voulue et d'effectuer la sauvegarde des fichiers en fonction de la date de référence.
La commande touch permet de créer un fichier si celui qui est passé en argument n'existe pas mais elle permet également d'effectuer des changements sur la dernière date de modification d'un fichier.
$ touch fichier.txt
La date de dernier accès ainsi que la date de changement de l'inode sont également modifiés lors d'un changement dans le contenu du fichier. On pourra d'ailleurs utiliser la commande
ls -lvu précédemment pour vérifier les changements
Syntaxe :
cp [OPTIONS] <fichier_source> <fichier_cible ou répertoire_cible>
Si la commande a une seule source de type fichier, la cible pourra être un fichier ou un répertoire.
Si la commande a plusieurs sources (fichiers ou répertoires) alors la cible ne pourra être qu'un répertoire.
Les noms des fichiers et des répertoires peuvent être des chemins absolus ou relatifs.

Syntaxe :
rm [OPTIONS] <fichier ou répertoire>
| Options | Descriptions |
|---|---|
-r / R |
Suppression récursive. Si appliqué sur un répertoire, supprime le répertoire et son contenu y compris les répertoires enfants |
-i |
Demande de confirmation pour la suppression de chacun des fichiers |
-f |
Supprime le message de confirmation et force la suppression |
-- |
Fin des options ou aucune option |
<fichier ou répertoire> |
Nom du fichier ou du répertoire à supprimer |
mv [OPTIONS] <source> <cible>
Si la commande a une seule source de type fichier, la cible pourra être un fichier ou un répertoire.
Si la commande a plusieurs sources (fichiers ou répertoires) alors la cible ne pourra être qu'un répertoire.
Les noms des fichiers et des répertoires peuvent être des chemins absolus ou relatifs.
file <NOM>
NOM : nom du fichier (il peut être générique)
