Spec-Zone.ru › Fish 3.7

history - отображение и управление историей команд

Синтаксис

history [search] [--show-time] [--case-sensitive]
                 [--exact | --prefix | --contains] [--max N] [--null] [--reverse]
                 [SEARCH_STRING ...]
history delete [--case-sensitive]
               [--exact | --prefix | --contains] SEARCH_STRING ...
history merge
history save
history clear
history clear-session

Описание

history используется для поиска, удаления и других манипуляций с историей интерактивных команд.

Доступны следующие операции (подкоманды):

search

Возвращает элементы истории, соответствующие строке поиска. Если строка поиска не указана, возвращаются все элементы истории. Это основная операция, если не указана иная. Вы должны явно указать history search , если хотите искать одну из подкоманд. По умолчанию используется опция поиска --contains. Элементы упорядочены по убыванию времени ввода, если не используется флаг --reverse. Если вывод направлен на терминал, то функция history использует ваш pager. Встроенная функция history просто записывает результаты в stdout.

delete

Удаляет элементы истории. По умолчанию используется опция поиска --contains. Если не указан --exact, перед удалением элементов будет отображено сообщение, спрашивающее, какие записи должны быть удалены. Можно ввести слово «all» для удаления всех совпадающих записей. Можно ввести один идентификатор (число в квадратных скобках) для удаления только этой записи. Можно ввести несколько идентификаторов или диапазон идентификаторов, разделенных пробелом, для удаления нескольких записей. Нажатие [enter] означает отмену удаления. Обратите внимание, что интерактивное поведение удаления — это функция истории, а встроенная функция history поддерживает только --exact --case-sensitive удаление.

merge

Немедленно включает изменения истории из других сеансов. Обычно fish игнорирует изменения истории из сеансов, начатых после текущего. Эта команда применяет эти изменения немедленно.

save

Немедленно записывает все изменения в файл истории. Оболочка автоматически сохраняет файл истории; эта опция предназначена для внутреннего использования и обычно не должна использоваться пользователем.

clear

Очищает файл истории. Перед удалением истории отображается сообщение, спрашивающее о подтверждении, если не используется builtin history.

clear-session

Очищает файл истории от всех действий текущего сеанса. Примечание: Если history merge или builtin history merge выполняются в сеансе, будет удалена только история после этого.

Доступны следующие опции:

Эти флаги могут появляться перед или сразу после одной из подкоманд, перечисленных выше.

-C или --case-sensitive

Производит поиск, учитывая регистр. По умолчанию регистр не учитывается. Обратите внимание, что до fish 2.4.0 по умолчанию регистр учитывался.

-c или --contains

Ищет элементы в истории, содержащие указанную строку. Это значение по умолчанию для флага --search. В настоящее время это не поддерживается подкомандой delete.

-e или --exact

Ищет или удаляет элементы в истории, которые точно совпадают с указанной строкой. Это значение по умолчанию для подкоманды delete. По умолчанию регистр не учитывается. Если вам действительно нужен точный совпадение, включая регистр, необходимо использовать флаг -C или --case-sensitive.

-p или --prefix

Ищет элементы в истории, начинающиеся с указанной строки. В настоящее время это не поддерживается подкомандой delete.

-t или --show-time

Добавляет дату и время записи каждого элемента истории. По умолчанию используется формат strftime # %c%n. Можно указать другой формат; например, --show-time="%Y-%m-%d %H:%M:%S " или --show-time="%a%I%p". Короткий вариант -t не принимает строку формата strftime; он использует только формат по умолчанию. Допустим любой формат strftime, включая %s для получения исходных UNIX-секунд с эпохи.

-z или --null

Заставляет записи истории, создаваемые операциями поиска, завершаться символом NUL вместо символа новой строки. Это позволяет обрабатывать многострочные записи истории с помощью read -z.

-*NUMBER* -n NUMBER или --max NUMBER

Ограничивает совпадающие элементы истории первыми NUMBER совпадающими записями. Действительно только для history search.

-R или --reverse

Упорядочивает результаты поиска истории по возрастанию времени ввода. Это порядок, используемый большинством оболочек. По умолчанию используется порядок по убыванию.

-h или --help

Отображает справку по этой команде.

Пример

history clear
# Deletes all history items

history search --contains "foo"
# Outputs a list of all previous commands containing the string "foo".

history delete --prefix "foo"
# Interactively deletes commands which start with "foo" from the history.
# You can select more than one entry by entering their IDs separated by a space.

Настройка имени файла истории

По умолчанию интерактивные команды регистрируются в $XDG_DATA_HOME/fish/fish_history (обычно ~/.local/share/fish/fish_history).

Вы можете установить переменную fish_history на другое имя для текущего сеанса оболочки. Значение по умолчанию (если переменная не задана) — fish , что соответствует $XDG_DATA_HOME/fish/fish_history. Если вы установите её, например, в fun, история будет записана в $XDG_DATA_HOME/fish/fun_history. Пустая строка означает, что история вообще не будет храниться. Это аналогично функциям частного сеанса в веб-браузерах.

Вы можете изменить fish_history в любое время (используя set -x fish_history "session_name"), и изменения вступят в силу сразу. Если вы установите её в "default", будет использовано имя сеанса по умолчанию (которое "fish").

Другие оболочки, такие как bash и zsh, используют переменную HISTFILE для аналогичных целей. Fish использует другое имя, чтобы избежать конфликтов и указать, что поведение отличается (имя сеанса вместо пути к файлу). Кроме того, если вы установите переменную на значение отличное от fish или default, импорт истории bash будет заблокирован. Это потому, что наиболее распространённый случай использования этой функции — предотвращение утечки личной или конфиденциальной истории при проведении презентации.

Примечания

Если вы укажете --prefix и --contains, то будет использоваться последний увиденный флаг.

Обратите внимание, что для обеспечения обратной совместимости каждая подкоманда также может быть указана как длинная опция. Например, вместо history search можно набрать history --search. Эти длинные опции устарели и будут удалены в будущих версиях.

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/cmds/history.html

Spec-Zone.ru

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