Я хочу посмотреть, какие последние N команд в моем history
. Я думал, history | tail -n 5
что это будет сделано, но я заметил, что многострочная команда рассчитывает столько же строк, сколько она имеет.
$ echo "hello
how are you"
$ history | tail -2
how are you"
1051 history | tail -2
Поэтому мой вопрос: нужно ли анализировать выходные данные команды, чтобы выполнить это?
bash
command-line
command-history
fedorqui
источник
источник
Ответы:
Я нашел это!
источник
tcsh
,yash
иbash
. Вы можете дать соответствующую информацию для других оболочек нравятсяzsh
,fish
,ksh
и путь POSIX.fc -l -2
тоже работает (но не добавляет токаfc -l -2
к выходу)fc
кстати показывает последние n команд с-n
. Показыватьfrom n commands until last
толькоn
(что не имеет особого смысла, потому что вам нужно знать общее количество). На немецком мы бы сказалиein kleiner aber feiner unterschied
: маленький, но восхитительный diff. Не забудьте использовать,-l
как указывал @EvgenyVereshchagin, потому что в противном случае вы окажетесь в редакторе, а это не то, что вам нужно.Протестировано в OpenBSD 6.3 (PD KSH v5.2.14 99/07 / 13.2).
Показывает всю историю, начиная с записи с номером [b]
Показывает интервал истории от [b] до [e]
источник
Вы также можете использовать отрицательные числа, такие как:
Или используйте диапазон (последние 10):
источник
Когда вы применяете историю, она также покажет последнюю команду истории. Для предотвращения этой потери пространства может пригодиться такой псевдоним:
(сама команда
history 16 | head -n 15
)Еще один полезный псевдоним истории:
(когда ctr + R слишком мал, чтобы выбрать из)
Пробел перед _history будет выполнять команду, не записанную в истории
fc -l # также перечислит 16 последних команд (и больше)
источник