web-dev-qa-db-fra.com

Comment récupérer les N dernières commandes de l'historique?

Je veux voir quelles sont les dernières commandes N dans mon history. J'ai pensé history | tail -n 5 suffirait, mais j'ai remarqué qu'une commande multiligne compte pour autant de lignes qu'elle en 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 la sortie de la commande pour y parvenir?

38
fedorqui

Je l'ai trouvé!

historique [n]

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

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

Vous pouvez également utiliser des nombres négatifs, comme:

history -1

Ou utilisez une gamme (10 derniers):

history -1 -11 
0
robertrv

Lorsque vous appliquez l'historique, il affichera également la dernière commande d'historique. Pour éviter ce gaspillage d'espace, un tel alias peut ê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 choisir)

L'espace devant _history exécutera la commande non écrite dans l'historique

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

0
Alexey K.

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

history [b]

Affiche tout l'historique commençant par une entrée avec un numéro [b]

history [b] [e]

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