Je suis très confus à propos de ma session de terminal ubuntu, il semble remplacer les sections des commandes qui commencent par !
suivies d'un nombre avec des commandes apparemment aléatoires. Il le fait en le !87
remplaçant par screen -l
et également par !88
et en le remplaçant par ls
.
Toute idée de la raison pour laquelle cela se produit serait très appréciée.
command-line
bash
history
bash-history
usbpc102
la source
la source
Réponses:
C'est l'
bash
expansion de l'histoire, par exempleréexécute la commande à partir de la ligne d'historique
87
.Vous trouverez la description de cette fonctionnalité dans la
man bash
section «EXPANSION DE L'HISTORIQUE»:Donc, pour appeler rapidement la dernière commande, faites
!-1
et pour l'avant-dernière commande!-5
. Un synonyme pratique pour!-1
est!!
- si vous avez appelé par exempleapt install something
et oublié lesudo
, exécutez simplementsudo !!
et vous êtes bon.Pour éviter l'expansion de l'historique, vous devez soit échapper le point d'exclamation avec une barre oblique inverse (
\!
) ou utiliser des guillemets simples ('!'
).la source
!
à vos commandes et éviter l'expansion de l'historique, vous devrez les citer entre guillemets ou les échapper:foo '!87'
oufoo \!87
. (les guillemets doubles effectueront également l'expansion de leur contenu.)