Maîtrisez l’historique de commandes de votre shell

Un petit article pour voir ou revoir les commandes qui permettent de manipuler l’historique de commande de votre shell. En effet, si vous êtes nombreux à savoir que l’on peut utiliser les flèches directionnelles pour revenir dans vos commandes et éventuellement les modifier, vous savez sans doute moins qu’il existe une série de raccourcis qui vous permettent de faire cela plus facilement et plus rapidement.

Parcourir l’historique

Avec Ctrl + r il est possible de rechercher un mot dans l’historique, qu’il soit en début de commande ou non. Pour parcourir les résultats appuyez à nouveau sur Ctrl + r, pour exécuter la commande tapez RET et pour la modifier utilisez les flèches directionnelles.

arch ➜ find . -name '*.c' -printf "cat %p | wc -l \\n" 2>/dev/null | sh 2>/dev/null| awk '{res += $1} END {print res}'
bck-i-search: awk_

Répéter la dernière commande

Je sais pas vous, mais j’ai tendance à me croire tout puissant et exécuter des commandes qui demandent des droits root en tant qu’utilisateur. Alors je pourrais toujours remonter une fois, me remettre en début de ligne et ajouter sudo. Mais je suis paresseux et tout ça c’est trop long et pas pratique. Intervient le bang bang comme on l’appelle en anglais (et puis ça sonne bien: “quoi je peux pas mettre à jour mon système ?! Tiens, sudo bang bang tu m’obéis!”). C’est une variable qui représente la dernière commande exécutée.

arch ➜ pacman -Syu
error: you cannot perform this operation unless you are root.
arch ➜ sudo !!

Répéter un commande précise

Du même esprit que la commande précédente, elle permet de trouver la dernière commande précise que vous voulez.

arch ➜ !ps
arch ➜ ps auxh | grep chromium

 Répéter le dernier argument

Plutôt explicite, utile pour effectuer plusieurs manipulations sur un même fichier rapidement.

arch ➜ mkdir -p tmp
arch ➜ cd !$

Répéter une commande par son numéro

Mois pratique, elle nécessite de connaître l’emplacement de cette commande dans l’historique.

arch ➜ !102
arch ➜ nano /etc/X11/xorg.conf.d/10-evdev.conf
arch ➜ !-3 # remonte trois commandes
arch ➜ cat /etc/resolv.conf

Enfin, au cas où vous ne le saviez pas, la commande history permet d’afficher toutes les commandes figurant dans votre historique.

Vus : 748
Publié par Maxime : 5