Better writing

This commit is contained in:
Djeex
2026-09-05 22:10:30 +02:00
parent 9a354ee62a
commit bf97cac2e9
16 changed files with 116 additions and 115 deletions
+27 -25
View File
@@ -1,18 +1,18 @@
---
title: Bases de la ligne de commande
title: CLI pour les nuls
description: 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.
---
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
Un serveur n'a pas de bureau, pas d'icônes et pas de souris. Tout se passe dans un terminal, et cette fenêtre noire avec un curseur clignotant est la seule chose qui décourage les gens de s'auto-héberger. À tort : le terminal n'est qu'une conversation. Vous tapez une ligne, la machine fait exactement ça et répond. Rien de plus magique qu'une barre de recherche, sauf qu'il en fait bien plus et ne cache jamais une option derrière trois menus.
Un serveur n'a pas de bureau, pas d'icônes et pas de souris. Tout se passe dans un terminal, et cette fenêtre noire avec un curseur clignotant est principalement ce qui décourage les gens de se lancer de le self-hosting. À tort : le terminal n'est qu'un chat. Vous posez une question ou écrivez un ordre, la machine répond. Rien de plus complexe qu'une barre de recherche, sauf qu'il en fait bien plus et ne cache jamais une option derrière trois menus.
La bonne nouvelle, c'est que vous n'avez pas besoin de connaître cent commandes. Dix d'entre elles couvrent presque tout ce que vous ferez sur un serveur maison, et elles suivent toutes le même schéma. Apprenez le schéma d'abord, et chaque commande croisée ensuite devient lisible, même celles que vous n'avez jamais vues.
La bonne nouvelle, c'est que vous n'avez pas besoin de connaître des centaines de commandes. Une dizaine d'entre elles couvrent presque tout vos besoins sur un serveur maison, et elles suivent toutes le même schéma. Apprenez à lire ce schéma et chaque commande que vous croiserez par la suite deviendra lisible, même celles que vous n'avez jamais vues.
## Comment une commande est construite
Chaque ligne de commande, sans exception, est la même phrase : **quoi lancer**, **comment le lancer**, **sur quoi le lancer**.
Chaque ligne de commande, sans exception, est rédigée de la même manière : **quoi lancer**, **comment le lancer**, **sur quoi le lancer**.
```text [Anatomie d'une commande]
sudo apt install -y nano
@@ -23,16 +23,16 @@ sudo apt install -y nano
└───────────────────── le lancer avec les droits administrateur
```
Lue à voix haute, cette ligne dit « en tant qu'administrateur, demande au gestionnaire de paquets d'installer le paquet nano, et ne me demande pas de confirmer ». Ce sont les espaces qui séparent les morceaux, et c'est pour ça qu'un dossier nommé `Mes Sauvegardes` doit être mis entre guillemets (`cd "Mes Sauvegardes"`), sinon le shell y lit deux choses différentes.
Lue à voix haute, cette ligne dit « en tant qu'administrateur, demande au gestionnaire de paquets d'installer le paquet nano, et ne me demande pas de confirmer ». Ce sont les espaces qui séparent les parties, et c'est notamment pour ça qu'un dossier nommé `Mes Sauvegardes` doit être mis entre guillemets (`cd "Mes Sauvegardes"`), sinon le shell (le système utilisé par le terminal) y lit deux choses différentes.
### Les options, courtes et longues
Les options changent le comportement d'une commande. Elles existent en deux saveurs, et la plupart des commandes acceptent les deux :
Les options changent le comportement d'une commande. Elles existent en deux versions, et la plupart des commandes acceptent les deux :
- **Courtes**, un tiret et une seule lettre : `ls -a`. Elles peuvent s'empiler, donc `ls -l -a -h` s'écrit généralement `ls -lah`.
- **Longues**, deux tirets et un mot entier : `ls --all`. Plus longues à taper, mais vous saurez encore ce qu'elles font six mois plus tard, ce qui en fait le meilleur choix dans un script.
Certaines options attendent une valeur juste après elles : `ssh-keygen -t ed25519` (`-t` pour type), `rsync --exclude @eaDir`. Et la casse compte, toujours. Dans `ls`, `-r` inverse l'ordre de tri alors que `-R` descend dans les sous-dossiers. Deux choses différentes, à une lettre près.
Certaines options attendent une valeur juste après elles : `ssh-keygen -t ed25519` (`-t` pour type), `rsync --exclude @eaDir`. Et la casse compte, toujours. Dans `ls`, `-r` inverse l'ordre de tri alors que `-R` descend dans les sous-dossiers. Deux choses différentes, pour une même lettre.
### Les arguments et les chemins
@@ -49,21 +49,23 @@ Quand la cible est un endroit sur le disque, vous l'écrivez sous forme de chemi
| `/var/log` | un chemin **absolu**, même résultat depuis n'importe où |
| `logs/aujourdhui` | un chemin **relatif**, compris depuis là où vous êtes |
Quel dossier contient quoi est un sujet à part entière, traité dans [dossiers et partitions](/general/linux/filesystem).
::info
L'usage des dossiers par l'OS est un sujet à part entière, traité dans [dossiers et partitions](/general/linux/filesystem).
::
L'invite de commande vous dit elle-même où vous êtes : dans `utilisateur@serveex:~/docker$`, vous êtes connecté en tant qu'`utilisateur` sur la machine nommée `serveex`, dans le dossier `docker` de votre home. Ce `$` final signifie un utilisateur normal. S'il affiche un jour `#`, vous êtes root et chaque faute de frappe compte double.
L'invite de commande indique elle-même où vous êtes : dans `utilisateur@serveex:~/docker$`, vous êtes connecté en tant qu'`utilisateur` sur la machine nommée `serveex`, dans le dossier `docker` de votre home. Ce `$` final signifie que vous êtes loggé avec un utilisateur normal. Si vous voyez `#` à la place, c'est que vous êtes connecté avec l'utilisateur root et chaque faute de frappe compte double.
### Trouver de l'aide
Deux habitudes vous rendent indépendant des tutoriels. `commande --help` affiche un résumé rapide de chaque option, et `man commande` ouvre le manuel complet (`man` pour *manual*), que vous quittez en appuyant sur :kbd{value="Q"}.
Deux astuces vous rendront indépendant des tutoriels. `commande --help` affiche un résumé rapide de chaque option, et `man commande` ouvre le manuel complet (`man` pour *manual*), que vous quittez en appuyant sur :kbd{value="Q"}.
::tip{icon=""}
✨ __Astuce :__ trois réflexes clavier qui changent tout : :kbd{value="Tab"} complète le nom de fichier ou de dossier que vous avez commencé à taper, si bien que vous ne tapez presque jamais un chemin complet ; la flèche :kbd{value="Up"} rappelle vos commandes précédentes, ce qui évite de retaper une longue ligne pour un caractère ; et :kbd{value="Ctrl"} + :kbd{value="C"} arrête ce qui est en train de tourner.
✨ __Astuce :__ trois réflexes clavier qui changent tout : :kbd{value="Tab"} complète le nom de fichier ou de dossier que vous avez commencé à taper, si bien que vous ne taperez presque jamais un chemin complet ; la flèche :kbd{value="Up"} rappelle vos commandes précédentes, ce qui évite de retaper une longue ligne pour un caractère ; et :kbd{value="Ctrl"} + :kbd{value="C"} arrête ce qui est en train de tourner.
::
### Enchaîner les commandes
Une fois le schéma compris, les commandes se branchent les unes aux autres :
Une fois le schéma compris, les commandes peuvent se combiner les unes aux autres :
- `&&` lance la suivante seulement si la précédente a réussi : `sudo apt update && sudo apt full-upgrade`
- `|`, le pipe, envoie la sortie d'une commande dans une autre : `ls -l | grep sauvegarde` liste le dossier, puis ne garde que les lignes contenant « sauvegarde »
@@ -71,7 +73,7 @@ Une fois le schéma compris, les commandes se branchent les unes aux autres :
## Les commandes que vous utiliserez vraiment
La plupart des noms de commandes sont des abréviations d'une expression anglaise. Une fois que vous savez ce qu'elles signifient, elles cessent de ressembler à du bruit de clavier.
La plupart des noms de commandes sont des abréviations. Une fois que vous savez ce qu'elles signifient, elles cessent de ressembler à des incantations obscures.
### `pwd`, print working directory
@@ -106,7 +108,7 @@ La première colonne, ce sont les permissions, le `d` tout au début signifiant
### `cd`, change directory
Vous déplace. Avec un chemin elle y va, avec `..` elle remonte d'un niveau, et sans rien du tout elle vous ramène chez vous.
Permet de changer de repertoire. Lorsque vous indiquez un chemin, elle vous y rend. Avec `..` elle remonte d'un niveau, et sans rien du tout elle vous ramène dans votre dossier utilisateur.
```console [Terminal]
utilisateur@serveex:~/docker$ cd /var/log
@@ -115,7 +117,7 @@ utilisateur@serveex:/$ cd
utilisateur@serveex:~$
```
Remarquez l'invite qui vous suit : elle montre toujours où vous vous trouvez, si bien qu'en pratique vous avez rarement besoin de `pwd`.
Notez l'invite de commande : elle montre toujours où vous vous trouvez, si bien qu'en pratique vous avez rarement besoin de `pwd`.
### `mkdir`, make directory
@@ -130,11 +132,11 @@ mkdir -p docker/immich/config
```
Rien. Ce n'est pas un bug, c'est la règle : la plupart des commandes ne disent rien quand elles réussissent et ne se manifestent que si quelque chose se passe mal. Le silence est une bonne nouvelle, et `ls` confirme que le dossier est bien là.
La sortie n'affiche rien. Ce n'est pas un bug, c'est la règle : la plupart des commandes ne disent rien quand elles réussissent et ne se manifestent que si quelque chose se passe mal. Le silence est une bonne nouvelle, et `ls` confirme que le dossier est bien là.
### `cp` et `mv`, copy et move
`cp` copie, `mv` déplace. Même forme dans les deux cas : d'abord la source, puis la destination. Copier un dossier demande `-r`, pour *recursive*, puisqu'un dossier veut dire tout ce qu'il contient aussi. `mv` sert également de commande pour renommer, parce que renommer un fichier revient simplement à le déplacer vers un nouveau nom.
`cp` copie, `mv` déplace. Même syntaxe dans les deux cas : d'abord la source, puis la destination. Copier un dossier demande `-r`, pour *recursive*, puisqu'un dossier veut dire tout ce qu'il contient aussi. `mv` sert également de commande pour renommer, parce que renommer un fichier revient simplement à le déplacer vers un nouveau nom.
```bash [Terminal]
cp compose.yaml compose.yaml.bak
@@ -147,7 +149,7 @@ ls
compose.yaml compose.yaml.bak config config-backup nouveau-nom.txt
```
Trois commandes silencieuses, et `ls` qui montre le résultat : la copie est à côté de l'original, le dossier a été dupliqué, et `ancien-nom.txt` a disparu parce que le déplacer vers un autre nom, c'est exactement ce que veut dire renommer.
Trois commandes silencieuses, et `ls` qui montre le résultat : la copie est à côté de l'original, le dossier a été dupliqué, et `ancien-nom.txt` a disparu parce que le déplacer vers un autre nom équivaut à le renommer/
### `rm`, remove
@@ -159,9 +161,9 @@ Supprime. Il n'y a pas de corbeille, pas d'annulation, pas de fenêtre de confir
### `cat` et `nano`, lire et modifier
`cat` (abréviation de *concatenate*) déverse un fichier entier à l'écran, parfait pour une config courte. Pour tout ce qui est plus long, `less` le fait défiler (nommé en clin d'œil à `more`, le pager plus ancien qu'il a remplacé), et vous en sortez avec :kbd{value="Q"}.
`cat` (abréviation de *concatenate*) déverse un fichier entier à l'écran, parfait pour une config courte. Pour tout ce qui est plus long, `less` le fait défiler. Pour quitter, tapez simplement :kbd{value="Q"}.
Pour modifier réellement un fichier, `nano` ouvre un éditeur simple : les flèches pour se déplacer, :kbd{value="Ctrl"} + :kbd{value="O"} pour enregistrer, :kbd{value="Ctrl"} + :kbd{value="X"} pour quitter.
Pour éditer un fichier, `nano` ouvre un éditeur simple : les flèches pour se déplacer, :kbd{value="Ctrl"} + :kbd{value="O"} pour enregistrer, :kbd{value="Ctrl"} + :kbd{value="X"} pour quitter.
```bash [Terminal]
cat .env
@@ -188,9 +190,9 @@ grep -rin "password" /home/utilisateur/docker
Chaque ligne indique le fichier, puis le numéro de ligne à l'intérieur, puis la ligne correspondante elle-même. Très pratique le jour où vous ne vous souvenez plus dans quelle stack se trouve un réglage.
### `sudo`, lancer en administrateur
### `sudo`, lancer en privilèges administrateur
*Substitute user do*. Un utilisateur normal ne peut pas toucher aux fichiers du système, et c'est précisément ce qui vous protège de casser la machine par accident. Préfixer une commande par `sudo` lance cette seule commande avec les droits administrateur, et demande votre mot de passe la première fois.
*Substitute user do*. Afin d'éviter de casser votre serveur par accident, un utilisateur normal ne peut pas toucher aux fichiers du système. Préfixer une commande par `sudo` lance cette seule commande avec les droits administrateur. Cette commande vous demandera votre mot de passe au moins une fois par session, et parfois plusieurs fois selon le temps qui se sera écoulé depuis sa dernière utilisation.
```bash [Terminal]
nano /etc/ssh/sshd_config
@@ -209,12 +211,12 @@ sudo nano /etc/ssh/sshd_config
```
::note
Si une commande répond `Permission denied`, c'est en général tout le problème : il lui fallait `sudo`. Résistez quand même au réflexe de mettre `sudo` partout, un fichier créé en root continuera de vous embêter ensuite parce que votre utilisateur normal n'en est plus propriétaire.
Lordsqu'une commande répond `Permission denied`, c'est quasiment certain que c'est parce qu'elle a besoin des privilèges administrateurs : il lui fallait `sudo`. Cependant, résistez tout de même au réflexe de mettre `sudo` partout, un fichier créé avec les privilèges root continuera de vous embêter par la suite parce que votre utilisateur normal n'en sera plus propriétaire.
::
## Aide-mémoire
Celles qui valent la peine d'être gardées sous la main, et d'où viennent leurs noms.
Les commandes qui valent la peine d'être gardées sous la main, et d'où viennent leurs noms.
| Commande | Abréviation de | Ce qu'elle fait |
| --- | --- | --- |
@@ -251,5 +253,5 @@ Celles qui valent la peine d'être gardées sous la main, et d'où viennent leur
| `history` | mot anglais courant | Liste les commandes tapées précédemment |
::tip{icon=""}
✨ __Astuce :__ personne ne retient tout ça. Vous rechercherez les trois mêmes options pendant des semaines, puis un jour vous réaliserez que vous les tapez sans réfléchir. En attendant, `--help` et ce tableau sont parfaitement légitimes.
✨ __Astuce :__ Rassurez-vous, personne ne retient tout ça. Dans la réalité, vous rechercherez les trois mêmes options pendant des semaines, puis un jour vous réaliserez que vous les tapez sans réfléchir. En attendant, `--help` et ce tableau seront vos meilleurs amis.
::
+8 -8
View File
@@ -6,11 +6,11 @@ description: Comment le système de fichiers de Debian est organisé, ce que con
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
Windows donne à chaque disque sa propre lettre. Linux non : il y a exactement un arbre, il commence à `/`, 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. Déroutant au début, très pratique ensuite, puisqu'un programme n'a jamais à savoir sur quel disque physique il écrit.
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'arbre
## L'arborescence
Cet arbre n'a rien d'arbitraire non plus. Toutes les installations de Debian ont les mêmes dossiers aux mêmes endroits, et c'est pour ça qu'un tutoriel écrit pour le serveur de quelqu'un d'autre s'applique au vôtre.
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 |
| --- | --- |
@@ -24,7 +24,7 @@ Cet arbre n'a rien d'arbitraire non plus. Toutes les installations de Debian ont
| `/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, inventé à la volée, pas de vrais fichiers |
| `/proc` et `/sys` | L'état vivant du noyau, changeant à la volée, pas de vrais fichiers |
## Un dossier n'est pas une partition
@@ -46,13 +46,13 @@ sdb 8:16 0 3.6T 0 disk
## Quelques habitudes à prendre
- **Donnez un seul foyer à vos stacks Docker, et gardez-les là.** `/srv` est le dossier que la norme réserve aux données servies par la machine, ce qui en fait l'endroit le plus propre pour les fichiers compose et leurs bind mounts. [Serveex](/serveex/introduction) 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.
- **Vos fichiers à vous vont dans votre home.** Les scripts dans `~/bin`, les notes, les téléchargements, tout ce qui est personnel. `/root` est le dossier du compte root, pas un endroit commode où déposer des choses.
- **Ne travaillez que dans un seul dossier pour l'usage de votre serveur.** `/srv` est 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](/serveex/introduction) 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. `/root` est le dossier du compte root, pas un endroit commode où déposer des choses.
- **Ne modifiez jamais quoi que ce soit sous `/usr` ou `/bin` à la main.** `apt` en 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 un fichier additionnel plutôt que de modifier le principal.** Beaucoup de services lisent tous les `.conf` d'un dossier `quelquechose.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.
- **Dans `/etc`, préférez créer un fichier additionnel plutôt que de modifier le principal.** Beaucoup de services lisent tous les `.conf` d'un dossier `quelquechose.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 -f` vous 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/docker` vous dit ce que pèsent les conteneurs, `df -h` s'il faut s'inquiéter.
- **Ne créez pas vos fichiers avec `sudo` quand 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.
- **Ne créez pas vos fichiers avec `sudo` lorque 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.
::note{to="/general/linux/cli-basics"}
Tout ce qui précède suppose que vous savez déjà vous déplacer dans un terminal. Si `cd`, `ls` et `sudo` ne vous parlent pas encore, commencez par les **bases de la ligne de commande**.
+24 -23
View File
@@ -1,6 +1,6 @@
---
title: Outils CLI pratiques
description: Une poignée d'outils en ligne de commande à installer sur un serveur maison, ce que chacun remplace, et les étapes pour les installer et s'en servir.
description: 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.
---
@@ -8,13 +8,23 @@ description: Une poignée d'outils en ligne de commande à installer sur un serv
Une installation minimale de Debian embarque le strict minimum, ce qui veut dire que les outils fournis sont ceux de 1995. Ils fonctionnent, mais lire la sortie de `df` ou chercher ce qui a rempli un disque avec `du` est inutilement pénible quand de meilleures versions existent et ne coûtent rien à installer.
Tout ce qui suit sauf le dernier vient directement des dépôts Debian, il n'y a donc aucune source tierce à qui faire confiance et `apt` les maintient à jour en même temps que le reste du système.
La plupart des applications listées ici viennent directement des dépôts Debian, il n'y a donc aucune source tierce à qui faire confiance et `apt` les maintient à jour en même temps que le reste du système.
::note{to="/general/linux/cli-basics"}
Toutes les commandes ici se tapent dans un terminal via SSH. Si `sudo`, `apt` et `cd` ne vous parlent pas encore, commencez par les **bases de la ligne de commande**.
::
## La version courte
## La version pressée
Une seule ligne de commande pour installer tous ceux qui viennent des dépots de Debian, et chaque section ci-dessous vous explique ce que vous venez d'installer.
```bash [Terminal]
sudo apt update
sudo apt install btop duf ncdu tealdeer ufw
```
## Le sommaire
| Outil | Remplace | À quoi ça sert |
| --- | --- | --- |
@@ -25,18 +35,9 @@ Toutes les commandes ici se tapent dans un terminal via SSH. Si `sudo`, `apt` et
| `lazydocker` | `docker ps` et compagnie | Gérer les conteneurs en SSH |
| `ufw` | `iptables` brut | Un pare-feu réellement lisible |
## La version pressée
Une seule ligne installe tous ceux qui sont empaquetés, et chaque section ci-dessous explique ce que vous venez d'obtenir.
```bash [Terminal]
sudo apt update
sudo apt install btop duf ncdu tealdeer ufw
```
## `btop`, surveiller ce que fait la machine
Le remplaçant moderne de `top` et `htop` : CPU, RAM, disques, réseau et processus sur un seul écran, avec des graphiques, des couleurs et une souris qui marche. C'est ce que vous ouvrez quand quelque chose semble lent.
Le remplaçant moderne de `top` et `htop` : CPU, RAM, disques, réseau et processus sur un seul écran, avec des graphiques, des couleurs et une souris qui marche. C'est ce que vous ouvrez quand quelque chose semble lent, l'équivalent du gestionnaire de tache sur Windows ou du moniteur d'activité sur Mac.
::steps{level="4"}
#### L'installer
@@ -53,14 +54,14 @@ sudo btop
![btop affichant le CPU, la mémoire, les disques, le réseau et les processus](/img/global/linux/btop.png)
Cliquez sur un processus pour le sélectionner, :kbd{value="Esc"} ouvre le menu, :kbd{value="Q"} quitte. Les touches `+` et `-` replient et déplient les panneaux si l'écran paraît chargé.
Cliquez sur un processus pour le sélectionner, :kbd{value="Esc"} ouvre le menu, :kbd{value="Q"} quitte. Les touches `+` et `-` replient et déplient les onglets si l'écran paraît chargé.
#### Terminé !
::
## `duf`, l'espace disque qui se lit comme un tableau
`df -h` affiche tous les loop devices que Docker a créés un jour et vous laisse plisser les yeux sur les colonnes. `duf` montre les mêmes informations groupées, alignées et colorées, avec une barre d'utilisation par système de fichiers.
`df -h` affiche tous tous vos dossiers/fichiers et vous laisse vous exploser les yeux sur les colonnes, les chiffres, les tailles. `duf` montre les mêmes informations groupées, alignées et colorées, avec une barre d'utilisation par système de fichiers.
::steps{level="4"}
#### L'installer
@@ -102,7 +103,7 @@ sudo ncdu /srv/docker
Les flèches pour se déplacer, :kbd{value="Enter"} pour ouvrir un dossier, :kbd{value="D"} pour supprimer l'élément sélectionné, :kbd{value="Q"} pour quitter. Sur un gros disque le premier scan prend un moment, il lit tout.
::warning
:kbd{value="D"} supprime immédiatement, avec une seule confirmation et sans corbeille. Lancez `ncdu` sans `sudo` quand vous ne faites que regarder, comme ça une touche tapée de travers ne peut rien toucher de ce qui appartient au système.
:kbd{value="D"} supprime immédiatement, avec une seule confirmation et sans corbeille. Lancez `ncdu` sans `sudo` quand vous ne faites que regarder, comme ça une touche tapée de travers ne vous fera pas vous rouler en boule en pleurant.
::
#### Terminé !
@@ -125,7 +126,7 @@ sudo apt install tealdeer
tldr --update
```
Les exemples sont récupérés une fois et stockés en local, la commande fonctionne donc hors ligne ensuite. À relancer tous les quelques mois.
Les exemples sont récupérés une fois et stockés en local. La commande fonctionne donc hors ligne ensuite. À relancer tous les quelques mois.
#### Lui demander quelque chose
@@ -176,9 +177,9 @@ Il a besoin d'accéder au socket Docker, d'où le `sudo` à moins que votre util
| Touche | Ce qu'elle fait |
| --- | --- |
| `1` à `6` | Aller à un panneau : projets, services, conteneurs, images, volumes, réseaux |
| Flèches | Se déplacer dans le panneau, la partie droite suit la sélection |
| :kbd{value="Enter"} | Passer sur le panneau principal à droite, :kbd{value="Esc"} revient |
| `1` à `6` | Aller à un onglet : projets, services, conteneurs, images, volumes, réseaux |
| Flèches | Se déplacer dans le onglet, la partie droite suit la sélection |
| :kbd{value="Enter"} | Passer sur le onglet principal à droite, :kbd{value="Esc"} revient |
| `x` | Ouvrir le menu de tout ce que vous pouvez faire avec la sélection |
| `m` | Suivre les logs |
| `s` / `r` / `p` | Arrêter, redémarrer, mettre en pause le conteneur sélectionné |
@@ -186,7 +187,7 @@ Il a besoin d'accéder au socket Docker, d'où le `sudo` à moins que votre util
| `d` | Le supprimer |
| `b` | Commandes groupées, dont le nettoyage des images et des volumes |
| `/` | Filtrer la liste |
| `+` et `_` | Agrandir ou réduire les panneaux |
| `+` et `_` | Agrandir ou réduire les onglets |
| `q` | Quitter |
La casse compte : `E` ouvre un shell dans le conteneur, `e` masque ceux qui sont arrêtés.
@@ -194,7 +195,7 @@ La casse compte : `E` ouvre un shell dans le conteneur, `e` masque ceux qui sont
La [liste complète](https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md) se trouve dans la documentation du projet.
::note
Être en dehors d'`apt` veut aussi dire qu'il ne sera pas mis à jour par `apt full-upgrade`. Refaites ces étapes quand vous voudrez une version plus récente.
N'etant pas un package de Debian signifie qu'il ne sera pas mis à jour par `apt full-upgrade`. Ré-éxecutez ces étapes lorsque vous voudrez une version plus récente.
::
#### Terminé !
@@ -202,7 +203,7 @@ La [liste complète](https://github.com/jesseduffield/lazydocker/blob/master/doc
## `ufw`, un pare-feu réellement lisible
Le pare-feu de Debian (`iptables`/`nftables` sous le capot) est puissant et illisible tel quel. `ufw`, *uncomplicated firewall*, est une fine couche par-dessus qui le transforme en règles courtes et compréhensibles : tout bloquer par défaut et n'ouvrir que ce que vous exposez réellement.
Le pare-feu de Debian (`iptables`/`nftables` sous le capot) est puissant mais illisible tel quel. `ufw`, *uncomplicated firewall*, est une surcouche qui le transforme en règles courtes et compréhensibles : tout bloquer par défaut et n'ouvrir que ce que vous exposez réellement.
::steps{level="4"}
#### L'installer