Dossiers et partitions
Windows donne à chaque disque sa propre lettre. Linux non : il y a un arbre, il commence à /, la racine (root), et tout le reste s'y accroche, y compris vos autres disques. Un deuxième disque n'est pas D:, il est monté sur un dossier de l'arbre, /mnt/data par exemple, et à partir de là il ressemble à n'importe quel autre dossier. Cela peut paraître éroutant au début, mais très pratique ensuite, puisqu'un programme n'a jamais à savoir sur quel disque physique il écrit.
L'arborescence
Cet arborescence n'a rien d'arbitraire. Toutes les installations de Debian sont organisées de la même manière, et c'est pour ça qu'un tutoriel écrit pour le serveur de quelqu'un d'autre s'applique également au vôtre.
| Dossier | Ce qu'il contient |
|---|---|
/home | Les fichiers des utilisateurs. Le vôtre est /home/utilisateur, aussi écrit ~ |
/root | Le dossier personnel du compte root, à ne pas confondre avec / |
/etc | La configuration du système, uniquement des fichiers texte |
/var | Les données qui grossissent : les logs dans /var/log, Docker dans /var/lib/docker |
/tmp | Les fichiers temporaires, vidés à chaque redémarrage |
/usr | Les programmes installés eux-mêmes, gérés par apt |
/opt | Les logiciels installés en dehors du gestionnaire de paquets |
/mnt et /media | Là où sont montés les disques supplémentaires, /media pour les amovibles |
/boot | Le noyau et le chargeur de démarrage, sur une petite partition à part |
/dev | Votre matériel, exposé sous forme de fichiers (/dev/sda est un disque) |
/proc et /sys | L'état vivant du noyau, changeant à la volée, pas de vrais fichiers |
Un dossier n'est pas une partition
Les partitions sont une question distincte des dossiers. Une installation minimale de Debian en crée typiquement deux, une pour / et une pour le swap, si bien que tous les dossiers ci-dessus sauf /boot vivent sur la même partition et se partagent le même espace libre. Deux commandes pour en voir la réalité : lsblk dessine l'arbre des disques et des partitions, df -h montre le taux de remplissage de chacune.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 461.3G 0 part /
└─sda3 8:3 0 4G 0 part [SWAP]
sdb 8:16 0 3.6T 0 disk
└─sdb1 8:17 0 3.6T 0 part /mnt/data
Quelques habitudes à prendre
- Ne travaillez que dans un seul dossier pour l'usage de votre serveur.
/srvest le dossier que la norme réserve aux données servies par la machine, ce qui en fait l'endroit le plus propre pour mettre les sous dossiers et fichiers dont vous avez besoin de stocker sur votre serveur. Par exemple pour Docker, Serveex met tout dans/srv/docker, un dossier par stack. Ce qui compte, c'est de choisir un endroit et de s'y tenir, plutôt que d'en éparpiller la moitié dans votre dossier personnel ou pire, dans les dossiers de Debian et directement à la racine. - Vos fichiers à vous, propre à un utilisateur, vont dans votre home. Les scripts dans
~/bin, les notes, les téléchargements, tout ce qui est personnel./rootest le dossier du compte root, pas un endroit commode où déposer des choses. - Ne modifiez jamais quoi que ce soit sous
/usrou/binà la main.apten est propriétaire, et vos changements disparaîtront à la prochaine mise à jour. Ce que vous avez le droit de configurer vit dans/etc. - Dans
/etc, préférez créer un fichier additionnel plutôt que de modifier le principal. Beaucoup de services lisent tous les.confd'un dossierquelquechose.d/posé à côté de leur config principale,/etc/ssh/sshd_config.d/par exemple. Votre fichier survit alors à une mise à jour de paquet qui réécrirait l'original. - Montez les disques de données par UUID, pas par
/dev/sdb. Les lettres de périphérique sont attribuées dans l'ordre où le noyau trouve les disques, elles peuvent donc s'échanger après un redémarrage ou l'ajout d'un disque.lsblk -fvous donne l'UUID à mettre dans/etc/fstab. - Gardez un œil sur
/var. Les images Docker, les logs des conteneurs et ceux du système s'y accumulent tous, sur la même partition que le reste.du -sh /var/lib/dockervous dit ce que pèsent les conteneurs,df -hs'il faut s'inquiéter. - Ne créez pas vos fichiers avec
sudolorque ce n'est pas nécessaire. Un fichier créé en root dans votre home reste la propriété de root, et vous vous battrez avec des erreurs de permissions dessus pendant des semaines.
CLI pour les nuls
Comprendre comment une commande Linux est construite, apprendre les commandes essentielles du terminal, ce que veulent dire leurs noms, et repartir avec un aide-mémoire.
Outils CLI pratiques
Une poignée d'outils en ligne de commande à installer sur un serveur maison, ce que chacun fait ou remplace, et les étapes pour les installer et s'en servir.