HISTCMD가 bash에서 제대로 증가하지 않습니다.

HISTCMD가 bash에서 제대로 증가하지 않습니다.

HISTCMD는 비정상적인 동작을 보여주지만 절대로 재설정하지 않을 것이라고 장담합니다(모든 구성 파일을 확인했습니다). 따라서 프롬프트가 표시되기 전에 실수로 입력한 비밀번호가 포함된 항목을 삭제할 수 없습니다. "history -c"는 분명히 아무것도 하지 않습니다.

alex@Freesia:~$ echo $HISTCMD
916352
alex@Freesia:~$ echo $HISTCMD
931399
alex@Freesia:~$ history | tail
[...]
946443  2020-10-30-12:55history -d 871209
946444  2020-10-30-12:55history | tail
946445  2020-10-30-12:56echo $HISTCMD
946446  2020-10-30-12:56history | tail
alex@Freesia:~$ history -d 946444
bash: history: 946444: history position out of range

내 HIST 변수:

alex@Freesia:~$ env | grep HIST
HISTIGNORE=?:??
HISTCONTROL=ignoreboth
HISTTIMEFORMAT=%Y-%m-%d-%H:%M
HISTSIZE=2000
HISTFILESIZE=15000

리눅스 프리지아 4.9.0-13-amd64 #1 SMP 데비안 4.9.228-1 (2020-07-05) x86_64 GNU/Linux

답변1

@terdon이 제안한 것처럼 PROMPT_COMMAND가 범인입니다. 실수로 일부 명령줄을 잃어버린 후, 나는 다음에 있는 지침을 사용하여 "영원한 역사" 프로그램을 구현한 적이 있습니다.https://debian-administration.org/article/543/Bash_eternal_history. 결국 이 방법 사용을 중단했지만 아직까지

PROMPT_COMMAND="history -a;history -r" 

위 페이지에서 권장하는 내용은 정확히 아닙니다.

관련 정보