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