여러 tmux 창을 열 때 기록의 모든 내용을 유지하기 위해 .bashrc 파일에서 다음 코드를 사용합니다.
# Avoid duplicates
HISTCONTROL=ignoredups:erasedups
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend
# After each command, append to the history file and reread it
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
내 리눅스 컴퓨터에는 아무런 문제가 없습니다. 그러나 macOS에서는 tmux와 함께 단독으로 사용할 때 몇 가지 문제가 발생합니다(즉, 여러 개의 개방형 비동기 터미널이 tmux 없이도 잘 작동함을 의미).
그러면 tmux의 새 창에는 완전히 빈 기록이 있게 됩니다.
문제의 참고 댓글입니다여러 터미널 창에서 bash 기록 유지, macOS에서 유사한 프로그램을 사용하면 동일한 문제가 나타납니다 screen
.
history -c;
명령의 일부를 제거하려고 시도했는데 이제 새 tmux 창의 기록이 비어 있지 않습니다. 그러나 이것이 실행 가능한 솔루션인지, 어떤 경고가 있을 수 있는지 잘 모르겠습니다. 그래서 나의 주요 질문은 이 캐릭터가 어떤 역할을 하고 history -c
왜 필요한가입니다.
노트:문제를 재현할 수 없는 경우 알려주시면 OS 버전, 프로그램 버전, 로그를 제공해 드리겠습니다.
답변1
history -c
간단하고 짧은 대답은 a 이전에 수행하지 않으면 history -r
기록을 읽게 된다는 것 입니다.두 배.
마지막 명령(및 해당 번호)은 다음과 같이 제공됩니다 fc -l -1
.
$ fc -l -1
19131 clear
역사를 읽으면문서이번에도 대부분의 기록을 복사합니다(파일이 아닌 메모리에 있음).
$ history -r; fc -l -1
38319 fc -l -1
그것이 소유하고 사용하는 이유이다 history -c
.
빈 역사
그러면 tmux의 새 창에는 완전히 빈 기록이 있게 됩니다. 해결책은 매우 간단해야 합니다.
history -r
그리고 기록 파일의 모든 기록 기록은 메모리에 다시 나타납니다.