Éditer n’importe quel fichier (script, fichier de config système) avec nano : ouvrir, modifier, enregistrer, quitter, chercher/remplacer, copier/coller, puis le régler avec ~/.nanorc et en faire ton éditeur par défaut.
Pourquoi nano ?
C’est l’éditeur utilisé dans tes fiches et dans le cours de Thierry : simple, présent sur Pop!_OS et Debian (version 7.2 sur ton poste), et les raccourcis sont affichés en bas de l’écran. Pas de modes comme dans O10 - Vim : ce que tu tapes s’écrit directement.
1. Lire l’écran de nano
┌──────────────────────────────────────────────────────────────────┐
│ GNU nano 7.2 /etc/hosts Modifié │ ← nom du fichier, état
├──────────────────────────────────────────────────────────────────┤
│ 127.0.0.1 localhost │
│ 127.0.1.1 pop-os │ ← zone de texte :
│ █ │ on tape directement
│ │
├──────────────────────────────────────────────────────────────────┤
│ [ Lecture de 9 lignes ] │ ← messages / questions
│ ^G Aide ^O Écrire ^W Chercher ^K Couper ^T Exécuter │ ← raccourcis
│ ^X Quitter ^R Lire fich ^\ Remplacer ^U Coller ^/ Aller ligne │
└──────────────────────────────────────────────────────────────────┘
Symbole en bas
Signifie
Exemple
^
touche Ctrl
^X = Ctrl+X
M-
touche Alt (Meta)
M-U = Alt+U
Les libellés sont en français ou en anglais selon la langue du système ( Write Out = Écrire, Where Is = Chercher…). Les touches, elles, ne changent pas.
2. Le kit de survie
nano fichier.sh # ouvrir (ou créer) un fichiersudo nano /etc/network/interfaces # fichier système : avec sudonano -l fichier.sh # avec les numéros de lignenano +25 fichier.sh # ouvrir directement à la ligne 25nano -v /etc/passwd # lecture seule (impossible de casser quoi que ce soit)
1. nano fichier.txt → tu tapes directement ton texte
2. Ctrl+O puis Entrée → enregistrer (Entrée confirme le nom du fichier)
3. Ctrl+X → quitter
(s'il reste des modifs non enregistrées : O = oui / N = non / Ctrl+C = annuler)
Ctrl+S enregistre aussi, sans demander le nom (nano 7). Pratique quand on fait plein de petites modifs.
3. Tous les raccourcis utiles
3.1 Fichier
Raccourci
Action
Ctrl+O puis Entrée
Enregistrer (on peut changer le nom avant Entrée → « enregistrer sous »)
Ctrl+S
Enregistrer directement
Ctrl+X
Quitter
Ctrl+R
Insérer le contenu d’un autre fichier
Ctrl+G
Aide complète (Ctrl+X pour sortir de l’aide)
3.2 Se déplacer
Raccourci
Action
Flèches, Début, Fin, PgPréc, PgSuiv
comme partout
Ctrl+A / Ctrl+E
début / fin de la ligne
Ctrl+_ (ou Alt+G)
aller à la ligne n° (puis taper le numéro)
Alt+\ / Alt+/
début / fin du fichier
Alt+]
aller à la parenthèse/accolade correspondante
Ctrl+C
afficher la position du curseur (ligne, colonne)
3.3 Modifier : couper, copier, coller
Raccourci
Action
Ctrl+K
couper la ligne (plusieurs Ctrl+K à la suite = plusieurs lignes)
Alt+6
copier la ligne
Ctrl+U
coller
Alt+A (ou Ctrl+6)
commencer une sélection → flèches → puis Ctrl+K (couper) ou Alt+6 (copier)
Alt+U / Alt+E
annuler / refaire
Alt+3
commenter / décommenter la ligne (ou la sélection)
Tab / Shift+Tab sur une sélection
indenter / désindenter (aussi Alt+} / Alt+{)
Alt+Suppr
supprimer la ligne entière
3.4 Chercher et remplacer
Raccourci
Action
Ctrl+W
chercher (taper le mot puis Entrée)
Alt+W / Alt+Q
occurrence suivante / précédente
Ctrl+\ (ou Alt+R)
rechercher et remplacer
Déroulé d’un remplacement :
Ctrl+\ → « Chercher (à remplacer) : » ancien Entrée
→ « Remplacer par : » nouveau Entrée
→ pour chaque résultat : O = oui · N = non · T = tous · Ctrl+C = stop
(système en anglais : Y = yes · N = no · A = all)
Dans la question « Chercher », Alt+C = respecter la casse, Alt+R = utiliser une expression régulière (voir Récap - administration Linux shell).
3.5 Affichage
Raccourci
Action
Alt+N
afficher / cacher les numéros de ligne
Alt+S
retour à la ligne visuel des lignes longues (softwrap)
Alt+P
afficher les espaces et tabulations (utile pour Python/YAML)
Alt+X
cacher / afficher la barre de raccourcis
Alt+M
activer / désactiver la souris
4. Copier-coller avec le reste du bureau
Les raccourcis Ctrl+K/Ctrl+U utilisent le presse-papiers de nano, pas celui du système. Pour échanger avec ton navigateur, VS Code, etc. :
Je veux…
Comment
coller dans nano un texte copié ailleurs
Ctrl+Shift+V (raccourci du terminal)
copier un texte de nano vers ailleurs
le sélectionner à la souris puis Ctrl+Shift+C (si la souris de nano est active, maintenir Shift pendant la sélection)
5. Les options au lancement
Option
Effet
-l
numéros de ligne
-v
lecture seule (view)
-m
souris
-B
crée une sauvegarde fichier~ avant d’enregistrer
-i
auto-indentation
-E
les tabulations deviennent des espaces
-T 4
largeur d’une tabulation = 4
+N
ouvrir à la ligne N
6. Configurer ~/.nanorc
Plutôt que de retaper les options, on les écrit une fois dans ~/.nanorc (créé s’il n’existe pas - tu n’en as pas encore).
nano ~/.nanorc
# ~/.nanorc — les commentaires commencent par #set linenumbers # numéros de ligne en permanenceset mouse # clic pour placer le curseur, molette pour défilerset autoindent # garde l'indentation de la ligne précédenteset tabsize 4 # tabulation = 4 colonnesset tabstospaces # Tab insère des espaces (indispensable en Python / YAML)set softwrap # les lignes longues reviennent à la ligne à l'écranset constantshow # affiche toujours la position du curseur en basset indicator # barre de défilement à droiteset backup # garde la version précédente (fichier~) à chaque enregistrement
Coloration syntaxique
Elle est déjà active sur Pop!_OS (le fichier système /etc/nanorc charge les règles de /usr/share/nano/). Si elle manque (Arch, VM minimale), ajoute dans ~/.nanorc :
include "/usr/share/nano/*.nanorc"
sudo nano n'utilise pas forcément TA config
Avec sudo, nano tourne en root et peut lire la config de root, pas ton ~/.nanorc. Solution propre : sudoedit.
sudoedit /etc/hosts # = sudo -e : édite une copie avec TON éditeur et TA config, puis la remet en place
Bonus : nano ne tourne pas en root → moins de risque.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # copie de secours
En cas de problème : sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config.
8. Choisir son éditeur par défaut
Certaines commandes ouvrent toutes seules un éditeur : crontab -e, sudo visudo, git commit, systemctl edit. Lequel ? Celui indiqué par la variable EDITOR (ou, à défaut, celui du système).
flowchart LR
CMD["crontab -e<br/>visudo, git commit..."] --> Q{"Variable EDITOR<br/>définie ?"}
Q -->|"oui"| E["cet éditeur"]
Q -->|"non"| D["éditeur par défaut du système<br/>(Pop!_OS : nano · Arch : souvent vi)"]
# 1. Pour toi, partout : ajouter à la fin de ~/.bashrc (ou ~/.zshrc si tu es sous zsh)echo 'export EDITOR=nano' >> ~/.bashrcecho 'export VISUAL=nano' >> ~/.bashrcsource ~/.bashrc # recharger sans fermer le terminal# 2. Pop!_OS / Debian : éditeur par défaut du système (déjà nano sur ton poste)sudo update-alternatives --config editor# 3. Arch : visudo ouvre vi si EDITOR n'est pas transmis → forcer nano pour cette foissudo EDITOR=nano visudo
Pour crontab -e, Debian/Ubuntu demande l'éditeur la 1re fois. Pour changer d'avis : select-editor.
9. Nano ou Vim ?
Nano
Vim
Prise en main
5 minutes
quelques heures (vimtutor)
Modes
aucun : on tape
Normal / Insertion / Visuel / Commande
Raccourcis
affichés en bas
à connaître
Installé par défaut
Pop!_OS, Debian, Ubuntu (pas toujours sur Arch)
vi presque partout, même sur les systèmes minimaux