zsh에서 터미널간에 기록을 어떻게 공유합니까?


29

입력 된 모든 명령이 열려있는 모든 터미널 기록에 표시되도록하려면 어떻게해야합니까?

여러 터미널을 열면 기록이 공유되지 않습니다. 즉, 한 터미널 기록에 입력 한 내용이 다른 터미널 기록에 표시되지 않습니다. Bash의 대안을 생각해보십시오 PROMPT_COMMAND="history -a"(프롬프트가 표시되기 전에 기록을 저장합니다).


답변:


36

다음과 같은 옵션이 적용됩니다.

  • 모든 명령을 실행하기 전에 저장하려면 (bash의 기록-솔루션과 다릅니다) :

    setopt inc_append_history
    
  • 히스토리가 호출 될 때마다 히스토리 파일을 읽으려면 다음 기능을 수행하십시오 inc_append_history.

    setopt share_history
    

.zshrc파일 에서 설정할 수 있습니다 .

배쉬 관련 :


4
"SHARE_HISTORY :이 옵션은 히스토리 파일에서 새 명령을 가져오고 입력 된 명령이 히스토리 파일에 추가되도록합니다 (후자는 INC_APPEND_HISTORY를 지정하는 것과 같으며이 옵션이 적용되는 경우 해제되어야 함 )." ( 수동 강조를 통해) 즉, INC_APPEND_HISTORY 옵션만으로 원하는 작업을 수행 할 수 있습니다.
artfulrobot

3
실제로 SHARE_HISTORY 옵션만으로도 원하는 작업을 수행 할 수 있습니다. "이 옵션이 적용되면 해제해야합니다"라는 문구는 "[SHARE_HISTORY] 옵션이 적용 중이면 [INC_APPEND_HISTORY]를 해제해야합니다"로 번역됩니다. 우분투 제니 얼의 zsh 5.1.1에서 이것을 테스트했습니다.
Linus Arver

1
@opert는 정확하다 : setopt share_history원하는 결과를 달성 할 것이다. @MJB에 대한 언급을 제거하기 위해 답변을 편집 setopt inc_append_history하시겠습니까? 실제 답변을 모호하게합니다.
bonh

이름은 대소 문자를 구분하지 않으며 밑줄은 무시 되므로및setopt | grep hist을 얻을경우. incappendhistorysharehistory
Pablo A

4

Robby Russell의 굉장한 OhMyZSH를 사용하면 더 많은 것들을 처리 할 수 ​​있습니다.

https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh를 참조 하십시오

그것은 포함 setopt inc_append_history 합니다.


그 / 그녀 / 그것입니다. 쉘 작업에 중요합니다.
Cees Timmerman

@CeesTimmerman은 고맙습니다. 일반적으로 의사 소통에 중요합니다. "쉘 작업의 중요성"은 무엇을 의미합니까?
james_womack

1
쉘에 오타가 있으면 전체 시스템이 손상 될 수 있습니다.
Cees Timmerman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.