Chcę zobaczyć, jakie są moje ostatnie N poleceń history
. Myślałem, że się history | tail -n 5
uda, ale zauważyłem, że polecenie wieloliniowe liczy tyle wierszy, ile ma.
$ echo "hello
how are you"
$ history | tail -2
how are you"
1051 history | tail -2
Więc moje pytanie brzmi: czy muszę przeanalizować dane wyjściowe polecenia, aby to osiągnąć?
bash
command-line
command-history
fedorqui
źródło
źródło
Odpowiedzi:
Znalazłem to!
źródło
tcsh
,yash
abash
. Możesz podać odpowiednie informacje do innych skorup podobazsh
,fish
,ksh
, oraz sposób POSIX.fc -l -2
działa również (ale nie dodaje prądufc -l -2
do wyjścia)fc
przy okazji pokazuje ostatnie n poleceń za pomocą-n
. Wyświetlaniefrom n commands until last
jest tylkon
(co nie ma większego sensu, ponieważ musisz znać całkowitą liczbę). Po niemiecku powiedzielibyśmyein kleiner aber feiner unterschied
: Mały, ale zachwycający diff. Nie zapomnij użyć-l
jako wskazanego @EvgenyVereshchagin, ponieważ w przeciwnym razie skończysz w edytorze, który nie jest tym, czego chcesz.Testowany w OpenBSD 6.3 (PD KSH v5.2.14 99/07 / 13.2).
Pokazuje całą historię zaczynającą się od pozycji z numerem [b]
Pokazuje interwał historii od [b] do [e]
źródło
Możesz również użyć liczb ujemnych, takich jak:
Lub użyj zakresu (ostatnie 10):
źródło
Po zastosowaniu historii wyświetli się również ostatnie polecenie historii. Aby zapobiec marnotrawstwu kosmosu, taki alias może być przydatny:
(samo polecenie
history 16 | head -n 15
)Kolejny przydatny alias historii:
(gdy ctr + R jest zbyt mały, aby wybrać)
Spacja przed _historia uruchomi polecenie niezapisane w historii
fc -l # wyświetli również 16 ostatnich poleceń (i więcej)
źródło