Avez-vous déjà exécuté une commande dans Bash et obtenu une erreur en raison d’un mot mal orthographié ? Ou peut-être avez-vous oublié les trois dernières commandes que vous avez exécutées ? Au lieu de les réécrire ou de les mémoriser, la commande Bash fc
peut vous aider à effectuer rapidement des modifications et à réexécuter les commandes précédentes.
Dans cet article, vous apprendrez comment utiliser fc
pour modifier et réexécuter des commandes à partir de votre historique de commandes. Après avoir lu ce guide, vous maîtriserez fc
comme le guerrier de la ligne de commande que vous souhaitez être !
Prérequis
Cet article sera un tutoriel. Si vous prévoyez de suivre étape par étape, vous avez besoin d’un ordinateur Linux ou d’un ordinateur Windows 10 avec Windows Subsystem for Linux (WSL) activé. Ce tutoriel utilisera Ubuntu 20.04 LTS.
À propos de la commande fc
de Bash
fc
n’est pas une application Linux mais un utilitaire de shell intégré dans Bash. Bash est disponible dans la plupart des principales distributions Linux. En quelques frappes de touches, la commande fc
de Bash vous permet de lister, modifier ou exécuter des commandes précédentes.
La commande
fc
est également disponible dans le Shell Z (ZSH). Mais l’exemple dans cet article utiliserafc
dans Bash.
Avez-vous exécuté une longue commande qui s’est avérée incorrecte? fc
vous évitera de retaper toute la commande. Au lieu de cela, fc
vous permet d’éditer la commande avec l’éditeur de texte de votre choix. Après avoir sauvegardé vos modifications, la ou les commandes modifiées s’exécuteront automatiquement!
Prêt à mettre fc
à l’épreuve? Plongeons-y!
Liste des commandes précédentes
Vous êtes-vous éloigné de votre ordinateur, revenu, et avez oublié quelle commande vous avez exécutée en dernier? Ou peut-être ne vous souvenez-vous pas si vous avez exécuté plusieurs commandes dans la bonne séquence. Que faire? Détendez-vous, fc
vous aidera à vous souvenir. Voici comment faire.
1. Ouvrez un terminal Bash sur votre ordinateur.
2. Pour que fc
soit utile, il doit avoir une sorte d’historique des commandes avec lequel travailler. Comme vous venez d’ouvrir une nouvelle fenêtre de terminal, il peut ne pas y avoir d’historique des commandes encore. Pour constituer un historique des commandes à des fins de test, copiez chaque commande ci-dessous et exécutez-la dans votre terminal. Ces commandes sont non intrusives et ne mettent pas votre ordinateur en danger.
3. Ensuite, énumérez toutes les commandes de l’historique en exécutant la commande ci-dessous. L’option -l
indique à la commande fc
de simplement répertorier toutes les commandes précédentes sans les exécuter.
Comme vous pouvez le voir ci-dessous, la commande fc
affiche les quatre commandes que vous avez précédemment émises. Les chiffres à gauche indiquent l’ordre dans lequel vous avez exécuté chaque commande.

Modification et Réexécution de la Dernière Commande
Imaginez une situation où vous installez une application et faites une faute d’orthographe. En conséquence, la commande échoue. Au lieu de retaper toute la commande, pourquoi ne pas la modifier et la réexécuter automatiquement ? Pour ce faire, suivez ces étapes.
1. Simulez l’installation d’une application qui n’existe pas en exécutant la commande ci-dessous dans votre terminal. Remarquez que vous allez délibérément mal orthographier le nom de l’application caffiene
.
En conséquence, l’installation tentée échoue. Vous obtiendrez un message similaire à celui ci-dessous.

2. Pour corriger la dernière commande que vous avez exécutée, exécutez la commande ci-dessous dans le terminal. Cela ouvrira le tampon d’historique des commandes dans l’éditeur de texte par défaut. Dans cet exemple, l’éditeur de texte par défaut est nano.
La capture d’écran ci-dessous montre la dernière commande à l’intérieur de l’éditeur nano.

Si nano n’est pas votre éditeur de texte préféré, vous pouvez indiquer à
fc
d’utiliser un éditeur différent, tel que vi. Pour ce faire, incluez l’option-e
suivie du nom de l’éditeur de texte. Par exemple,fc -e vi
ouvrira l’historique des commandes dans l’éditeur de texte vi.
3. Une fois dans l’éditeur de texte nano, corrigez l’orthographe du nom de l’application de caffiene
à caffeine
.
4. Après avoir corrigé le nom de l’application, appuyez sur CTRL+X
pour quitter nano.
5. À la prochaine invite vous demandant de Enregistrer le tampon modifié?, appuyez sur Y
—> Entrée
pour sauvegarder les modifications.

Immédiatement après avoir quitté l’éditeur de texte, fc
exécute automatiquement la commande que vous avez modifiée.

Modification et Réexécution d’une Commande Précédente
Avec fc
, non seulement vous pouvez modifier la dernière commande que vous avez exécutée, mais vous pouvez également modifier n’importe laquelle des commandes précédentes que vous avez exécutées. Par exemple, pour modifier la commande echo 'working on the command line with fc'
, suivez ces étapes.
1. Listez la commande précédente dans le terminal en exécutant la commande ci-dessous.
2. Trouvez la commande que vous souhaitez modifier dans la liste de l’historique des commandes et notez le numéro qui lui est associé à gauche. Dans cet exemple, le numéro de la commande est 2.

3. Pour modifier la commande avec le numéro d’entrée 2, exécutez la commande ci-dessous dans le terminal. La commande s’ouvrira dans l’éditeur de texte pour être modifiée.
4. Une fois dans l’éditeur de texte, modifiez la commande selon vos besoins.
5. Après avoir modifié la commande, appuyez sur CTRL+X
pour quitter nano.
6. À la prochaine invite vous demandant de Enregistrer le tampon modifié?, appuyez sur Y
—> Enter
pour sauvegarder les modifications.

Après avoir sauvegardé la commande et quitté l’éditeur de texte, la commande que vous avez modifiée s’exécute automatiquement dans le shell.
Modification et Réexécution de Plusieurs Commandes
Si vous pensez que fc
peut seulement éditer et exécuter une commande précédente à la fois, vous êtes pour une surprise. Pourquoi ? fc
vous permet également d’éditer plusieurs commandes précédentes ! Comment l’édition de plusieurs commandes précédentes est-elle utile ? Pour commencer, vous pouvez changer l’ordre d’exécution des commandes.
Supposons que vous vouliez éditer les commandes précédentes numéros 2 à 7. Pour ce faire, procédez comme suit.
1. Exécutez la commande suivante dans votre terminal Bash et appuyez sur Enter. La commande suivante se lit comme suit : fc <espace> 2 <espace> 7
, ce qui signifie que fc
ouvrira les commandes 2 à 7 pour édition.
2. Ensuite, éditez les commandes selon vos besoins. Pour cet exemple :
- Supprimez la commande
sudo apt install caffiene -y
. - Inversez l’ordre de
uname -a
etps aux
. - Supprimez
clear
.

3. Après avoir édité les commandes, appuyez sur CTRL+X
pour quitter nano.
4. À la prochaine invite vous demandant de Enregistrer le tampon modifié?, appuyez sur Y
—> Enter
pour sauvegarder les modifications.
Les commandes que vous avez éditées s’exécuteront automatiquement après la sortie de l’éditeur de texte.

Réexécution d’une commande précédente sans modification
Supposons que vous ayez seulement besoin d’exécuter une commande précédente sans la modifier d’abord. fc
dispose d’une option à cet effet. Suivez les étapes ci-dessous pour exécuter une commande précédente à partir d’une entrée spécifiée dans l’historique.
- Listez la commande précédente dans le terminal en exécutant la commande ci-dessous.
2. Dans la liste de l’historique des commandes, trouvez la commande que vous souhaitez exécuter à nouveau et notez le numéro qui lui est associé. Dans cet exemple, le numéro de la commande est 2.

3. Pour exécuter la commande précédente spécifique, exécutez la commande ci-dessous dans le shell. L’option -s
indique à fc
de sauter l’édition et de continuer à exécuter la commande numéro 2.
La capture d’écran ci-dessous montre que fc a exécuté la commande numéro 2 à partir de l’historique des commandes.

Conclusion
Cet article visait à susciter votre intérêt pour une commande utile mais souvent oubliée appelée fc
. Vous avez appris comment utiliser fc
pour éviter de retaper les commandes précédemment exécutées, ce qui peut être une perte de temps.
Avec les connaissances que vous avez maintenant sur fc
, est-ce quelque chose que vous pensez utiliser ? Ou continuerez-vous à préférer retaper les commandes dans le shell ? Faites un choix judicieux !