Як отримати останні N команд з історії?


37

Я хочу побачити, які останні N команди в моїй history. Я думав, history | tail -n 5що це вдасться, але я помітив, що багаторядкова команда нараховує стільки ж рядків, скільки має.

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

Отже, моє запитання: чи потрібно мені проаналізувати вихід команди, щоб виконати це?


1
//, Ось чому я люблю stackexchange
Натан Басанес

Відповіді:


46

Я знайшов це!

історія [n]

Аргумент з n перераховує лише останні п рядків.

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

4
Це, здається tcsh, є yashі для bash. Ви можете дати відповідну інформацію для інших оболонок подобаються zsh, fish, kshі шлях POSIX.
Стефан Шазелас

1
Мені б хотілося, хоча у мене на комп’ютері не встановлено жодного з цих. Чи рекомендуєте ви якесь конкретне джерело для отримання інформації? У відкритій групі я бачу посилання на pubs.opengroup.org/onlinepubs/9699919799
fedorqui

6
fc -l -2також працює (але не додає поточний fc -l -2на вихід)
Євген Верещагін


fcдо речі показує останні n команд з -n. Показ from n commands until lastє лише n(що не має великого сенсу, оскільки вам потрібно знати загальну кількість). Німецькою мовою ми б сказали ein kleiner aber feiner unterschied: Невелике, але захоплення відмінне. Не забудьте використовувати -lяк вказаний @EvgenyVereshchagin, тому що в іншому випадку ви опинитесь в редакторі, який не є тим, що ви хочете.
Тімо


0

Ви також можете використовувати негативні числа, наприклад:

history -1

Або скористайтеся діапазоном (останні 10):

history -1 -11 

Не працює для мене з bash 5.0.11.
joelostblom

0

Коли ви застосуєте історію, вона також покаже останню команду історії. Для запобігання використанню космічної трати такий псевдонім може бути зручним:

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

(сама команда history 16 | head -n 15)

Ще один корисний псевдонім історії:

  alias hsg=' history | grep ' 

(коли ctr + R занадто малий для вибору)

Пробіл перед історією буде виконувати команду, не записану в історії

fc -l # також перелічить 16 останніх команд (і більше)


2
Незважаючи на те, що правда, жодне з цих питань не стосується питання.
Джефф Шаллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.