한동안 Linux를 사용하면서 이런 동작을 본 적이 있지만 제대로 설명을 들어본 적이 없습니다. 어쩌면 그것은 매우 간단할 수도 있습니다.
동일한 서버에서 동일한 사용자(bash)로 두 번 로그인하면 기록 명령을 사용하여 다른 결과를 얻을 수 있습니다.
나는 항상 .bash_history 파일이 하나뿐이므로 결과도 하나뿐이라고 생각했습니다.
답변1
bash 시작 중에 기록이 파일에서 로드됩니다. bash가 종료되면 파일이 자동으로 저장됩니다. Bash 실행 중에 기록은 메모리에 유지되며 기록 파일 또는 여러 bash 인스턴스와 동기화되지 않습니다.
history
현재 기록을 파일에 수동으로 저장하거나 내장 명령을 사용하여 디스크에서 로드할 수 있습니다 (참고 help history
자료 참조).
.bash_history 파일은 하나만 존재하지만(두 파일의 이름이 동일할 수 없기 때문에) HISTFILE
다른 파일을 사용하도록 변수를 설정할 수 있습니다.
man bash
(섹션)의 HISTORY
유용한 인용문 :
시작 시 기록은 HISTFILE 변수(기본값 ~/.bash_history)로 명명된 파일에서 초기화됩니다.
그리고
기록 가능 쉘이 종료되면 마지막 $HISTSIZE 행이 기록 목록에서 $HISTFILE로 복사됩니다.