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. Если вывод подключен к tty, функция history направит вывод через ваш просмотрщик страниц. Встроенная команда history просто записывает результаты в стандартный вывод. - delete
-
Удаляет элементы истории. Если не указан другой параметр поиска, будет использоваться параметр
--contains. Если вы не указываете--exact, перед удалением элементов будет отображено сообщение, спрашивающее, какие записи необходимо удалить. Вы можете ввести слово «all», чтобы удалить все совпадающие записи. Вы можете ввести единственный идентификатор (число в квадратных скобках), чтобы удалить только эту запись. Вы можете ввести несколько идентификаторов, разделенных пробелом, чтобы удалить несколько записей. Нажатие [ввод] без ввода ничего не удалит. Обратите внимание, что интерактивное поведение удаления — это функция 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 . Эти длинные параметры устарели и будут удалены в будущих версиях.
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.4/cmds/history.html