Spec-Zone.ru › Fish 3.1

history — Показ и управление историей команд

Краткое описание

history search [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] [ --max=n ] [ --null ] [ -R | --reverse ] [ "search string"... ]
history delete [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] "search string"...
history merge
history save
history clear
history ( -h | --help )

Описание

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

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

  • search возвращает элементы истории, соответствующие строке поиска. Если строка поиска не указана, возвращаются все элементы истории. Это основная операция, если не указана другая. Вы должны явно указать history search , если хотите выполнить поиск по одной из подкоманд. --contains параметр поиска будет использован, если не указан другой. Элементы упорядочены от новых к старым, если не используется флаг --reverse. Если вывод подключен к tty, функция history перенаправит его через ваш просмотрщик страниц. Встроенная команда history просто записывает результаты в стандартный вывод.
  • delete удаляет элементы истории. --contains параметр поиска будет использован, если не указан другой. Если не указан --exact, перед удалением элементов отобразится запрос, в котором нужно указать, какие записи нужно удалить. Можно ввести «all», чтобы удалить все соответствующие записи. Можно ввести единственный идентификатор (число в квадратных скобках), чтобы удалить только эту запись. Можно ввести несколько идентификаторов, разделенных пробелом, чтобы удалить несколько записей. Просто нажмите [enter], чтобы ничего не удалять. Обратите внимание, что интерактивное поведение удаления является особенностью функции history. Встроенная команда history поддерживает только --exact --case-sensitive удаление.
  • merge немедленно включает изменения истории из других сеансов. Обычно fish игнорирует изменения истории из сеансов, начатых после текущего. Эта команда немедленно применяет эти изменения.
  • save немедленно записывает все изменения в файл истории. Оболочка автоматически сохраняет файл истории; этот параметр предназначен для внутреннего использования и обычно не должен использоваться пользователем.
  • clear очищает файл истории. Перед удалением истории отображается запрос, подтверждающий, что вы действительно хотите очистить всю историю, если не используется builtin history.

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

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

  • -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> ограничивает количество найденных элементов истории первыми "n" соответствиями. Это справедливо только для 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. Эти длинные опции устарели и будут удалены в будущей версии.

© 2019 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.1/cmds/history.html

Spec-Zone.ru

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