Aujourd'hui, je vais vous apprendre à répéter votre dernière commande sous Linux. Vous n'avez pas à retaper les commandes précédemment exécutées dans votre Shell. Bien sûr, nous utilisons la flèche vers le haut pour sélectionner les dernières commandes exécutées et appuyez sur ENTER pour les exécuter. Cependant, il existe également d'autres moyens de le faire. Il pourrait y avoir plusieurs façons de répéter les dernières commandes dans les systèmes de type Unix, mais ce sont les seules façons dont je connaisse maintenant. Toutes ces commandes ont été testées sur mon bureau Arch Linux et Ubuntu avec le shell BASH.
Mise en garde : Lorsque vous essayez les méthodes suivantes, les commandes précédemment exécutées s'exécutent immédiatement. Assurez-vous simplement que votre dernière commande n'était pas nuisible comme formater une partition ou supprimer des fichiers, des dossiers ou toute autre donnée importante.
Répéter la dernière commande sous Linux
Exécutons quelques commandes.
$ ls -l
$ pwd
$ date
$ uname -r
Comme je l'ai mentionné plus tôt, nous pouvons exécuter la dernière commande en appuyant simplement sur UP flèche et appuyez sur ENTER clé. C'est le moyen le plus couramment utilisé par de nombreux utilisateurs pour exécuter la commande précédente. Cette méthode fonctionnera sur tous les SHELL, quelle que soit la distribution Linux que vous utilisez.
Cependant, comme je l'ai déjà dit, il existe quelques autres méthodes pour le faire.
Maintenant, laissez-moi vous montrer comment exécuter la dernière commande avec quelques exemples pratiques.
Méthode 1 - Utiliser des points d'exclamation
Pour exécuter n'importe quelle dernière commande exécutée, tapez simplement des points d'exclamation doubles et appuyez sur ENTRÉE :
$ !!
Cela exécutera la dernière commande. Exemple de sortie :
uname -r 5.3.0-40-generic
Ajouter sudo
devant !!
pour exécuter la dernière commande en tant que root
utilisateur comme ci-dessous.
$ sudo !!
Vous pouvez également utiliser ce qui suit pour exécuter la commande précédente en tant que sudo
utilisateur :
$ su -c "!!"
Exemple de résultat :
su -c "uname -r" Password: 5.3.0-40-generic
Cool, n'est-ce pas ? Vous n'avez pas besoin de taper complètement la dernière commande. Cela peut être utile lorsque vous avez déjà exécuté une commande très longue et que vous ne souhaitez pas retaper la même commande.
Méthode 2 - Répéter la N-ème commande
Vous avez peut-être exécuté tant de commandes et souhaitez répéter une commande spécifique. Que vas-tu faire? Simple! Vous pouvez le faire en tapant un mot spécifique de la commande précédente.
Pour répéter la commande précédente qui commence par un mot/une lettre spécifique, par exemple un
, tapez simplement :
$ !un
La commande ci-dessus exécutera la dernière commande commençant par les lettres "un" .
Exemple de résultat :
!un uname -r 5.3.0-40-generic
Comme vous le voyez dans l'exemple ci-dessus, vous n'avez pas besoin de taper toute la commande (c'est-à-dire uname -r
). Au lieu de cela, tapez simplement quelques lettres de la commande, et toute commande précédente contenant des mots s'exécutera.
De plus, si vous connaissez le nom complet de la commande, saisissez-le simplement comme ci-dessous :
$ !uname
Il exécutera la dernière commande.
Que faire si vous ne voulez pas répéter la dernière commande, mais simplement l'afficher. Parfois, vous ne voulez pas exécuter une commande, mais simplement la récupérer à partir de l'historique. Si tel est le cas, recherchez le numéro de préfixe de la commande que vous souhaitez exécuter :
$ history | grep -i "source"
Exemple de résultat :
1664 source googler_at 1678 source googler_at 1685 source ~/.bashrc 2037 history | grep -i "source"
Disons que vous voulez récupérer le 1685ème commande, mais que vous ne voulez pas l'exécuter immédiatement, ajoutez :p
à côté de la commande comme ci-dessous.
$ !1685:p
Cela affichera la 1685ème commande de l'historique, mais ne l'exécutera pas.
Méthode 3 - Utilisation de la recherche inversée
Une autre façon de le faire est de rechercher votre historique de ligne de commande en utilisant CTRL+R
. Appuyez sur CTRL+R
clé pour rechercher dans l'historique de la ligne de commande. Personnellement, je préfère cette méthode. Il recherche l'historique de manière interactive, ce qui me semble plus sûr que d'exécuter aveuglément des commandes à partir de l'historique BASH.
Jetez un oeil à l'exemple suivant. Dans l'exemple suivant, j'ai recherché "ost"
, qui affichait la dernière commande “sudo netctl restart ostechnixjio”
dans l'historique qui contenait le mot "ost"
. Ensuite, j'appuie sur ENTRÉE pour exécuter la commande immédiatement ou sur la touche fléchée droite pour terminer la commande et appuyer sur la touche ENTRÉE pour l'exécuter.
(reverse-i-search)`ost': sudo netctl restart ostechnixjio

Juste au cas où vous voudriez éditer/modifier la dernière commande avant de l'exécuter, appuyez simplement sur la touche fléchée gauche , puis modifiez la dernière commande et appuyez sur ENTER pour l'exécuter. Certaines commandes peuvent commencer par les mêmes lettres. Dans ce cas, continuez à appuyer sur CTRL+R
touche pour ramener la commande que vous vouliez exécuter.
Méthode 4 – Utiliser le symbole du trait d'union avec les numéros de préfixe de commande
Voici encore une autre façon d'exécuter la commande précédente.
$ !-1
Exemple de résultat :
uname -r 5.3.0-40-generic
De même, !-2
exécutera l'avant-dernière commande, !-3
exécutera l'avant-dernière commande, et ainsi de suite.
Méthode 5 - Utilisation de CTRL+p et CTRL+o
Je ne veux taper aucune commande manuellement. Existe-t-il un moyen de répéter une dernière commande en appuyant simplement sur une ou plusieurs touches particulières de mon clavier ? Oui, bien sûr !
Appuyez sur CTRL+P
pour passer à la dernière commande, puis appuyez sur CTRL+O
pour l'exécuter. Cela fera merveille. Aucune configuration nécessaire ! Vous pouvez utiliser CTRL+O
autant de fois que vous le souhaitez pour ré-exécuter les dernières commandes.
Méthode 6 - Utilisation de la commande fc
C'est une autre façon de répéter la dernière commande exécutée. Le fc
La commande est utilisée pour répertorier, modifier et réexécuter la commande saisie précédemment.
Pour répéter la dernière commande à l'aide de fc, exécutez simplement :
$ fc -s
Exemple de résultat :
uname -r 5.3.0-40-generic
Suggestion de lecture :
- Le didacticiel de la commande fc avec des exemples pour les débutants
- Appliquez des balises aux commandes Linux pour les récupérer facilement de l'historique
- Rappel facile des commandes Linux oubliées à l'aide d'Apropos
- Animal :un gestionnaire d'extraits de code simple en ligne de commande
- Comment enregistrer des commandes et les utiliser à la demande
- Mettre en signet les commandes Linux pour faciliter les appels répétés
Méthode 7 - Utilisation de la touche ALT + point
Comme l'un de nos lecteurs l'a dit dans la section des commentaires, nous pouvons également utiliser ALT+.
(appuyez sur ALT+point) pour récupérer la dernière commande sans l'exécuter. Cependant, il y a une limite. Appuyez sur ALT+.
ne récupérera que le dernier argument de la commande. Par exemple, si votre commande précédente est "uname -r"
, il ne ramènera que le -r
argument, mais pas la commande entière.
Et c'est tout. Vous savez maintenant comment répéter votre dernière commande sans la taper dans le Terminal. Si vous souhaitez afficher la sortie de vos dernières commandes sans avoir à les retaper, ces méthodes vous aideront.
Si vous connaissez d'autres méthodes, veuillez me le faire savoir dans la section des commentaires ci-dessous. Je vérifierai et mettrai à jour le guide en conséquence.
Vous saviez maintenant comment répéter une commande précédemment exécutée. Comment répéter une commande ou un programme Linux jusqu'à ce qu'il réussisse ? Eh bien, c'est facile ! Reportez-vous au guide suivant pour plus de détails.
- Comment répéter une commande jusqu'à ce qu'elle réussisse sous Linux
J'espère que cela vous aidera.