기록을 파일로 저장하도록 bash를 설정했습니다. 이것은 bash가 [적절하게] 종료 될 때마다 수행됩니다. 때때로 bash가 올바르게 종료되지 않으므로 기록이 손실됩니다.
문제는 더 정기적으로 기록을 저장하기 위해 bash를 설정할 수 있습니까?
Linux 커널로 Debian Gnu (버전 6, Squeeze)를 실행하고 있습니다.
bash 버전 : GNU bash, 버전 4.1.5 (1)-릴리스 (i486-pc-linux-gnu)
기록을 파일로 저장하도록 bash를 설정했습니다. 이것은 bash가 [적절하게] 종료 될 때마다 수행됩니다. 때때로 bash가 올바르게 종료되지 않으므로 기록이 손실됩니다.
문제는 더 정기적으로 기록을 저장하기 위해 bash를 설정할 수 있습니까?
bash 버전 : GNU bash, 버전 4.1.5 (1)-릴리스 (i486-pc-linux-gnu)
답변:
$ HISTFILE이 루트가 소유하고있을 가능성이 있습니다. 로그인 쉘로 bash를 사용한다고 가정합니다. 확인하는 방법은 다음과 같습니다.
$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history
HISTFILE의 기본값은 ~ / .bash_history입니다. "HISTFILE을 설정해야합니다"오류가 표시되거나 $ HISTFILE이 ~ / .bash_history가 아닌 경우 ~ / .profile 또는 ~ / .bash_profile 또는 ~ /을 확인해야합니다. bashrc가 잘못 설정되거나 재설정되지 않았는지 확인하십시오.
일반적으로 루트가 소유하고 있으므로 재설정하십시오.
$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history
로그 아웃 한 후 로그인하십시오.
$ history
루트가 파일을 소유하기 전에 입력 한 마지막 명령 세트와 파일 소유권이 변경된 후 입력 한 명령을 표시해야합니다.
shopt -s histappend
아래 에 항목 이/etc/bash/bashrc
있습니다. 여전히 실행중인 쉘의 부정확 한 종료는 명령 행 히스토리를 잃습니다.