- Récapitulatif de différentes combinaisons de raccourcis clavier et de commandes pour gagner en vitesse et en efficacité dans un environnement shell
- Les raccourcis de base comme CTRL + W, U, K, Y servent à l’édition de ligne, CTRL + A/E, ALT + B/F au déplacement du curseur, et reset permet de restaurer le terminal
- Dans Bash et Zsh, CTRL + R permet de rechercher dans l’historique des commandes, !!·!$·ESC+. de réutiliser des commandes précédentes, et Brace Expansion ainsi que Globstar d’automatiser les tâches répétitives
- Des fonctions avancées comme Process Substitution, tee, bg/disown améliorent l’efficacité du contrôle des processus et de la gestion des logs
- Si l’on maîtrise le shell comme une boîte à outils familière, on gagne en productivité et en concentration ; l’essentiel est d’adopter les raccourcis un par un jusqu’à en faire une habitude
Raccourcis et fonctions de base qui marchent dans presque tous les shells
-
La combinaison CTRL + W, U, K, Y est un ensemble de raccourcis d’édition de ligne qui permet de supprimer ou restaurer rapidement des mots ou des portions de ligne selon la position du curseur
CTRL + W supprime le mot situé avant le curseur
CTRL + U coupe depuis le curseur jusqu’au début de la ligne, et CTRL + Y permet de recoller
CTRL + K coupe depuis le curseur jusqu’à la fin de la ligne
- CTRL + A / E permet d’aller au début ou à la fin de la ligne, ALT + B / F de se déplacer mot par mot en arrière ou en avant
- Ces raccourcis sont activés par défaut dans la plupart des terminaux ; sur Mac, il faut configurer la touche Option comme Meta pour qu’ils fonctionnent
- Les commandes reset ou stty sane permettent de restaurer le terminal lorsqu’un fichier binaire l’a corrompu par erreur à l’affichage
- Même si l’écran est illisible, la saisie reste possible : tapez
reset puis Entrée pour restaurer l’affichage
- CTRL + C / D servent respectivement à interrompre une commande et à envoyer un signal EOF (fin de fichier)
- Si l’on appuie sur
CTRL + D sur une invite vide, cela ferme le shell
- CTRL + L équivaut à la commande
clear pour nettoyer immédiatement l’écran
- Cela replace aussi l’invite tout en haut de l’écran tout en conservant la commande en cours de saisie
- cd - permet de revenir immédiatement au répertoire précédent, et pushd / popd permettent de naviguer entre plusieurs emplacements via une pile de répertoires
- > file.txt vide un fichier sans le supprimer, ce qui préserve les permissions et le propriétaire
- La variable $_ permet de réutiliser le dernier argument de la commande précédente
- Exemple :
mkdir -p /path/newdir && cd "$_"
- set -e, set -u sont des options qui renforcent la sécurité des scripts
set -e provoque un arrêt immédiat en cas d’erreur
set -u déclenche une erreur lorsqu’une variable non définie est référencée
- La combinaison
set -euo pipefail offre une protection plus robuste
Raccourcis et fonctions avancés dans Bash et Zsh
- CTRL + R effectue une recherche incrémentale inversée dans l’historique des commandes
- En saisissant un mot-clé, on peut retrouver immédiatement une commande passée et la réutiliser
- !! relance intégralement la commande précédente
sudo !! permet de relancer la commande précédente avec les droits administrateur
- CTRL + X, CTRL + E ouvre la commande en cours de saisie dans l’éditeur par défaut (Vim, Nano, etc.) pour modification puis exécution
- Dans Zsh, une configuration séparée est nécessaire
- La commande fc est la méthode traditionnelle pour ouvrir une commande précédente dans
$EDITOR et la modifier
- ESC + . ou ALT + . insère à la position du curseur le dernier argument de la commande précédente
- En répétant le raccourci, on peut faire défiler les arguments de commandes encore plus anciennes
- !$ fournit la même fonction en mode non interactif
-
Brace Expansion est une fonction d’expansion avec accolades qui réduit les saisies répétitives
cp pf.conf{,.bak} → cp pf.conf pf.conf.bak
mv filename.{txt,md} → mv filename.txt filename.md
mkdir -p project/{src,tests,docs} crée plusieurs répertoires à la fois
- Process Substitution
<(command) traite la sortie d’une commande comme s’il s’agissait d’un fichier
- Exemple :
diff <(sort file1.txt) <(sort file2.txt) permet une comparaison sans fichier temporaire
- Globstar(
**) permet de rechercher récursivement des fichiers dans les sous-répertoires
- Dans Bash, on l’active avec
shopt -s globstar, alors que dans Zsh il est activé par défaut
- Exemple :
ls **/*.js cherche les fichiers JS dans tous les sous-dossiers
-
La combinaison CTRL + Z, bg, disown permet d’exécuter un processus en arrière-plan puis de le détacher du shell
CTRL + Z pour suspendre → bg pour reprendre en arrière-plan → disown pour le détacher du shell
- Le processus peut ainsi continuer même après la fermeture de la session SSH
- command |& tee file.log envoie à la fois la sortie standard (stdout) et la sortie d’erreur (stderr) dans un pipe
|& est la forme abrégée de 2>&1 |
- Avec
tee, on peut à la fois afficher la sortie à l’écran et l’enregistrer dans un log
Conseils essentiels pour bien exploiter le shell
- Le shell est une boîte à outils et, lorsqu’on le maîtrise bien, il peut fortement améliorer la productivité
- Il est plus efficace d’adopter les raccourcis un par un que de vouloir tous les apprendre d’un coup
- Réduire les saisies répétitives et la frappe inutile permet de simplifier le flux de travail
- Une fois à l’aise, le terminal n’est plus un obstacle mais votre propre espace de travail
Aucun commentaire pour le moment.