Arborescence
Comme dans tous les autres systèmes d'exploitation, les données sont organisées en fichiers eux-mêmes organisés en répertoires (et sous-répertoires) sur les éléments de sauvegarde. L'architecture du système de fichiers est sous la forme d'un arbre dont le répertoire noté / est la racine. Tous les autres répertoires en sont les noeuds et les fichiers les feuilles. Un système de fichier est donc un arbre n-aire.
Noms de fichiers
Sous Unix (et contrairement au Dos), tous les caractères alphanumériques plus la ponctuation sont des caractères valides. De plus il n'existe pas de notion d'extention de fichier. Cela fait du caractère . (point) un caractère comme un autre qui peut apparaître plus d'une fois dans un nom de fichier. Par contre l'espace est considéré comme un séparateur à proscire dans le nommage des fichiers. Le système Unix n'accepte pas les caractères accentués et distingue les minuscules des majuscules.
Exemples :
MonProg.c et monprog.c ne représentent pas les mêmes fichiers
a.b... est un nom de fichier valide sous Unix
tp6-31/03/2001.c est valide
_Z_ l'est aussi
Alors que sous Dos, les fichiers sont au format 8.3 c'est-à-dire que les fichiers portent un nom de 8 caractères et une extention de 3 caractères séparés par un point (.), le système Unix autorise tout comme Windows95 des noms de fichiers long (256 caractères environ).
Les caractères invalides sous Dos (;+=[]',"*\<>/?:|.) sont acceptés par Unix.
Exemple : logo.cyber+zoide.jpeg est accepté par Unix mais refusé par Dos.
Chemin d'un fichier
Tous ces éléments sont hérarchisés les uns par rapport aux autres. Cette contrainte est représentée par la notion de chemin d'un fichier. En effet, un fichier est localisable sans ambiguité (de façon exacte et unique) par son chemin. Ce dernier représente la succession des répertoires à parcourir pour accéder au fichier (navigation dans l'arbre). Les répertoires sont séparés par un slash noté / dans l'écriture du chemin (attention, c'est le même symbole qui représente la racine).
Répertoire parent
Le répertoire parent est celui hiérarchiquement immédiatement supérieure à celui courant. Il est noté deux points ..
Répertoire courant
On appelle répertoire courant celui dans lequel on se trouve à un instant donné durant la navigation dans le système de fichiers. Il est noté point .
Chemin absolu
Le chemin absolu désigne la succession des répertoires à parcourir depuis la racine pour accéder au fichier spécifié.
Exemple : /home/h-etie00/tpC/tp3.c pour accéder au fichier tp3.c du système de fichier ou qu'on se trouve dans le système (représenté dans le schéma plus-haut).
Chemin relatif
Le chemin relatif désigne la succession des répertoires à parcourir depuis le réperoire courant pour accéder au fichier spécifié.
Exemple: ../monprog.c pour accéder au fichier monprog.c lorsqu'on se trouve dans le répertoire tpC. La présence du répertoire parent dans ce chemin relatif permet de remonter dans l'arbre.
Types de fichiers
Sous Unix, les fichiers peuvent être de 5 types différents :
Exécutable
Les fichiers exécutables correspondent à des programmes (écrits en langage C généralement). Il n'est pas conseillé de tenter de les éditer à l'aide d'un éditeur de texte traditionnel : il n'apparaîtra que des caractères bizarres et incomprehensibles. Seules les chaînes de caractères stockées en constantes dans l'exécutable seront visibles. Mais en général la taille d'un exécutable devrait vous en dissuader.
Répertoire
Les répertoires, nous l'avons vu plus haut, sont des ensembles de fichiers et de répertoires.
Un répertoire peut ne contenir aucun fichier. Mais en revanche, un répertoire contient toujours un répertoire parent .. et un répertoire courant . .
Les liens (ln)
Les liens sont des fichiers assez spéciaux puisqu'il permettent d'associer plusieurs noms à un seul et même fichier. Pour créer un lien, utiliser la commande ln.
L'utilité des liens est évidente puisqu'ils permettent à partir d'un seul fichier physiquement présent sur l'espace disque, d'avoir plusieurs références de noms différents et localisées en des lieux différents d'un même fichier qu'il n'est plus besoin de copier. Lorsque le fichier pointé est volumineux, l'emploi des liens est donc très avantageux.
Les liens peuvent êtres de deux types :
Lien symbolique
Un lien symbolique est un simple pointeur vers un autre fichier bien réel.
La commande ln -s permet de créer un lien symbolique sur un fichier. Ce lien sera présent sous la forme d'un fichier dont le nom sera affiché après le symbole @.
Syntaxe : ln -s nom-du-fichier-à-pointer nom-du-lien-symbolique
Lien physique
Un lien physique sur un fichier est un fichier qui occupe exactement le même espace disque que le fichier vers lequel il pointe.
Ainsi les deux fichiers : le lien et le fichier pointé sont physiquement les mêmes bien que virtuellement (pour le système de fichiers) ils portent des noms différents et puissent être localisés dans des répertoires différents.
Syntaxe : ln nom-du-fichier-à-pointer nom-du-lien-symbolique
Vous aurez remarquer ici l'absence de l'attribut -s réservé aux liens symboliques.
Fichier
Un fichier est de type fichier lorsqu'il est "tout à fait normal", qu'il n'a rien de particulier ; c'est-à-dire lorsqu'il n'est ni un exécutable, ni un répertoire et ni un lien.
Fichier caché
Les fichiers et répertoires cachés se distinguent des autres par la seule présence d'un point (.) en première position dans leur nom. La commande de listage des fichiers ne les affichera pas par defaut.
Navigation (cd)
La commande unix de navigation dans le système de fichier est : cd pour Change Directory.
| Exemple | Description |
cd . | Se déplace vers le répertoire courant c'est-à-dire ne change pas de place! |
cd .. | Va dans le réperoire parent. |
cd / | Saute vers le réperoire racine, à la base de tout le système. |
cd /home | Se déplace vers le répertoire home fils de la racine. |
cd /home/h-etie00 | Parcours l'arbre jusqu'au répertoire h-etie00 en passant par la racine, puis par home. |
cd ../Mail | Remonte l'arbre d'un cran, puis va dans le répertoire Mail |
cd ../.. | Remonte de deux crans. |
Commandes sur le système de fichiers
| Commande | Description |
rm | Supprime un fichier ou un répertoire. |
mv | Déplace ou renomme un fichier ou un réperoire. |
mkdir | Crée un réperoire. |
rmdir | Supprime un répertoire. |
cp | Copie un fichier ou un répertoire. |
pwd | Affiche le chemin du répertoire courant. |
cd | Se déplace dans le système de fichier. |
ls | Affiche la liste des fichiers et répertoires. |
ln | Crée un lien vers un fichier. |
Aux commandes sur les fichiers (rm, mv, cp) vous pouvez spécifier plusieurs arguments et utiliser les méta-caractères.
Lister les fichiers (ls)
Une commande essentielle de tout système d'exploitation est le listage des fichiers et sous-répertoires du répertoire courant.
L'équivalent sous Unix de la commande dir du Dos est ls.
Syntaxe : ls
Exemple :
$ ls
amoi.c montage.jpg tp3.c
lettre.doc tp1.c zizitop.mp3
monprog.c tp2.c
Cette commande accepte les méta-caractères afin de n'afficher que les fichiers qui répondent à certaines contraintes lexicographique.
Syntaxe : ls expression-régulière
Exemple :
$ ls *.c
amoi.c tp1.c tp3.c
monprog.c tp2.c
On peut afficher toutes les informations relatives à un fichier : type, droits, numéro d'inode, nom, UID, GID, taille, date et heure de création... avec l'attribut -l.
Syntaxe : ls -l
Exemple :
$ ls -l
-rwxr--r-- 1 root univ 106 Apr 10 15:09 amoi.c
drwxr-xr-x 1 root univ 1024 Jan 5 20:54 DATA
-rwx------ 1 root univ 5160 Feb 23 09:22 lettre.doc
lrwxrwxrwx 1 root univ 3 Jan 24 12:16 tp -> TpK
Pour afficher les fichiers cachés, utiliser l'attribut -a (all). Très pratique pour lister les fichiers de configuration.
Syntaxe : ls -a
Exemple :
$ ls -a
.bash lettre.doc tp2.c
.netscape monprog.c tp3.c
.profile montage.jpg zizitop.mp3
amoi.c tp1.c
| Commande | Description |
ls | Liste les fichiers par ordre aplabétique en colonnes. |
ls -l | Liste les fichiers en ligne avec toutes les informations connexes. |
ls -a | Liste en plus les fichiers cachés. |
ls -m | Sépare les fichiers par une virgule. |
ls -t | Tri par date. |
ls -lu | Tri par date de dernier accès et affiche cette date. |
ls -F | Affiche les types de fichiers i.e. en rajoutant le symbôle correspondant : / (répertoire), * (exécutable), @ (lien). |
ls -S | Tri par ordre de taille décroissante. |
ls -X | Tri par type d'extention. |
ls -r | Tri inverse. |
Méta-caractères
Les méta-caractères * (astérisque) et ? (point d'interrogation) sont très utiles lors de la manipulation de fichiers en groupe. Le méta-caractère * remplace dans l'expression dans laquelle il apparait, zéro, un ou plusieurs autre(s) caractère(s). Quand à ?, il remplace un et un seul caractère.
Par exemple, la commande rm * -r supprime tous les fichiers de tous les réperoires inclus dans celui courant. A utiliser avec parcimonie!
Alors que mv tp*.c tpC déplace dans le répertoire tpC tous les fichiers ayant n'importe quoi entre tp et .c.
Mais si on écrit mv tp??.c tpC , on déplace les fichiers contenant exactement deux caractères entre tp et .c.
|