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

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

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

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

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

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

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

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

  • Ctrl + левая / правая стрелка
  • Как объединить zw autocomplete для аргументов функции-оболочки и существующей команды
  • Показывать материал под подсказкой в ​​командной строке?
  • zch не работает корректно в Mint
  • Обновление функций оболочки и псевдонимов через переменные среды
  • $ @ и 'set env $ PATH' - зачем это утверждение входит в .inputrc?
  • Исходный контроль и символическая ссылка для .zhistory
  • Что делает строка `set - $ args` и почему она ведет себя по-разному между Zsh и Bash?
  • 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 - лучшая ОС в мире.