답변:
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
그렇고, 이 라인은로 들어갑니다 .
기존의 대답은 정확하지만 appendhistory
역사를 저장하는 것보다 더 나은 옵션이 있다는 것이 추가 가치가 있다고 생각했습니다 SHARE_HISTORY
.
문서에서 SHARE_HISTORY
"둘 다 내역 파일에서 새 명령을 가져오고 입력 한 명령이 내역 파일에 추가됩니다". 이것은 현재 쉘을 닫거나 새로운 쉘을 열지 않고도 쉘이 서로의 히스토리를 인식 함을 의미합니다.
따라서 모두 함께 다음과 같이 설정했습니다.
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=1000
setopt SHARE_HISTORY
INC_APPEND_HISTORY_TIME
위와 같이 모든 터미널에서 히스토리에 쓰는 것을 선호 하지만 그 히스토리는 "같은 히스토리 파일을 사용하는 쉘의 다른 인스턴스에서 즉시 사용할 수 없습니다". 각 터미널의 기록을 독립적으로 탐색 할 수 있지만 여전히 기록되어 있기 때문에 이것은 더 의미가 있습니다.
INC_APPEND_HISTORY_TIME
더 논리적 인 의미가 있는지 완전히 알 수 있습니다. 아마 "더 나은"이라고 말해서는 안됩니다.이 시점에서 그것은 개인적인 취향의 문제 일뿐입니다!
zsh
,하지만 기본으로bash
따라 자신의 기록 파일에 대한 쓰기 종료 당신이 전에 그것을 사용하고 약간의 껍질을 열 수없는 경우 수단, 그들은 지금 역사는 적어도 하나의 로그 아웃 할 때까지, 따라서 그것의 역사 파일을 모든 쇼를 작성합니다.