====== Exécuter une commande qui a été précédemment utilisée ======
{{tag>"Linux systeme"}}
{{ :dummy.png?75x75|Mots-clé du shell}}

Le point d'exclamation <key>!</key> en début de commande sous Linux est utilisé pour exécuter une commande qui a été précédemment utilisée. Cela permet de rappeler la dernière commande saisie, pour que vous puissiez la ré-exécuter rapidement. **Sous Fedora** et certaines autres distributions Linux, la ligne est d'abord affichée dans le shell et il faut valider cette commande en appuyant sur <key>Entrée</key> pour l'exécuter.

Rapidement, les commandes à retenir :

  * ''!!'', rappelle la dernière commande
  * ''!$'', utilise le dernier arguments de la dernière commande
  * ''!*'', utilise tous les arguments de la dernière commande
  * ''!motif'', exécute la dernière commande qui commence par "motif"
  * ''!?motif?'', rappelle la dernière commande contenant le "motif"
  * ''!-2'', rappelle la commande n lignes plus tôt


---

<key>!</key><key>!</key> est un __**opérateur de rappel de commande**__ qui permet de rappeler et d'exécuter la dernière commande saisie. Il est similaire à utiliser seulement <key>!</key> mais il est plus rapide et plus facile à saisir.

Exemple :

  ls /root
  sudo !!

Cela va ré-exécuter la dernière commande avec ''sudo'' pour obtenir les permissions nécessaires pour exécuter la commande dans le répertoire ''/root''.

Il peut être utilisé pour __**exécuter une commande qui a été saisie antérieurement en utilisant le numéro d'historique**__ de la commande. Par exemple, pour exécuter la commande numéro 10 dans l'historique, vous pourriez utiliser la commande "!10".

{{ :journal_geek:billets:pasted:20230128-005733.png }}

{{ :journal_geek:billets:pasted:20230128-005753.png }}


__**Utiliser le dernier argument**__ de la dernière commande saisie

  !$
  
Par exemple pour changer le répertoire courant pour ''/usr/local/bin'' :

  ls /usr/local/bin

puis 

  cd !$
  
{{ :journal_geek:billets:pasted:20230128-005249.png }}
  
__**Utiliser tous les arguments**__ de la dernière commande saisie

  !*
  
__**Exécuter la dernière commande qui commence par**__ "motif"

  !motif

Par exemple pour ré-exécuter la dernière commande commençant par ''ls'' soit ''ls /usr/local/bin'' :

  !ls

{{ :journal_geek:billets:pasted:20230128-005601.png }}

__** Rappel de la commande n lignes plus tôt **__ dans l'historique. Par exemple, pour rappel la commande qui a été saisie 2 lignes plus tôt.

  !-2

__** Rappel de la dernière commande qui contient "motif"**__

Permet de rappeler la dernière commande dans l'historique contant le "motif" :

  !?motif?



 --- //[[user:cedricabonnel]], [[user:CPT]] - Édition initiale du Samedi 4 Février 2023 //
