Quiero ver cuáles son los últimos N comandos en mi history
. Pensé que lo history | tail -n 5
lograría, pero noté que un comando multilínea cuenta para tantas líneas como tiene.
$ echo "hello
how are you"
$ history | tail -2
how are you"
1051 history | tail -2
Entonces mi pregunta es: ¿tengo que analizar la salida del comando para lograr esto?
bash
command-line
command-history
fedorqui
fuente
fuente
Respuestas:
¡Lo encontré!
fuente
tcsh
,yash
ybash
. Es posible que desee dar a la información correspondiente para otras cáscaras comozsh
,fish
,ksh
, y la forma POSIX.fc -l -2
también funciona (pero no agrega corrientefc -l -2
a la salida)fc
por cierto muestra los últimos n comandos con-n
. Mostrarfrom n commands until last
es solon
(lo que no tiene mucho sentido porque necesita saber el número total). En alemán diríamosein kleiner aber feiner unterschied
: un pequeño pero encantador deleite. No te olvides de usar-l
como @EvgenyVereshchagin ya señaló porque de lo contrario terminas en un editor que no es lo que quieres.Probado en OpenBSD 6.3 (PD KSH v5.2.14 99/07 / 13.2).
Muestra todo el historial que comienza desde una entrada con un número [b]
Muestra el intervalo del historial de [b] a [e]
fuente
También podría usar números negativos, como:
O use un rango (últimos 10):
fuente
Cuando aplique el historial, también mostrará el último comando del historial. Para evitar ese desperdicio de espacio, tal alias podría ser útil:
(el comando en sí
history 16 | head -n 15
)Otro alias de historia útil:
(cuando ctr + R es demasiado pequeño para elegir)
El espacio delante de _history ejecutará un comando no escrito en la historia
fc -l # también enumerará 16 últimos comandos (y más)
fuente