Refonte complète des guides VPS et ajout guides Kirby/CI-CD
- Restructuration VPS : guides rapide et complet séparés - Nouveau guide Vim essentiel pour administration serveur - Guide déploiement Kirby (VirtualHost, multi-sites, permissions) - Guide CI/CD Kirby (GitLab CI, Forgejo Actions, Docker) - Anonymisation complète (sécurité pour publication publique) - Priorité aux solutions libres (Forgejo, GitLab) - README général et navigation améliorée Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
9218efa6e2
commit
d0a243509d
9 changed files with 4546 additions and 6 deletions
|
|
@ -28,6 +28,12 @@ Guides généralistes pour comprendre et administrer un système Linux.
|
|||
|
||||
### 📖 Apprendre les commandes
|
||||
|
||||
**[vim-guide-essentiel.md](vim-guide-essentiel.md)**
|
||||
- **Objectif :** Maîtriser Vim, l'éditeur présent sur tous les serveurs Linux
|
||||
- **Contenu :** Modes, navigation, édition, chercher/remplacer, cas d'usage admin
|
||||
- **Niveau :** Débutant
|
||||
- **Temps :** 15-30 min de lecture + pratique
|
||||
|
||||
**[comprendre-commandes-find-du.md](comprendre-commandes-find-du.md)**
|
||||
- **Objectif :** Maîtriser les commandes `find`, `du`, pipes et grep
|
||||
- **Contenu :** Explications détaillées, exemples progressifs, cas pratiques
|
||||
|
|
@ -39,8 +45,12 @@ Guides généralistes pour comprendre et administrer un système Linux.
|
|||
## 🎯 Par besoin
|
||||
|
||||
### Je débute sur Linux
|
||||
1. Lire : [architecture-filesystem.md](architecture-filesystem.md)
|
||||
2. Pratiquer avec : [comprendre-commandes-find-du.md](comprendre-commandes-find-du.md)
|
||||
1. Apprendre Vim : [vim-guide-essentiel.md](vim-guide-essentiel.md) (essentiel pour éditer les fichiers)
|
||||
2. Comprendre l'organisation : [architecture-filesystem.md](architecture-filesystem.md)
|
||||
3. Maîtriser les commandes : [comprendre-commandes-find-du.md](comprendre-commandes-find-du.md)
|
||||
|
||||
### Je configure un serveur
|
||||
1. **Obligatoire :** [vim-guide-essentiel.md](vim-guide-essentiel.md) (pour éditer les configs)
|
||||
|
||||
### Mon disque est plein
|
||||
1. Diagnostiquer : [diagnostic-espace-disque.md](diagnostic-espace-disque.md)
|
||||
|
|
|
|||
605
serveur/linux-essentials/vim-guide-essentiel.md
Normal file
605
serveur/linux-essentials/vim-guide-essentiel.md
Normal file
|
|
@ -0,0 +1,605 @@
|
|||
# Guide essentiel Vim
|
||||
|
||||
Guide de survie Vim pour l'administration serveur. Apprenez le minimum vital en 15 minutes.
|
||||
|
||||
---
|
||||
|
||||
## Pourquoi Vim ?
|
||||
|
||||
**Vim est installé par défaut** sur 99% des serveurs Linux. Quand vous vous connectez à un serveur distant :
|
||||
- **nano** n'est pas toujours installé
|
||||
- **vim/vi** est TOUJOURS là
|
||||
- C'est l'éditeur standard Unix depuis 1976
|
||||
|
||||
**Avantages :**
|
||||
- Ultra-rapide (pas d'interface graphique)
|
||||
- Puissant (édition avec le clavier uniquement)
|
||||
- Universel (même syntaxe sur tous les systèmes)
|
||||
|
||||
---
|
||||
|
||||
## Les 3 modes de Vim
|
||||
|
||||
Vim fonctionne avec **3 modes distincts** (c'est ça qui déroute au début) :
|
||||
|
||||
### 1. Mode Normal (par défaut)
|
||||
- **Navigation** dans le fichier
|
||||
- **Commandes** (copier, coller, supprimer)
|
||||
- **Touche `Esc`** pour revenir en mode Normal
|
||||
|
||||
### 2. Mode Insertion
|
||||
- **Éditer** du texte (comme un éditeur classique)
|
||||
- **Touche `i`** pour entrer en mode Insertion
|
||||
- **Touche `Esc`** pour revenir en mode Normal
|
||||
|
||||
### 3. Mode Commande
|
||||
- **Sauvegarder**, quitter, chercher/remplacer
|
||||
- **Touche `:`** pour entrer en mode Commande
|
||||
- Taper la commande puis **Entrée**
|
||||
|
||||
---
|
||||
|
||||
## Premiers pas : Ouvrir et quitter
|
||||
|
||||
### Ouvrir un fichier
|
||||
|
||||
```bash
|
||||
# Ouvrir un fichier existant
|
||||
vim /etc/ssh/sshd_config
|
||||
|
||||
# Créer un nouveau fichier
|
||||
vim nouveau-fichier.txt
|
||||
|
||||
# Ouvrir directement à la ligne 42
|
||||
vim +42 fichier.txt
|
||||
|
||||
# Ouvrir avec sudo (fichiers système)
|
||||
sudo vim /etc/apache2/apache2.conf
|
||||
```
|
||||
|
||||
### Quitter Vim
|
||||
|
||||
**Mode Normal** → Tapez `:` puis :
|
||||
|
||||
```vim
|
||||
:q " Quitter (si pas de modifications)
|
||||
:q! " Quitter SANS sauvegarder (force)
|
||||
:w " Sauvegarder (write)
|
||||
:wq " Sauvegarder ET quitter
|
||||
:x " Sauvegarder ET quitter (raccourci)
|
||||
ZZ " Sauvegarder ET quitter (sans :)
|
||||
```
|
||||
|
||||
**🆘 Vous êtes bloqué ?**
|
||||
```
|
||||
Esc Esc Esc :q! Entrée
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Éditer du texte
|
||||
|
||||
### Entrer en mode Insertion
|
||||
|
||||
**Depuis le mode Normal :**
|
||||
|
||||
```vim
|
||||
i " Insert : insérer AVANT le curseur
|
||||
a " Append : insérer APRÈS le curseur
|
||||
o " Open : créer une nouvelle ligne EN DESSOUS
|
||||
O " Open : créer une nouvelle ligne AU DESSUS
|
||||
|
||||
I " Insérer au DÉBUT de la ligne
|
||||
A " Insérer à la FIN de la ligne
|
||||
```
|
||||
|
||||
**💡 Astuce :** `i` et `a` sont les plus utilisés (90% du temps)
|
||||
|
||||
### Modifier du texte
|
||||
|
||||
**En mode Normal :**
|
||||
|
||||
```vim
|
||||
x " Supprimer le caractère sous le curseur
|
||||
dd " Supprimer toute la ligne
|
||||
dw " Supprimer un mot (delete word)
|
||||
d$ " Supprimer jusqu'à la fin de la ligne
|
||||
D " Supprimer jusqu'à la fin de la ligne (raccourci)
|
||||
|
||||
u " Annuler (undo)
|
||||
Ctrl+r " Refaire (redo)
|
||||
|
||||
yy " Copier la ligne (yank)
|
||||
p " Coller après le curseur (paste)
|
||||
P " Coller avant le curseur
|
||||
```
|
||||
|
||||
### Remplacer du texte
|
||||
|
||||
```vim
|
||||
r " Remplacer UN caractère (puis taper le nouveau)
|
||||
cw " Remplacer un mot (change word)
|
||||
cc " Remplacer toute la ligne (change)
|
||||
C " Remplacer jusqu'à la fin de la ligne
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Naviguer dans le fichier
|
||||
|
||||
### Déplacements de base
|
||||
|
||||
**Mode Normal :**
|
||||
|
||||
```vim
|
||||
" Flèches directionnelles (fonctionnent aussi)
|
||||
h " Gauche ←
|
||||
j " Bas ↓
|
||||
k " Haut ↑
|
||||
l " Droite →
|
||||
|
||||
" Déplacements par mot
|
||||
w " Mot suivant (word)
|
||||
b " Mot précédent (back)
|
||||
e " Fin du mot (end)
|
||||
|
||||
" Déplacements dans la ligne
|
||||
0 " Début de la ligne
|
||||
$ " Fin de la ligne
|
||||
^ " Premier caractère non-blanc de la ligne
|
||||
|
||||
" Déplacements dans le fichier
|
||||
gg " Début du fichier
|
||||
G " Fin du fichier
|
||||
42G " Aller à la ligne 42
|
||||
:42 " Aller à la ligne 42 (alternative)
|
||||
```
|
||||
|
||||
### Défilement
|
||||
|
||||
```vim
|
||||
Ctrl+d " Défiler d'une demi-page vers le bas (down)
|
||||
Ctrl+u " Défiler d'une demi-page vers le haut (up)
|
||||
Ctrl+f " Défiler d'une page vers le bas (forward)
|
||||
Ctrl+b " Défiler d'une page vers le haut (back)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Chercher et remplacer
|
||||
|
||||
### Chercher
|
||||
|
||||
**Mode Normal :**
|
||||
|
||||
```vim
|
||||
/motif " Chercher "motif" vers le bas
|
||||
?motif " Chercher "motif" vers le haut
|
||||
|
||||
n " Résultat suivant (next)
|
||||
N " Résultat précédent
|
||||
|
||||
* " Chercher le mot sous le curseur (vers le bas)
|
||||
# " Chercher le mot sous le curseur (vers le haut)
|
||||
```
|
||||
|
||||
**💡 Exemple :** Chercher "PasswordAuthentication" dans sshd_config
|
||||
```vim
|
||||
/PasswordAuthentication
|
||||
" Appuyez sur 'n' pour voir les occurrences suivantes
|
||||
```
|
||||
|
||||
### Remplacer
|
||||
|
||||
**Mode Commande** (taper `:`) :
|
||||
|
||||
```vim
|
||||
" Format général : :[plage]s/ancien/nouveau/[options]
|
||||
|
||||
:s/ancien/nouveau/ " Remplacer sur la ligne courante (1ère occurrence)
|
||||
:s/ancien/nouveau/g " Remplacer sur la ligne courante (toutes)
|
||||
|
||||
:%s/ancien/nouveau/ " Remplacer dans tout le fichier (1ère par ligne)
|
||||
:%s/ancien/nouveau/g " Remplacer dans tout le fichier (toutes)
|
||||
:%s/ancien/nouveau/gc " Avec confirmation (c = confirm)
|
||||
|
||||
:10,20s/ancien/nouveau/g " Remplacer des lignes 10 à 20
|
||||
```
|
||||
|
||||
**💡 Exemples pratiques :**
|
||||
|
||||
```vim
|
||||
" Remplacer tous les "no" par "yes"
|
||||
:%s/no/yes/g
|
||||
|
||||
" Commenter toutes les lignes (ajouter # au début)
|
||||
:%s/^/#/
|
||||
|
||||
" Décommenter (supprimer # au début)
|
||||
:%s/^#//
|
||||
|
||||
" Remplacer avec confirmation
|
||||
:%s/PermitRootLogin yes/PermitRootLogin no/gc
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cas d'usage : Administration serveur
|
||||
|
||||
### 1. Éditer sshd_config
|
||||
|
||||
```bash
|
||||
sudo vim /etc/ssh/sshd_config
|
||||
```
|
||||
|
||||
**Workflow typique :**
|
||||
|
||||
1. Chercher le paramètre :
|
||||
```vim
|
||||
/PermitRootLogin
|
||||
```
|
||||
|
||||
2. Aller en mode Insertion :
|
||||
```vim
|
||||
i
|
||||
```
|
||||
|
||||
3. Modifier la valeur :
|
||||
```
|
||||
PermitRootLogin no
|
||||
```
|
||||
|
||||
4. Sauvegarder et quitter :
|
||||
```vim
|
||||
Esc :wq
|
||||
```
|
||||
|
||||
### 2. Éditer un VirtualHost Apache
|
||||
|
||||
```bash
|
||||
sudo vim /etc/apache2/sites-available/monsite.conf
|
||||
```
|
||||
|
||||
**Ajouter une ligne à la fin :**
|
||||
|
||||
```vim
|
||||
G " Aller à la fin du fichier
|
||||
o " Créer une nouvelle ligne
|
||||
" Taper votre texte
|
||||
Esc :wq " Sauvegarder et quitter
|
||||
```
|
||||
|
||||
### 3. Décommenter plusieurs lignes
|
||||
|
||||
**Exemple :** Décommenter 5 lignes consécutives
|
||||
|
||||
```vim
|
||||
" Méthode 1 : Chercher/remplacer
|
||||
:10,15s/^#// " Décommenter lignes 10 à 15
|
||||
|
||||
" Méthode 2 : Visual block (avancé)
|
||||
Ctrl+v " Mode visuel block
|
||||
jjjj " Sélectionner 5 lignes vers le bas
|
||||
x " Supprimer les # sélectionnés
|
||||
```
|
||||
|
||||
### 4. Copier/coller une configuration
|
||||
|
||||
**Dupliquer un bloc de configuration :**
|
||||
|
||||
```vim
|
||||
" Se placer sur la première ligne
|
||||
V " Mode visuel ligne (Visual)
|
||||
jjjj " Sélectionner 5 lignes
|
||||
y " Copier (yank)
|
||||
p " Coller après
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration utile de Vim
|
||||
|
||||
### Créer un .vimrc minimal
|
||||
|
||||
```bash
|
||||
vim ~/.vimrc
|
||||
```
|
||||
|
||||
**Configuration recommandée :**
|
||||
|
||||
```vim
|
||||
" Activer la numérotation des lignes
|
||||
set number
|
||||
|
||||
" Activer la coloration syntaxique
|
||||
syntax on
|
||||
|
||||
" Indentation automatique
|
||||
set autoindent
|
||||
set smartindent
|
||||
|
||||
" Taille des tabulations (4 espaces)
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
|
||||
" Afficher la position du curseur
|
||||
set ruler
|
||||
|
||||
" Recherche intelligente (insensible à la casse)
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
" Highlighting des résultats de recherche
|
||||
set hlsearch
|
||||
set incsearch
|
||||
|
||||
" Désactiver le swap (fichiers .swp)
|
||||
set noswapfile
|
||||
|
||||
" Sauvegarder l'historique des annulations
|
||||
set undofile
|
||||
set undodir=~/.vim/undodir
|
||||
```
|
||||
|
||||
**Appliquer immédiatement :**
|
||||
```bash
|
||||
mkdir -p ~/.vim/undodir
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Commandes avancées utiles
|
||||
|
||||
### Indentation
|
||||
|
||||
```vim
|
||||
>> " Indenter la ligne (vers la droite)
|
||||
<< " Désindenter (vers la gauche)
|
||||
|
||||
" Indenter un bloc
|
||||
V " Mode visuel
|
||||
jjjj " Sélectionner des lignes
|
||||
> " Indenter
|
||||
```
|
||||
|
||||
### Nombres et répétitions
|
||||
|
||||
**Format :** `[nombre][commande]`
|
||||
|
||||
```vim
|
||||
3dd " Supprimer 3 lignes
|
||||
5yy " Copier 5 lignes
|
||||
10j " Descendre de 10 lignes
|
||||
3w " Avancer de 3 mots
|
||||
. " Répéter la dernière commande
|
||||
```
|
||||
|
||||
### Buffers (fichiers multiples)
|
||||
|
||||
```vim
|
||||
:e fichier2.txt " Ouvrir un autre fichier
|
||||
:bn " Buffer suivant (next)
|
||||
:bp " Buffer précédent (previous)
|
||||
:bd " Fermer le buffer courant
|
||||
:ls " Lister tous les buffers ouverts
|
||||
```
|
||||
|
||||
### Split (fenêtres)
|
||||
|
||||
```vim
|
||||
:sp fichier.txt " Split horizontal
|
||||
:vsp fichier.txt " Split vertical
|
||||
|
||||
Ctrl+w w " Naviguer entre les splits
|
||||
Ctrl+w q " Fermer le split courant
|
||||
Ctrl+w = " Égaliser la taille des splits
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Aide et ressources
|
||||
|
||||
### Aide intégrée
|
||||
|
||||
```vim
|
||||
:help " Aide générale
|
||||
:help dd " Aide sur une commande spécifique
|
||||
:help modes " Aide sur les modes
|
||||
```
|
||||
|
||||
### Tutoriel interactif
|
||||
|
||||
```bash
|
||||
# Depuis votre terminal
|
||||
vimtutor # Tutoriel interactif (30 min)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cheat Sheet : L'essentiel
|
||||
|
||||
### Ouvrir/Fermer
|
||||
```vim
|
||||
vim fichier " Ouvrir
|
||||
:w " Sauvegarder
|
||||
:wq ou :x " Sauvegarder et quitter
|
||||
:q! " Quitter sans sauvegarder
|
||||
```
|
||||
|
||||
### Modes
|
||||
```vim
|
||||
Esc " Mode Normal
|
||||
i " Mode Insertion (avant curseur)
|
||||
a " Mode Insertion (après curseur)
|
||||
: " Mode Commande
|
||||
```
|
||||
|
||||
### Édition
|
||||
```vim
|
||||
dd " Supprimer la ligne
|
||||
yy " Copier la ligne
|
||||
p " Coller
|
||||
u " Annuler
|
||||
Ctrl+r " Refaire
|
||||
```
|
||||
|
||||
### Navigation
|
||||
```vim
|
||||
gg " Début du fichier
|
||||
G " Fin du fichier
|
||||
0 " Début de la ligne
|
||||
$ " Fin de la ligne
|
||||
:42 " Aller ligne 42
|
||||
```
|
||||
|
||||
### Recherche
|
||||
```vim
|
||||
/motif " Chercher
|
||||
n " Suivant
|
||||
:%s/old/new/g " Remplacer tout
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Erreurs courantes et solutions
|
||||
|
||||
### "E45: 'readonly' option is set"
|
||||
**Cause :** Fichier en lecture seule (souvent fichiers système)
|
||||
**Solution :**
|
||||
```vim
|
||||
:w !sudo tee % " Sauvegarder avec sudo
|
||||
" Ou quitter et réouvrir avec sudo
|
||||
:q!
|
||||
sudo vim /etc/fichier
|
||||
```
|
||||
|
||||
### "E37: No write since last change"
|
||||
**Cause :** Modifications non sauvegardées
|
||||
**Solution :**
|
||||
```vim
|
||||
:w " Sauvegarder
|
||||
" Ou forcer à quitter
|
||||
:q!
|
||||
```
|
||||
|
||||
### "Found a swap file"
|
||||
**Cause :** Vim a crashé ou fichier ouvert ailleurs
|
||||
**Solution :**
|
||||
```vim
|
||||
" Taper 'r' pour récupérer le fichier
|
||||
" Ou 'd' pour supprimer le swap file
|
||||
" Puis supprimer manuellement :
|
||||
rm .fichier.swp
|
||||
```
|
||||
|
||||
### Bloqué en mode Insertion
|
||||
**Solution :**
|
||||
```
|
||||
Appuyez sur Esc plusieurs fois
|
||||
```
|
||||
|
||||
### Impossible de quitter
|
||||
**Solution :**
|
||||
```vim
|
||||
Esc Esc Esc
|
||||
:q!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Mémo pour débuter
|
||||
|
||||
**1. Ouvrir un fichier :**
|
||||
```bash
|
||||
vim fichier.txt
|
||||
```
|
||||
|
||||
**2. Entrer en mode Insertion :**
|
||||
```
|
||||
Appuyez sur 'i'
|
||||
```
|
||||
|
||||
**3. Modifier le texte :**
|
||||
```
|
||||
Tapez normalement
|
||||
```
|
||||
|
||||
**4. Revenir en mode Normal :**
|
||||
```
|
||||
Appuyez sur Esc
|
||||
```
|
||||
|
||||
**5. Sauvegarder et quitter :**
|
||||
```
|
||||
:wq puis Entrée
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Progression recommandée
|
||||
|
||||
### Semaine 1 : Bases
|
||||
- Ouvrir/fermer des fichiers
|
||||
- Modes Normal et Insertion
|
||||
- Sauvegarder avec `:w` et `:wq`
|
||||
- Navigation de base (hjkl, gg, G)
|
||||
|
||||
### Semaine 2 : Édition
|
||||
- Supprimer avec `dd`, `x`
|
||||
- Copier/coller avec `yy`, `p`
|
||||
- Annuler/refaire avec `u`, `Ctrl+r`
|
||||
- Chercher avec `/`
|
||||
|
||||
### Semaine 3 : Efficacité
|
||||
- Remplacer avec `:s///`
|
||||
- Mouvements rapides (`w`, `b`, `$`, `0`)
|
||||
- Répétitions avec nombres (`3dd`, `5yy`)
|
||||
- Visual mode avec `V`
|
||||
|
||||
### Mois 2+ : Maîtrise
|
||||
- Configuration `.vimrc`
|
||||
- Buffers et splits
|
||||
- Macros
|
||||
- Plugins
|
||||
|
||||
---
|
||||
|
||||
## Pourquoi persévérer ?
|
||||
|
||||
**Après 2 semaines :** Vous éditez aussi vite qu'avec nano
|
||||
**Après 1 mois :** Vous éditez plus vite qu'avec un éditeur graphique
|
||||
**Après 3 mois :** Vous ne pouvez plus vous en passer
|
||||
|
||||
**Vim est un investissement :** Difficile au début, incroyablement efficace après.
|
||||
|
||||
---
|
||||
|
||||
## Ressources complémentaires
|
||||
|
||||
- **vimtutor** : Tutoriel interactif inclus avec Vim (30 min)
|
||||
- **[Vim Adventures](https://vim-adventures.com/)** : Apprendre Vim en jouant
|
||||
- **[OpenVim](https://www.openvim.com/)** : Tutoriel interactif en ligne
|
||||
- **`:help` dans Vim** : Documentation complète intégrée
|
||||
|
||||
**Cheat sheets :**
|
||||
- [Vim Cheat Sheet (PDF)](https://vim.rtorr.com/)
|
||||
- [Devhints Vim](https://devhints.io/vim)
|
||||
|
||||
---
|
||||
|
||||
## TL;DR : Minimum vital
|
||||
|
||||
```vim
|
||||
vim fichier # Ouvrir
|
||||
i # Éditer
|
||||
Esc # Arrêter d'éditer
|
||||
:wq # Sauvegarder et quitter
|
||||
:q! # Quitter sans sauvegarder (si erreur)
|
||||
|
||||
/chercher # Chercher
|
||||
dd # Supprimer ligne
|
||||
u # Annuler
|
||||
```
|
||||
|
||||
**C'est tout ce dont vous avez besoin pour 80% des cas d'administration serveur !**
|
||||
Loading…
Add table
Add a link
Reference in a new issue