Libre à vous de partager

Après avoir abordé de manière succincte l’administration système du Raspberry pi, nous allons aborder la gestion des fichiers du défi.

Nous allons voir comment est architecturée Raspberry pi OS et quelles sont les grandes lignes de la vision du système de fichiers.

Ce voyage va être dépaysant pour beaucoup. Le monde de Linux et le monde de Windows ne voient pas du tout les choses de la même manière.

Comme pour l’article précédent, la majorité de ce que nous allons voir, est transposable sous n’importe quelle distribution Linux.

Je n’aborderai que les options les plus indispensables. La majorité des commandes présentes ci-dessous dispose de nombreuses options afin de travailler le plus finement possible.

Généralités sur les systèmes de fichiers

Sous Linux, tout est fichier. Voilà c’est fini. Je plaisante, ce n’est que le début. Cependant, cette notion est très importante. Les dossiers sont vus comme un fichier comprenant des fichiers. Le matériel est aussi vu comme un fichier dans lequel on lit ou on écrit des données. D’où l’importance de comprendre l’architecture des dossiers sous Linux. Cela répond à une logique et est normalisé par la norme FHS .

À l’origine de tout système Linux, se trouve ce que l’on appelle la racine : le /. Tous les composants du système peuvent être adressés à partir de la racine.

Je ne vais pas faire une description exhaustive des différents dossiers présents à la racine. Je ne vous fournis que les principaux. Surtout que certains dossiers ne sont là que par compatibilité avec les anciens systèmes.

Architecture des fichiers sous Linux
Architecture des fichiers sous Linux

Les principaux dossiers à connaître sont :

  • etc : ce dossier regroupe la totalité des fichiers de configuration des logiciels installés.
  • home : ce dossier va regrouper la totalité des fichiers des utilisateurs.
  • var : c’est là où la majorité des journaux est stockée. Ainsi que les données de certains logiciels tels que les serveurs Web.
  • opt : c’est un dossier un peu particulier, vide à l’installation du nouveau système. Si vous passez systématiquement par le gestionnaire de logiciels pour installer ceux dont vous avez besoin, il restera vide. Si vous avez des logiciels que vous avez téléchargés sur Internet, ils s’installeront pour la plupart dans ce répertoire. C’est ici aussi qu’il est conseillé de mettre les logiciels que vous avez compilés vous-même.
  • dev : le contenu de ce dossier est temporaire. Il n’existe que le temps où le système est lancé. Il est vidé à chaque carré et peuplé à chaque démarrage par un logiciel précis.
  • proc : le contenu de ce dossier est aussi temporaire. C’est ici que sont stockées la totalité des informations concernant le processeur et les processus en cours d’utilisation.

Les deux derniers dossiers sont des dossiers que vous ne pouvez pas modifier de manière pérenne. Toute modification sera automatiquement perdue au prochain redémarrage. La modification dépasse largement le périmètre de ce défi et ne sera pas abordée ici.

Nous travaillerons surtout dans le dossier, etc. Nous consulterons beaucoup le dossier dev pour toute la partie concernant les systèmes de fichiers.

Commande principale pour la gestion des fichiers du défi

Chemin absolu, chemin relatif.

Avant de voir les principales commandes pour la gestion des fichiers du défi, je vais aborder une notion capitale qui est celle du chemin absolu et du chemin relatif. Cette notion n’est pas spécifique à Linux. Elle permet de répondre à la question comment localiser un fichier ou un dossier dans le système. Tout est relatif, comme dirait le vieil Albert.

Tout dépend en fait de notre point de vue. Et comme souvent en informatique, il n’y a pas une seule réponse et surtout plusieurs bonnes réponses.

Le chemin absolu, comme son nom l’indique, n’est soumis à aucune interprétation. Ce chemin part de la racine du système. Le / représentant la racine se trouve donc être le premier élément du chemin. À la suite, se trouve dans l’ordre exact de parcours, les noms des dossiers qu’il faut ouvrir pour arriver au dossier ou fichier voulu.

Le chemin relatif, quant à lui, est interprété par l’éditeur de commandes. Le chemin part du dossier actuel dans lequel nous sommes. Ce qui veut dire que le chemin est amené à évoluer à chaque modification du dossier actuel.

Quel est donc l’intérêt d’avoir plusieurs façons de noter le chemin ? De manière générale, le chemin absolu est beaucoup plus long que le chemin relatif. En revanche, il fonctionnera où que nous soyons dans le système. De plus, en cas de plusieurs dossiers portant le même nom mais ne se trouvant pas au même endroit dans le système, la notation relative peut amener à une modification qui soit effectuée sur le mauvais dossier.

Chacun a ses préférences. Les miennes sont assez simples : dès que le dossier que je cherche à obtenir, nécessite plus de deux remontées de dossier, je passe en mode absolu. Je reste en mode relatif, quand je travaille dans des sous-dossiers. Globalement, c’est ce que vous constaterez lors de ce défi.

gestion des fichiers du défi

Afficher les dossiers

La première chose à savoir faire dans la gestion des fichiers du défi est d’afficher les fichiers et les dossiers. La commande est assez simple et possède de trois options très intéressantes. Si aucun chemin n’est fourni, la commande affichera le contenu du dossier courant.

  • L’option l affiche les dossiers et fichiers sous forme de liste.
  • L’option h affiche les tailles des dossiers et fichiers en unité lisible par l’homme.
  • L’option a affiche tous les dossiers, y compris ceux qui sont cachés. Sous Linux, un fichier ou un dossier caché est un dossier commençant par un point.

Note : il existe deux dossiers particuliers présents dans tous les dossiers :

  • Le dossier . : qui pointe vers le dossier actuel.
  • Le dossier .. : qui pointe vers le dossier parent.
gabriel@raspberrypi:~ $ ls -alh
total 100K
drwxr-xr-x 18 gabriel gabriel 4,0K 24 oct.  22:33 .
drwxr-xr-x  3 root    root    4,0K  6 oct.  10:51 ..
-rw-------  1 gabriel gabriel  872 23 oct.  23:13 .bash_history
-rw-r--r--  1 gabriel gabriel  220  3 mai   02:07 .bash_logout
-rw-r--r--  1 gabriel gabriel 3,5K  3 mai   02:07 .bashrc
drwxr-xr-x  2 gabriel gabriel 4,0K  3 mai   02:16 Bookshelf
drwxr-xr-x  7 gabriel gabriel 4,0K  6 oct.  11:04 .cache
drwx------ 11 gabriel gabriel 4,0K 17 oct.  18:23 .config
drwx------  2 gabriel gabriel 4,0K  6 oct.  11:45 .cups
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:50 Desktop
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Documents
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Images
drwxr-xr-x  3 gabriel gabriel 4,0K  3 mai   02:16 .local
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Modèles
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Musique
drwx------  3 gabriel gabriel 4,0K  6 oct.  11:04 .pki
drwx------  3 gabriel gabriel 4,0K 10 oct.  16:50 .pp_backup
-rw-r--r--  1 gabriel gabriel  807  3 mai   02:07 .profile
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Public
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Téléchargements
drwxr-xr-x  2 gabriel gabriel 4,0K  6 oct.  10:51 Vidéos
drwx------  3 gabriel gabriel 4,0K  6 oct.  11:18 .vnc
-rw-------  1 gabriel gabriel   56 24 oct.  22:33 .Xauthority
-rw-------  1 gabriel gabriel 2,6K 24 oct.  22:33 .xsession-errors
-rw-------  1 gabriel gabriel 2,6K 23 oct.  23:14 .xsession-errors.old

Se déplacer

Le déplacement de dossier en dossier se fait par la commande cd. Elle accepte à la fois les chemins relatifs et les chemins absolus. Si aucun argument n’est fourni à la commande, cette dernière déplace le dossier actuel dans le dossier personnel de l’utilisateur.

gabriel@raspberrypi:~ $ cd /etc/
gabriel@raspberrypi:/etc $ 
gabriel@raspberrypi:/etc $ cd 
gabriel@raspberrypi:~ $ 

Créer un dossier

Il est possible de créer un dossier. Cette commande ne présente aucune difficulté particulière et prend pour argument le nom du dossier.

gabriel@raspberrypi:~ $ mkdir test

Créer un fichier

Comme pour les dossiers, il est possible de créer un fichier texte de manière simple. La commande prend pour seul argument le nom du fichier. De plus, l’extension du fichier n’a aucune importance sous Linux.

gabriel@raspberrypi:~/test $ touch test.txt

Déplacer un dossier ou un fichier

Vous pouvez déplacer un dossier ou un fichier vers un autre dossier. Si vous changez son nom en restant dans le même dossier, cela le renommera. Dans l’exemple suivant le fichier test2.txt est déplacé dans le dossier test. C’est une des commandes indispensable dans la gestion des fichiers du défi.

gabriel@raspberrypi:~ $ mv test2.txt test/

Copier un dossier ou un fichier

La copie d’un dossier nécessite l’utilisation d’une option particulière : r.

La copie d’un fichier ne nécessite aucune option particulière, bien que des options pouvant être utiles existent. Si vous changez son nom en restant dans le même dossier, cela le dupliquera. C’est une des commandes indispensable dans la gestion des fichiers du défi. En effet, nous copierons des fichiers de configurations de base que nous modifierons par la suite.

gabriel@raspberrypi:~ $ cp -r test test.old

Supprimer un dossier ou un fichier

Il est possible de supprimer un dossier vide avec une commande spécifique.

gabriel@raspberrypi:~ $ rmdir dossier_vide/

Il est aussi possible de supprimer un dossier non vide avec la même commande que pour supprimer un fichier en rajoutant l’option -R.

gabriel@raspberrypi:~ $ rm -R test.old/

Attention cependant, la suppression est définitive en mode de ligne de commande. Si les interfaces graphiques possèdent une poubelle, ce n’est pas le cas de la ligne de commande. C’est une des commandes indispensable dans la gestion des fichiers du défi.

Commande principale pour la lecture

Il existe plusieurs commandes pour lire des fichiers sous Linux. Je ne vais en présenter que trois.

Afficher un fichier complet

La commande cat affiche le contenu complet du fichier.

gabriel@raspberrypi:~/test $ cat test.txt 
Avant de voir les principales commandes pour la gestion des fichiers du défi, je vais aborder une notion capitale qui est celle du chemin absolu et du chemin relatif. Cette notion n'est pas spécifique à Linux. Elle permet de répondre à la question comment localiser un fichier ou un dossier dans le système. Tout est relatif, comme dirait le vieil Albert.

Tout dépend en fait de notre point de vue. Et comme souvent en informatique, il n'y a pas une seule réponse et surtout plusieurs bonnes réponses.
gabriel@raspberrypi:~/test $

Afficher une partie d’un fichier

La commande tail affiche par défaut les 10 dernières lignes d’un fichier. Elle est généralement utilisée pour lire les logs du système.

gabriel@raspberrypi:~/test $ sudo tail /var/log/boot.log.1
[  OK  ] Finished Check for glamor.
[  OK  ] Finished Save/Restore Sound Card State.
[  OK  ] Started /etc/rc.local Compatibility.
[  OK  ] Started Authorization Manager.
[  OK  ] Reached target Sound Card.
         Starting Modem Manager...
[  OK  ] Finished Permit User Sessions.
         Starting Light Display Manager...
         Starting Hold until boot process finishes up...
[  OK  ] Started LSB: Switch to ond…(unless shift key is pressed).

La commande more va parcourir la totalité du fichier à afficher, et le cas échéant l’afficher écran par écran, si celui-ci est plus long. Pour passer d’un écran à l’autre, il faut appuyer sur la barre d’espace.

Commande principale pour la gestion des systèmes de fichiers

Afficher les périphériques

La gestion des systèmes de fichiers nécessite de connaître les principaux périphériques de stockage rattaché au système. La commande lsblk permet d’afficher la totalité des périphériques de stockage ainsi que leur point de montage. C’est une des commandes indispensable dans la gestion des fichiers du défi.

gabriel@raspberrypi:~/test $ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1 28,7G  0 disk 
├─sda1        8:1    1 28,6G  0 part /media/gabriel/Ventoy
└─sda2        8:2    1   32M  0 part 
mmcblk0     179:0    0 14,4G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 14,2G  0 part /

Le point de montage

C’est un dossier qui sert de point d’entrée aux périphériques de stockage et à une partition. C’est l’équivalent de la lettre de périphériques sous Windows.

Il est recommandé de monter les clés USB ou disque USB dans le dossier média. Par défaut Raspberry pi OS monte automatiquement une clé USB lors de son branchement dans ce dossier.

Afficher les périphériques montés

La commande mount montre la totalité des fichiers qui sont montés sur le système.

gabriel@raspberrypi:~/test $ mount
/dev/mmcblk0p2 on / type ext4 (rw,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=340460k,nr_inodes=85115,mode=755)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=188820k,nr_inodes=819200,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=94408k,nr_inodes=23602,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sda1 on /media/gabriel/Ventoy type exfat (rw,relatime,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro)

La commande df permet de lister la totalité des points de montage ainsi que la capacité et l’utilisation. C’est une des commandes indispensable dans la gestion des fichiers du défi.

gabriel@raspberrypi:~/test $ df -PTh
Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
/dev/root        ext4        14G    3,5G  9,9G  27% /
devtmpfs         devtmpfs   333M       0  333M   0% /dev
tmpfs            tmpfs      461M       0  461M   0% /dev/shm
tmpfs            tmpfs      185M    1,1M  184M   1% /run
tmpfs            tmpfs      5,0M    4,0K  5,0M   1% /run/lock
/dev/mmcblk0p1   vfat       255M     51M  205M  20% /boot
tmpfs            tmpfs       93M     24K   93M   1% /run/user/1000
/dev/sda1        exfat       29G    4,0G   25G  14% /media/gabriel/Ventoy

Démonter un périphérique

Comme sous Windows, il faut démonter les périphériques de stockage avant de retirer physiquement le périphérique. Ceci afin de synchroniser les écritures sur le périphérique. Ne pas le faire, vous expose à la perte ou la corruption de données.

Pour démonter un périphérique, il suffit d’utiliser la commande umount suivi du périphérique ou du point de montage. C’est une des commandes indispensable dans la gestion des fichiers du défi.

gabriel@raspberrypi:~/test $ umount /dev/sda1

Procédure manuelle pour monter un volume.

Si vous souhaitez remonter une clé que vous avez auparavant démontée sans pour autant l’avoir retiré du système, c’est possible et ceci sans débrancher et rebrancher la clé.

  • Il va falloir dans un premier temps créer un dossier pour le point de montage.
  • Puis monter le périphérique sur ce point de montage.

Conclusion

Voilà arrivé à la fin de cet article, qui comme son prédécesseur est très dense. Il vous a présenté les principales commandes pour la gestion des fichiers du défi.

Avec un peu de pratique, la majorité de ces commandes vous deviendront rapidement simples. N’hésitez pas à vous entraîner à toutes ces commandes pour la gestion des fichiers du défi.

Comme pour les fois précédentes, si vous avez des commentaires ou des questions n’hésitaient pas à les mettre sur le site, LinkedIn ou Facebook.

Laisser un commentaire