터미널의 새 인스턴스를 열 때마다 기록이 비어 있습니다. 왜 그런 겁니까? 뭔가를 설정해야 합니까? 하지만 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