Как очистить историю в zsh

Кажется, у меня все получилось. Я просто набрал sudo apt-get install systemd, чтобы установить systemd, он сообщил:

The following NEW packages will be installed:
  libsystemd-journal0 systemd
0 upgraded, 2 newly installed, 0 to remove and 26 not upgraded.

После этого я получаю файл journald.conf, автоматически созданный в папке /etc/systemd/. Думаю, теперь это сработает -Спасибо

4
30.09.2019, 10:53
4 ответа

Чтобы получить пустую историю, временно установитеHISTSIZEна ноль.

function erase_history { local HISTSIZE=0; }
erase_history

Если вы хотите стереть новую историю из этого экземпляра оболочки, но сохранить старую историю, которая была загружена изначально, очистите историю, как указано выше, а затем повторно загрузите сохраненную историю fc -R.

Если вы не хотите, чтобы вызов erase_historyзаписывался в историю, вы можете отфильтровать его в хукеzshaddhistory.

function zshaddhistory_erase_history {
  [[ $1 != [[:space:]]#erase_history[[:space:]]# ]]
}
zshaddhistory_functions+=(zshaddhistory_erase_history)

Удаление одного определенного элемента истории(history -d NUMв bash )— это другое дело. Я не думаю, что есть другой способ, кроме:

  1. Сохранить историю:fc -AIдля добавления к файлу истории или fc -WIдля перезаписи файла истории, в зависимости от ваших предпочтений обмена историей.
  2. Редактировать файл истории($HISTFILE).
  3. Перезагрузить файл истории:fc -R.
24
27.01.2020, 20:54

Эквивалентом history -cна zsh являетсяhistory -p

18
02.09.2020, 16:03

Попробуйте запустить следующую команду:

kill -9 $$

Текущий терминал будет уничтожен без сохранения истории сеанса.

Также может быть полезно следующее:

rm -f ~/.zsh_history && kill -9 $$

Это приведет к удалению файла истории и остановке текущего терминала без сохранения истории сеанса.

1
07.01.2021, 17:48

Аналогично ответу @Gimi, но немного мягче, вместо удаления файла я стираю все его содержимое.

echo -n > ~/.zsh_history

или

:>.zsh_history
0
19.09.2021, 16:29

Теги

Похожие вопросы