Каждый ответ здесь, насколько я могу судить, непереносим. Для портативного варианта рассмотрим POSIX-гарантированное fc
:
$ man fc
-E редактор Используйте редактор, названный редактором, чтобы редактировать команды. Строка редактора - это имя утилиты, подлежащее поиску черезпеременную PATH ... Значение впеременной FCEDIT должно использоваться по умолчанию, еслине указан ключ -e . Если FCEDIT равен нулю или не задан, ed должен использоваться в качестве редактора.
−l (буква ell.) Перечислять команды, а не вызывать для них редактор. Команды должны быть записаны в последовательности, указанной первым и последним операндами, на которые влияет -r , причем каждой команде предшествует номер команды.
-N Подавить номера команд при перечислении с −l .
−r Обратный порядок команд, перечисленных (с −l ) или отредактированных (без −l и −s ) .
-S Повторно выполнить команду без вызова редактора.
ОПЕРАНДЫ
первый , последний
Выберите команды для просмотра или редактирования. Количество предыдущих команд, к которым можно получить доступ, определяется значениемпеременной HISTSIZE . Значение first или last или обоих должно быть одним из следующих:
[+ or-] число
Положительное (или отрицательное ) число, представляющее номер команды; номера команд могут отображаться с параметром -l ... Например, -1 является непосредственно предыдущей командой ...
Когда параметр -l используется для вывода списка команд, формат каждой команды в списке должен быть следующим:
"%d\t%s\n", <line number>, <command>
Если указаны оба параметра -l и -n , формат каждой команды должен быть следующим:
"\t%s\n", <command>
Если состоит из более чем одной строки, строки после первой должны отображаться как:
"\t%s\n", <continued-command>
Но обязательно используйте -l или -e, если вы ТОЛЬКО хотите видеть / редактировать ваши команды. По умолчанию fc
откроется список команд, запрошенный в FCEDIT (обратите внимание, что он отличается от переменной среды EDITOR ), и, когда FCEDIT завершит работу,fc
будут работать отредактированные команды.
Во всяком случае, конкретно ответ на этот вопрос может быть:
% fc -l -1
Или без номеров строк:
% fc -ln -1
Или последние пять команд в обратном порядке:
% fc -lrn -1 -5
В вашем пейджере:
% fc -lrn -1 -5 |$PAGER
Для вашего последнего звонка fc
:
% fc -l fc