Замораживание файла истории временно

Эти два вопроса касаются того, как сохранить заданную команду в истории оболочки:

  • Есть ли способ сохранить команду в вашей истории?
  • Как запустить команду в zsh, не нажимая ее на историю текущего сеанса?

В ответах основное внимание уделяется решениям, в которых пользователь префикс каждой команды (например, пробелом). Я ищу одну команду, которую я могу запустить один раз, и это фактически « заморозило » мой файл истории в оболочке, пока я не разморозит его позже другой командой.

Хотя история « заморожена »:

  1. Я хочу, чтобы мои команды могли быть в состоянии читать из существующего файла истории (например, чтобы я мог выполнять поиск команд, например, Cr , и стандартную автозавершение.

  2. Я хочу, чтобы какие-либо команды, которые я запускал, не добавлялись в историю

Как это сделать с помощью zsh?

  • Как включить команду «daw» vi в zsh?
  • Что делает карет в zsh?
  • Экспорт истории команд в скрипт командной оболочки
  • Переопределяемые функции в Zsh
  • Все файлы в каталоге, которые не заканчиваются в определенной строке?
  • Передача команды с аргументами скрипту
  • Есть ли менее запутанный способ установки массива $ path локально внутри функции?
  • Как сохранить конечную косую черту после выбора каталога из параметров завершения zsh?
  • 2 Solutions collect form web for “Замораживание файла истории временно”

    Вы можете использовать fc -p для запуска нового списка истории, а fc -P для вызова предыдущего списка истории. После простого fc -p вы получаете пустую историю. Вы можете передать имя файла в fc -p чтобы прочитать историю из этого файла, поэтому сохраните историю и немедленно прочитайте ее с помощью fc -p . Когда вы вызываете fc -P , он восстанавливает значение HISTFILE до вызова fc -p .

     freeze_history () { fc -A fc -p $HISTFILE unset HISTFILE } unfreeze_history () { fc -P } 

    К сожалению, история не может быть отредактирована непосредственно в памяти, ее можно только заполнить искусственно, читая из файла.

    Это может помочь: вы можете ввести unset HISTFILE чтобы отключить историю для сеанса. Выйдите из системы и снова запустите его снова.

    Кроме того, вы можете вернуться к команде в истории и удалить ее, нажав CTRL-u .

    Удачи!

    Linux и Unix - лучшая ОС в мире.