기록은 zsh에 저장되지 않습니다.

기록은 zsh에 저장되지 않습니다.

터미널의 새 인스턴스를 열 때마다 기록이 비어 있습니다. 왜 그런 겁니까? 뭔가를 설정해야 합니까? 하지만 Bash에서는 이 작업을 수행할 필요가 없습니다.

답변1

Bash와 zsh는 기본값이 다릅니다. 기본적으로 Zsh는 기록을 파일에 저장하지 않습니다.

구성 파일 없이 zsh를 실행하면 구성 인터페이스가 표시됩니다. 이 구성 인터페이스에서 다음을 선택하십시오.

(1)  Configure settings for history, i.e. command lines remembered
     and saved by the shell.  (Recommended.)

그런 다음 권장 설정을 검토하고

# (0)  Remember edits and return to main menu (does not save file yet)

다른 하위 메뉴에 대해 (2) 완료, (3) 키 바인딩 및 (4) 옵션을 반복하고 선택합니다.

(0)  Exit, saving the new settings.  They will take effect immediately.

메인 메뉴에서.

권장 기록 관련 설정은 다음과 같습니다.

HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory

zsh의 기록 파일임을 나타내기 위해 기록 파일에 다른 이름을 사용하겠습니다. 최신 시스템에서는 최대 1000개의 라인을 추가할 수 있습니다.

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory

~/.zshrc그런데 이런 줄이 들어갑니다.

답변2

appendhistory기존 답변은 정확하지만 기록을 저장하는 것보다 더 나은 옵션이 있을 수 있다는 점을 추가하는 것이 가치가 있다고 생각했습니다 SHARE_HISTORY.

문서에서 SHARE_HISTORY"기록 파일에서 새 명령을 가져오거나 사용자가 입력한 명령을 기록 파일에 추가할 수 있습니다." 이는 현재 쉘을 닫거나 새 쉘을 열지 않고도 쉘이 서로의 기록을 알고 있음을 의미합니다.

따라서 다음과 같이 설정해야 합니다.

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=1000
setopt SHARE_HISTORY

답변3

작동하지 않고 모든 준비가 완료되었다면 다음을 시도해 보세요.

fc -W

그러면 현재 기록이 기록 파일에 기록됩니다. 당신이 얻는 경우:

zsh: locking failed for /home/username/.zsh_history: permission denied

이제 파일의 권한을 확인할 차례입니다.그리고상위 디렉토리에 있습니다.

답변4

별칭 사용:

별칭 기록="history1"

이것을 .zprofile에 추가할 수 있습니다.

테스트하고 차이점을 확인하세요. 역사 역사 1

관련 정보