Ответы:
Используйте опцию HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
человек жопций
HIST_IGNORE_SPACE
Удалите командные строки из списка истории, если первый символ в строке является пробелом или когда один из расширенных псевдонимов содержит начальный пробел. Обратите внимание, что команда сохраняется во внутренней истории до тех пор, пока не будет введена следующая команда, прежде чем она исчезнет, что позволит вам кратко повторно использовать или редактировать строку. Если вы хотите, чтобы он сразу исчез без ввода другой команды, введите пробел и нажмите клавишу возврата.
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
, так и из истории стрелок..