배쉬 역사
활성 터미널에서 발행 된 모든 새 명령 .bash_history
은 다음 명령으로 파일에 추가 될 수 있습니다 .
history -a
이해하기 어려운 까다로운 개념은 각 터미널마다 고유 한 bash 기록 목록 ( .bash_history
터미널을 열 때 파일 에서로드 됨 )이 있다는 것입니다.
이 활성 터미널의 수명 동안 다른 터미널에서 작성된 새 기록을 가져 오려면 .bash_history
파일 내용을 활성 bash 기록 목록에 추가 할 수 있습니다
history -c;history -r
이렇게하면 현재 히스토리 목록이 지워 지므로 반복 된 목록이 표시되지 않으며 히스토리 파일이 (현재 비어있는) 목록에 추가됩니다.
해결책
bash 변수 PROMPT_COMMAND
를 사용하여 새 프롬프트마다 명령을 실행할 수 있습니다 (터미널에서 Enter를 누를 때마다)
export PROMPT_COMMAND='history -a'
이것은 각 명령 이 발행 될 때 히스토리 파일 에 기록 됩니다 .
결과
이제 새로운 터미널을 열면 다른 터미널에 관계없이 다른 터미널의 이력이 exit
생깁니다. 이것이 내가 선호하는 워크 플로우입니다.
더 정밀한
(어떤 이유로 든) 동시에 사용하고있는 두 개의 터미널이 있고 각각의 새 명령에 대해 기록이 두 터미널 사이에 반영되기를 원한다고합시다.
export PROMPT_COMMAND='history -a;history -c;history -r'
여기서 주요 단점은 반대 터미널에서 최신 히스토리를 가져 오려면 Enter 키를 눌러 PROMPT_COMMAND를 다시 실행해야 할 수도 있다는 것입니다.
왜 이보다 정확한 옵션이 과도하게 사용되는지 알 수 있지만 해당 사용 사례에서 작동합니다.