Spec-Zone.ru › Fish 3.2

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

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

Spec-Zone.ru

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