logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [22/03/2015 09:37]
enicar [Date de dernière modification]
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [15/11/2019 21:49]
enicar supprimée
Ligne 1: Ligne 1:
-====== Pérégrination autour de ls -l  ====== 
  
-  * Objet : Aborder les droits unix et types de fichiers à travers la sortie de ls 
-  * Niveau requis : {{tag>​débutant avisé}} 
-  * Commentaires : Cet article n'a qu'un seul but, apprendre 
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
-     * [[doc:​systeme:​ls|commande ls]] 
-     * [[doc:​systeme:​ln|commande ln]] 
-     * [[doc:​systeme:​droits-unix|droit unix]] 
-     * [[doc:​systeme:​chmod|commande chmod]] 
-     * [[doc:​systeme:​chown|commande chown]] 
-     * [[doc:​systeme:​touch|commande touch]] 
  
-===== Introduction ===== 
-Je propose d'​aborder les concepts de droits unix et de type de fichier en prenant exemple 
-sur la sortie de la commande : 
-<code user> 
-ls -l 
-</​code>​ 
-Ceci permettra d'​aborder les droits sur les fichiers, les notions de propriétaires et de groupe et 
-les divers types de fichiers qui existent sur un système de fichiers linux (ext2/​ext3/​ext4). 
-La plupart de ces notions sont aussi vraies pour d'​autres systèmes de fichiers unix, bien sûr ;) 
- 
-Donc je vais d'​abord exposer ces notions essentielles,​ et ensuite on va revenir sur des exemples 
-pour entériner tout cela. 
 ===== La sortie de ls -l ===== ===== La sortie de ls -l =====
 Faisons : Faisons :
Ligne 66: Ligne 43:
 |-|Fichier normal| |-|Fichier normal|
 |d|Répertoire (**d**irectory) ([[peregrination-autour-de-ls-l?&#​les-repertoires|Les répertoires]])| |d|Répertoire (**d**irectory) ([[peregrination-autour-de-ls-l?&#​les-repertoires|Les répertoires]])|
-|l|Lien symbolique (symbolic **l**ink)|+|l|Lien symbolique (symbolic **l**ink) ​([[peregrination-autour-de-ls-l?&#​les-liens-symboliques|Les liens symboliques)]]|
 |p|Tube nommé (**p**ipe)| |p|Tube nommé (**p**ipe)|
 |s|**S**ocket unix| |s|**S**ocket unix|
Ligne 124: Ligne 101:
  
 Dans linux, ce bit **t** n'est utilisé que pour les répertoires. Il est utilisé notamment pour Dans linux, ce bit **t** n'est utilisé que pour les répertoires. Il est utilisé notamment pour
-les répertoires temporaires,​ par exemple :+les répertoires temporaires,​ par exemple ​((L'​option **-d** demande à **ls** de ne pas afficher le contenu des répertoires,​ mais de lister leur nom comme avec les autres fichiers))((Nous pouvons grouper les options courtes dans ls. Ainsi **ls -ld** est équivalent à **ls -l -d**)) ​:
 <code user> <code user>
 ls -ld /tmp ls -ld /tmp
Ligne 210: Ligne 187:
  
 Les données d'un fichier sont écrites sur le disque sous forme de blocs. Les données d'un fichier sont écrites sur le disque sous forme de blocs.
-L'​information où se trouve ces blocs, est contenu ​dans un ensemble +L'​information où se trouve ces blocs, est contenue ​dans un ensemble 
-d'​inodes (sous forme de numéro ​de bloc).+d'​inodes (sous forme de numéros ​de blocs).
  
  
 <​note>​ inode peut être traduit par i-nœud, c'est à dire nœud <​note>​ inode peut être traduit par i-nœud, c'est à dire nœud
-d'​information. J'ai préféré ​gardé ​le terme employé couramment par les+d'​information. J'ai préféré ​garder ​le terme employé couramment par les
 initiés. initiés.
 </​note>​ </​note>​
Ligne 222: Ligne 199:
 Cet ensemble d'​inodes a un premier inode qui sert à référencer le fichier. Cet ensemble d'​inodes a un premier inode qui sert à référencer le fichier.
 Un répertoire fait correspondre un chemin (le nom du fichier) avec ce Un répertoire fait correspondre un chemin (le nom du fichier) avec ce
-premier inode. ​ De cet façon on peut avoir plusieurs noms pour le même+premier inode. ​ De cette façon on peut avoir plusieurs noms pour le même
 fichier. Ces différents noms pointent sur le même premier inode. fichier. Ces différents noms pointent sur le même premier inode.
  
Ligne 233: Ligne 210:
 Le premier inode contient aussi les métadonnées associées au fichier. Le premier inode contient aussi les métadonnées associées au fichier.
 C'est à dire, sa taille, son propriétaire,​ son groupe, les dates de C'est à dire, sa taille, son propriétaire,​ son groupe, les dates de
-derniers changements,​ accès et modification, le nombre de lien et les+derniers changements,​ accès et modifications, le nombre de lien et les
 permissions. permissions.
  
  
-Supposons à présent, que l'​on ​est deux noms de fichiers qui pointent sur+Supposons à présent, que l'​on ​ait deux noms de fichiers qui pointent sur
 le même inode. Donc, les données des « deux fichiers » sur le disque le même inode. Donc, les données des « deux fichiers » sur le disque
 sont au même endroit. Et donc ils ont exactement les mêmes données. Leur  sont au même endroit. Et donc ils ont exactement les mêmes données. Leur 
Ligne 245: Ligne 222:
  
  
-Nous allons faire quelques ​expérience pratique ​pour démontrer ce fonctionnement.+Nous allons faire quelques ​expériences pratiques ​pour démontrer ce fonctionnement.
 J'ai dit plus [[peregrination-autour-de-ls-l?&#​la-sortie-de-ls--l|haut]] que l'​option **-i** permettait de J'ai dit plus [[peregrination-autour-de-ls-l?&#​la-sortie-de-ls--l|haut]] que l'​option **-i** permettait de
 connaître le numéro d'​inode. C'est cette option que nous allons utiliser. connaître le numéro d'​inode. C'est cette option que nous allons utiliser.
Ligne 255: Ligne 232:
 </​code>​ </​code>​
  
-Vous devriez, à présent, vous trouvez ​dans le répertoire **essai-de-liens**. +Vous devriez, à présent, vous trouver ​dans le répertoire **essai-de-liens**. 
-Créons un nouveau fichier que nous allons ​appelé ​**machin**+Créons un nouveau fichier que nous allons ​appeler ​**machin**
 <code user> <code user>
 touch machin touch machin
Ligne 267: Ligne 244:
 -rw-r--r-- 1 enicar enicar 0 mars  21 17:02 machin -rw-r--r-- 1 enicar enicar 0 mars  21 17:02 machin
 </​file>​ </​file>​
-Donc le fichier existe, sa taille est nulle et son compteur de lien est &​gale ​à 1.+Donc le fichier existe, sa taille est nulle et son compteur de lien est égale ​à 1.
 Bien, on va créer un lien sur **machin** avec la commande **ln** : Bien, on va créer un lien sur **machin** avec la commande **ln** :
 <code user> <code user>
 ln machin bidule ln machin bidule
 </​code>​ </​code>​
-Regardons les numéros d'inode de nos deux fichiers :+Regardons les numéros d'inodes ​de nos deux fichiers :
 <code user> <code user>
 ls -i machin bidule ls -i machin bidule
Ligne 298: Ligne 275:
 </​file>​ </​file>​
 Voilà ! En modifiant, les données de **machin** nous avons modifié celle de **bidule**, car les deux Voilà ! En modifiant, les données de **machin** nous avons modifié celle de **bidule**, car les deux
-fichiers ont les mêmes données sur le disque. Tenez, regardons le compteur de lien de nos deux fichiers :+fichiers ont les mêmes données sur le disque. Tenez, regardons le compteur de liens de nos deux fichiers :
 <code user> <code user>
 ls -l bidule machin ls -l bidule machin
Ligne 306: Ligne 283:
 -rw-r--r-- 2 enicar enicar 15 mars  21 17:11 machin -rw-r--r-- 2 enicar enicar 15 mars  21 17:11 machin
 </​file>​ </​file>​
-Oh ! Le compteur de lien de machin a été incrémenté de 1, celui de bidule est aussi de 2 !+Oh ! Le compteur de lien de **machin** a été incrémenté de 1, celui de bidule est aussi de 2 !
 On va aller plus loin, grâce à la commande **stat** : On va aller plus loin, grâce à la commande **stat** :
 <code user> <code user>
Ligne 329: Ligne 306:
   Créé : -   Créé : -
 </​file>​ </​file>​
-Vous pouvez vérifier que pour **bidule** et **machin** les dates de dernier ​accès sont les mêmes. Il en +Vous pouvez vérifier que pour **bidule** et **machin** les dates de derniers ​accès sont les mêmes. Il en 
-est de même pour les dates de changement ​et dernière ​modification. Les deux fichiers sont indiscernables,​+est de même pour les dates de changements ​et dernière ​modifications. Les deux fichiers sont indiscernables,​
 tant au niveau de leur données que de leurs métadonnées. tant au niveau de leur données que de leurs métadonnées.
  
Ligne 347: Ligne 324:
  
 ===== Les répertoires ===== ===== Les répertoires =====
-FIXME À SUIVRE...+Les répertoires sont des fichiers avec l'​attribut « répertoire » ((Presque tout est fichier dans un 
 +système linux. Il existe une exception notable : les interfaces réseaux. En effet ces interfaces 
 +n'ont aucun périphérique correspondant dans /dev/)) 
 + 
 +Les répertoires permettent de faire la correspondance entre les noms des fichiers et les inodes. 
 +Les répertoires ont eux mêmes un nom dans un répertoire,​ à l'​exception du répertoire racine 
 +qui n'a pas de nom. 
 + 
 +Nous allons voir que les répertoires sont aussi des liens sur des inodes, et qu'un répertoire 
 +possède d'​office plusieurs liens physiques (à par la racine, mais ça ne dure pas longtemps ;-)). 
 +Donc, voyons le nombre de liens d'un répertoire. Pour cela nous allons utiliser, l'​option 
 +**-d** de **ls**, par exemple : 
 +<code user> 
 +ls -ld .  
 +</​code>​ 
 +Cela donne dans mon home : 
 +<file -> 
 +drwxr-xr-x 246 enicar enicar 36864 mars  26 06:42 . 
 +</​file>​ 
 +Nous voyons que le répertoire courant a bien l'​attribut répertoire (ouf !). Le nombre de 
 +liens est 246, et sa taille 36864 octets. 
 + 
 + 
 +Le nombre de liens d'un répertoire est au moins deux ((sauf pour la racine, mais je n'y reviendrai plus ;) )). En effet, le premier lien est celui du répertoire parent. Le second est celui qu'il a sur lui 
 +même, c'est le point. Alors nous en arrivons à la question : d'où vient ce 246 ? À chaque nouveau 
 +sous-répertoire créé dans un répertoire est associé un lien noté **..**. Ce lien pointe sur le répertoire parent. Donc on en déduit, qu'il y a 244 sous-répertoires dans le répertoire courant de mon exemple. 
 +Prouvons le ! Je vais utiliser pour ce faire les commandes **find** et **wc**. 
 +<code user> 
 +find . -maxdepth 1 -type d |wc -l 
 +</​code>​ 
 +**find** permet de chercher des fichiers selon divers critères. Ici, je vais lui demander de trouver les répertoires du répertoire courant (**-type d**) et de ne pas parcourir ces sous-répertoires en profondeur 
 +comme il le fait normalement (**-maxdepth 1**). **wc** compte les caractères,​ les mots et les lignes. 
 +Ici, je lui demande de compter les lignes uniquement (**-l**). En effet, par défaut, **find** affiche un fichier par ligne. Mais surprise ! Cela affiche : 
 +<file -> 
 +245 
 +</​file>​ 
 +Me serais-je fourvoyer ? Non, pas du tout ! En fait, avec **find** nous avons aussi compté le répertoire 
 +courant (c'est à dire **.**). Vous pouvez le vérifier en faisant : 
 +<code user> 
 +find . -maxdepth 1 -type d |less 
 +</​code>​ 
 +Le répertoire **.** devrait être listé au début. Une autre façon de voir, est que **find** liste tous les répertoires du répertoires courant sauf **..**, ça nous fait 246-1. ;-) Le compte est bon ! 
 + 
 +===== Les liens symboliques ===== 
 +FIXME à suivre. 

Pied de page des forums

Propulsé par FluxBB