Appuyer sur le bouton haut est fastidieux et je risque de manquer la commande que je cherchais. Ainsi, lorsque history
je tape sur le terminal, je reçois toutes les commandes que j'ai entrées auparavant, indexées sur un nombre. Existe-t-il un moyen d'appeler le numéro associé à la commande?
20
Réponses:
L'histoire de bash peut faire beaucoup de choses utiles, et la recherche avec
Strg-r
laquelle Terry Wang a mentionné est importante parmi elles. Mais il est également possible de faire exactement ce que vous avez demandé.Vous pouvez refaire la commande précédente avec
!!
. Avec cela, vous pouvez également modifier la commande précédente. Si, par exemple, vous avez oublié d'obtenir les privilèges root pour une commandevous n'avez pas besoin de retaper tout cela à nouveau. Appelez plutôt
Si vous souhaitez réexécuter la commande à un emplacement spécifique de votre historique, vous pouvez également utiliser
!
, par exemplepour réexécuter la commande en position 3. Sachez que cela compte à partir du haut. Donc, si vous stockez 500 commandes dans votre historique, ce
!1
serait "500 commandes auparavant". Vous pouvez également utiliser des nombres négatifs. Par exempleré-exécuterait l'avant-dernière commande.
Vous pouvez également réexécuter la dernière commande qui a commencé avec une chaîne comme
qui refait la dernière ligne commençant par "apt-". Si vous voulez que la dernière commande où la chaîne apparaisse n'importe où dans la ligne, vous pouvez utiliser quelque chose comme
Il y a des choses plus intéressantes que l'histoire de bash peut faire. Juste pour donner une impression du large éventail de possibilités, vous pouvez spécifiquement accéder à un paramètre d'une commande de l'historique. Donc
imprimerait le troisième paramètre au cinquième de la dernière commande.
EDIT: Concernant le commentaire de Rudie ci-dessous, avec les paramètres standard, ces extensions d'historique bash sont en effet exécutées directement. Il est probablement mieux décrit comme ceci: un appel comme
!-3
est remplacé par le shell avec l'avant-dernière commande de votre historique, puis votre entrée (avec le remplacement) exécutée. Donc, si vous tapez!-3
et appuyez surENTER
et que votre troisième dernière commande étaitls ~
, c'est en fait la même chose que si vous avez tapé àls ~
nouveau et appuyéENTER
sur "par vous-même".Si vous ne le souhaitez pas, vous pouvez définir l'option shell
histverify
. Pour définir et désactiver les options du shell, vous souhaiterez peut-être lire lashopt
commande. Avechistverify
set, un appel comme!-3
écrit uniquement le remplacement de votre historique sur votre ligne de commande, mais ne l'exécute pas directement. Vous avez donc, pour parler, appuyez sur le crucialENTER
vous-même - ou abstenez- vous, si vous le souhaitez.la source
!
sacrément dangereux ... Je voudrais savoir ce qui!-4
s'est passé exactement avant de l'exécuter. Ou cela vous montre-t-il d'abord? Résumé sympa!!-238
. Il ne devrait pas être trop difficile de se souvenir de votre avant-dernière, troisième avant-dernière, peut-être cinquième commande;) Comme souvent avec Linux (et, en fait, avec l'informatique en général), on s'attend à ce que vous sachiez ce que vous faites. Et si vous voulez vraiment le filet de sécurité supplémentaire, il est àshopt
portée deOui il y a. Si, par exemple, vous souhaitez exécuter la commande qui a le numéro 1234 à côté, faites:
!1234
Autres trucs utiles:
Si vous souhaitez exécuter la dernière commande que vous avez exécutée, procédez comme suit:
Si vous souhaitez exécuter la dernière
ls
commande que vous avez exécutée, procédez comme suit:Si vous venez de courir
ls /some/long/path
et que vous le souhaitezcd
, faites:Pour plus d'informations:
la source
Utiliser la combinaison de touches
Ctrl
-r
, vous pourrez utiliser un mot-clé pour rechercher l'historique de bash.Une référence de liaison de clé bash rapide: http://ss64.com/bash/syntax-keyboard.html
la source
Si vous avez trouvé le numéro d'historique d'une commande et que vous souhaitez l'exécuter à nouveau, tapez
!
suivi du numéro, par exemple!1234
et appuyez sur Enter. Cela fait partie de l'expansion de l' histoire ; vous pouvez y coller des modificateurs .Si vous souhaitez modifier la commande avant de l'exécuter,
fc 1234
appelle un éditeur externe.Mais comme Terry Wang l'a déjà mentionné, il existe généralement des moyens plus rapides de localiser une commande dans l'historique que de déterminer son numéro d'historique, y compris Ctrl+ Rpour appeler la recherche incrémentielle (appuyez Enterlorsque vous avez trouvé la commande que vous souhaitez exécuter), ou
fc PREFIX
pour exécuter la précédente commande commençant parPREFIX
.la source
La
history
commande affichera toutes les commandes et leurs numéros associés. Si vous souhaitez simplement effectuer une vérification rapide avant d'exécuter la ligne de commande # 135, vous pouvez taper:Cela vous montrera ce qui va être exécuté.
la source