Spec-Zone.ru › Bash

Встроенные команды истории 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API