Встроенные команды истории Bash
Bash предоставляет две встроенные команды, которые управляют списком истории и файлом истории.
fc-
fc [-e ename] [-lnr] [first] [last] fc -s [pat=rep] [command]
Первый вариант выбирает диапазон команд от first до last из списка истории и отображает или редактирует, а затем повторно выполняет их. И first, и last могут быть указаны в виде строки (для поиска последней команды, начинающейся с этой строки) или как число (индекс в списке истории, где отрицательное число используется как смещение от текущего номера команды).
При отображении first или last со значением 0 эквивалентны -1, а -0 эквивалентно текущей команде (обычно последней
fcкоманды); в противном случае 0 эквивалентно -1, а -0 недопустимо.Если last не указан, он устанавливается в first. Если first не указан, он устанавливается в предыдущую команду для редактирования и -16 для отображения. Если задан флаг -l, команды выводятся в стандартный вывод. Флаг -n подавляет вывод номеров команд при отображении. Флаг -r меняет порядок отображения. В противном случае вызывается редактор, заданный ename, для файла, содержащего эти команды. Если ename не задан, используется значение следующего развёртывания переменной:
${FCEDIT:-${EDITOR:-vi}}. Это означает использование значения переменнойFCEDITесли она установлена, или значения переменнойEDITORесли она установлена, илиviесли ни одна из них не установлена. После завершения редактирования откорректированные команды отображаются и выполняются.Во втором варианте command повторно выполняется после замены каждого вхождения pat в выбранной команде на rep. command интерпретируется так же, как и first выше.
Полезный псевдоним для использования с командой
fc—r='fc -s', так что набрав «r cc» выполнится последняя команда, начинающаяся сcc, а набрав «r» — повторно выполнится последняя команда (см. Псевдонимы). history-
history [n] history -c history -d offset history -d start-end history [-anrw] [filename] history -ps arg
Без опций отображает список истории с номерами строк. Строки, предваряемые ‘*’, были изменены. Аргумент n отображает только последние n строк. Если переменная оболочки
HISTTIMEFORMATустановлена и не пуста, она используется в качестве формата строки для strftime для отображения временной метки, связанной с каждым отображённым элементом истории. Пробел не выводится между отформатированной временной меткой и строкой истории.Если заданы опции, они имеют следующие значения:
-c-
Очистить список истории. Это можно комбинировать с другими опциями, чтобы полностью заменить список истории.
-d offset-
Удалить запись истории в позиции offset. Если offset положительный, он должен быть указан как отображается в истории. Если offset отрицательный, он интерпретируется относительно позиции, большей последней позиции истории, то есть отрицательные индексы отсчитываются от конца истории, а индекс ‘-1’ относится к текущей
history -dкоманде. -d start-end-
Удалить диапазон записей истории между позициями start и end включительно. Положительные и отрицательные значения для start и end интерпретируются как описано выше.
-a-
Добавить новые строки истории в файл истории. Это строки истории, введённые с начала текущей сессии Bash, но ещё не добавленные в файл истории.
-n-
Добавить в текущий список истории строки из файла истории, которые ещё не были прочитаны. Это строки, добавленные в файл истории с начала текущей сессии Bash.
-r-
Прочитать файл истории и добавить его содержимое в список истории.
-w-
Записать текущий список истории в файл истории.
-p-
Выполнить подстановку истории для arg и отобразить результат в стандартном выводе без сохранения результатов в списке истории.
-s-
arg добавляются в конец списка истории как отдельная запись.
Если аргумент filename задан при использовании опций -w, -r, -a или -n, Bash использует filename в качестве файла истории. В противном случае используется значение переменной
HISTFILE.Значение возврата равно 0, если не обнаружена недопустимая опция, не произошла ошибка при чтении или записи файла истории, не задан недопустимый offset или диапазон в качестве аргумента для -d, или не удалась подстановка истории в качестве аргумента для -p.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html