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

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

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

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

  • Клавиша ESC вызывает небольшую задержку в терминале из-за его поведения Alt +
  • Как получить PID на терминал в начале * каждого * процесса?
  • В чем главная проблема, с которой сталкивается кто-то, мигрирующий из bash в zsh?
  • Как я могу применить `cut` к нескольким файлам, а затем« вставить »результаты?
  • терминал преобразует первую букву в верхний регистр
  • поиск файлов с использованием группового разрешения
  • Хотя история « заморожена »:

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

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

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

  • Как искать историю bash в режиме vi для «foo. * Bar»
  • Храните два файла истории bash, один с ignoredups, один со всем
  • Что может заставить vim не сохранять историю команд?
  • scp, globbing и различные оболочки
  • Символы имени действительной функции Shell
  • Как объединить дублируемую историю команды на терминале?
  • 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 - лучшая ОС в мире.