이 Debian Jessie 설치에서는 Bash 기록이 Gnome 터미널에서 일관되지 않게 작동하는 것으로 보입니다.
$ echo $USER
me
$ echo $HISTFILE
/home/me/.bash_history
$ grep browser ~/.bash_history
browser-sync start
$ history | grep browser
2071 grep browser ~/.bash_history
2073 history | grep browser
browser-sync
파일의 행은 상당히 ~/.bash_history
오래되었습니다. 즉, 현재 터미널 세션보다 훨씬 오래되었습니다. 왜 결과에 표시되지 않습니까 history | grep browser
?
답변1
기본적으로 ~/.bash_history
대화형 세션은 종료될 때 디스크에 기록됩니다. 즉, 동시 쉘이 켜져 있으면최근 종료됨셸 세션은 해당 기록을 디스크에 기록합니다.
(기술적으로 모든 세션은 디스크에 쓰지만 두 개의 동시 세션은 다른 세션의 기록을 알지 못하므로 한 세션이 종료되면 무엇을 쓰나요?그것새로운 기록이 다음과 같다고 생각하고 다른 기록이 종료되면 기록됩니다.그것은역사)
바라보다https://unix.stackexchange.com/a/1292/20246자세한 내용은.
답변2
이 $HISTSIZE
변수의 값이 너무 낮습니다. 명백한 불일치는 값을 충분히 증가시키면 해결될 수 있습니다 $HISTSIZE
.
이것배쉬 매뉴얼잘 설명하지 않습니다.
역사적 규모
기록 목록에 기억할 최대 명령 수입니다. 값이 0이면 명령이 기록 목록에 저장되지 않습니다. 0보다 작은 값을 사용하면 각 명령이 기록 목록에 제한 없이 저장됩니다. 쉘은 시작 파일을 읽은 후 기본값을 500으로 설정합니다.
여기더 나은 설명은 다음과 같습니다.
HISTSIZE(500)의 기본값은 저장된 기록의 작은 부분만 로드합니다(저장된 기록이 500줄보다 큰 경우).