Відповіді:
Використовуйте параметр HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
людина zshoptions
HIST_IGNORE_SPACE
Видаліть командні рядки зі списку історії, коли перший символ у рядку є пробілом або коли один із розширених псевдонімів містить провідний пробіл. Зауважте, що команда зберігається у внутрішній історії до введення наступної команди, перш ніж вона зникне, що дозволяє коротко повторно використовувати або відредагувати рядок. Якщо ви хочете, щоб це зникло відразу, не вводячи іншої команди, введіть пробіл і натисніть клавішу return.
kill -9 $$
дійсно фантастично уникати збереження в історії всіх команд, виданих у поточному термінальному сеансі.
unset HISTFILE
до блоку команд. Після цього потрібно буде скинути HISTFILE
або відкрити нову оболонку, щоб зберегти потрібні команди в історії.
Якщо ви хочете більш детально контролювати те, що додано до історії ZSH, ви можете визначити zshaddhistory
функцію в .zshrc
. У наступному визначенні використовується регулярний вираз для визначення шаблону для ігнорування:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Зауважте, що поведінка man zshopts
знизу HIST_IGNORE_SPACE
все ще присутня:
Зауважте, що команда зберігається у внутрішній історії до введення наступної команди, перш ніж вона зникне, що дозволяє коротко повторно використовувати або відредагувати рядок.
Отже, щоб перевірити це, вам доведеться вдарити додатково [Enter]
. Це видаляє команду як з виводу history
, так і з історії стрілок ↑.