Comment obtenir les N dernières commandes de l'histoire?


37

Je veux voir quelles sont les dernières N commandes de mon history. Je pensais que history | tail -n 5cela marcherait, mais j'ai remarqué qu'une commande multiligne compte pour autant de lignes qu'elle a.

$ echo "hello
how are you"
$ history | tail -2
how are you"
1051  history | tail -2

Ma question est donc la suivante: dois-je analyser le résultat de la commande pour accomplir cela?


1
//, C'est pourquoi j'aime stackexchange
Nathan Basanese

Réponses:


46

Je l'ai trouvé!

histoire [n]

Un argument de n ne répertorie que les n dernières lignes.

$ echo "hello
how are you"
$ history 2
1060  echo "hello
how are you"
1061  history 2

4
Cela semble être pour tcsh, yashet bash. Vous pouvez donner les informations correspondantes pour d' autres coquilles aiment zsh, fish, kshet la façon POSIX.
Stéphane Chazelas

1
J'aimerais bien, même si je n'ai aucun de ceux-ci installés sur mon ordinateur. Recommandez-vous une source spécifique pour obtenir les informations? En opengroup, je vois une référence à pubs.opengroup.org/onlinepubs/9699919799
fedorqui

6
fc -l -2fonctionne aussi (mais n'ajoute pas de courant fc -l -2à la sortie)
Evgeny Vereshchagin le


fcà propos montre les n dernières commandes avec -n. Afficher from n commands until lastest seulement n(ce qui n’a pas beaucoup de sens car il faut connaître le nombre total). En allemand, nous dirions ein kleiner aber feiner unterschied: Un petit mais délice diff. N'oubliez pas d'utiliser -lle caractère @EvgenyVereshchagin déjà car sinon, vous vous retrouvez dans un éditeur qui n'est pas ce que vous voulez.
Timo

0

Testé sous OpenBSD 6.3 (PD KSH v5.2.14 99/07 / 13.2).

history [b]

Affiche toute l'historique à partir d'une entrée avec un numéro [b]

history [b] [e]

Affiche l'intervalle de l'historique de [b] à [e]


0

Vous pouvez également utiliser des nombres négatifs, tels que:

history -1

Ou utilisez une gamme (10 derniers):

history -1 -11 

Cela ne fonctionne pas pour moi avec bash 5.0.11.
joelostblom

0

Lorsque vous appliquez l'historique, il affichera également la dernière commande d'historique. Pour éviter ce gaspillage d'espace, un tel alias pourrait être pratique:

alias hs=' history 16 | head -n 15'

(la commande elle-même history 16 | head -n 15)

Un autre alias d'histoire utile:

  alias hsg=' history | grep ' 

(lorsque ctr + r est trop petit pour être choisi)

L'espace devant _history lancera une commande non écrite dans l'historique

fc -l # listera également les 16 dernières commandes (et plus)


2
Bien que cela soit vrai, rien de tout cela n’adresse la question qui se pose.
Jeff Schaller
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.