Spec-Zone.ru › Fish 3.6

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. Если stdout подключен к терминалу, вывод будет перенаправлен в ваш pager функцией history. Команда history просто выводит результаты в stdout.

delete

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

-*ЧИСЛО* -n *ЧИСЛО* или --max *ЧИСЛО*

Ограничивает соответствующие элементы истории первыми *ЧИСЛО* сопоставляющимися записями. Это допустимо только для 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.6/cmds/history.html

Spec-Zone.ru

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