답변:
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
과 ↑ 화살표 기록 에서 명령이 제거 됩니다.