zshell의 명령이 히스토리에 저장되지 않도록하는 방법은 무엇입니까? 실행 기록에 보관되지

Bash에서는 명령이 실행 기록에 보관되지 않도록 공백을 넣는 것을 알고 있습니다. zshell과 동등한 것은 무엇입니까?



답변

HIST_IGNORE_SPACE 옵션을 사용하십시오.

setopt HIST_IGNORE_SPACE

남자 zshoptions

HIST_IGNORE_SPACE

행의 첫 번째 문자가 공백이거나 확장 된 별명 중 하나에 선행 공백이 포함 된 경우 히스토리 목록에서 명령 행을 제거하십시오. 명령은 사라지기 전에 다음 명령을 입력 할 때까지 내부 히스토리에 남아 있으므로 행을 잠시 재사용하거나 편집 할 수 있습니다. 다른 명령을 입력하지 않고 바로 사라지게하려면 공백을 입력하고 return 키를 누르십시오.


답변

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


답변