어떤 이유로, 재부팅 후 시스템이 BASH 기록을 유지할 수 없습니다. 내 관련 섹션은 다음과 같습니다 ~/.bashrc
.
shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"
내가 알 수있는 한 필요한 옵션이 모두 있습니다 ( 과거의 모든 재부팅없이 여러 재부팅에서 기록을 유지할 수 있다는 것을 알고 있습니다). 그러나 몇 번의 재부팅 전에이 옵션을 추가했지만 재부팅 후 여전히 대부분의 기록을 잃어 버렸습니다. 비어 있지 않지만 재부팅 전에 9999 줄이 없습니다.
누군가 불평하기 전에, 나는이 질문들을 읽었습니다. 위에 나열된 제안 중 일부를 구현했지만 나머지는 도움이되지 않았거나 관련이 없었습니다.
- histappend를 사용할 때 배쉬 히스토리 손실
- Bash가 기록을 변경하지 못하게하는 방법은 무엇입니까?
- bash history 명령에 무엇이 표시됩니까?
- 여러 세션에서 bash 기록을 유지하려면 어떻게합니까?
- bash 기록을 정기적으로 저장하십시오.
다른 관련 명령이있을 수있는 기회가있을 때 ~/.bashrc
여기에서 내 전체를 볼 수 있습니다 .
그래서, 내가 무엇을 놓치고 있습니까? 내 역사가 저장되지 않는 이유는 무엇입니까? 다른 파일이 관련이 있다고 생각되면 알려 주시면 게시하겠습니다. 나는 실행에 의해 확인 grep -i hist \.*
내에서 $HOME
유일하게 관련된 것으로 나타났다되는 .
파일이 문자열을 포함 hist
하거나 HIST
이었다 .bashrc
.
Linux Mint Debian Edition, GNU bash, 버전 4.2.36 (1)-릴리스 (x86_64-pc-linux-gnu)를 실행 중이며 내가 좋아하는 터미널 에뮬레이터 (관련된 경우)는 terminator
입니다.
최신 정보:
의견에서 @mpy의 제안에 따라 기본값 과 반대로 ~/.bashrc
설정하도록 변경 했으며 대화 형 쉘 의 문제를 해결하는 것으로 보입니다 . 로그인 셸은 기록이 줄 에서 잘린 상태로 여전히 동일한 동작을 표시합니다 . 그러나 관련 파일에 설정된 관련 변수 가 없습니다 .HISTFILE=~/bash_history
~/.bash_history
500
HIST
$ for f in /etc/profile ~/.profile ~/.bash_profile ~/.bash_login; do \
echo -ne "$f :"; echo `grep HIST $f`; \
done
/etc/profile :
/home/terdon/.profile :grep: /home/terdon/.profile: No such file or directory
/home/terdon/.bash_profile :grep: /home/terdon/.bash_profile: No such file or directory
/home/terdon/.bash_login :grep: /home/terdon/.bash_login: No such file or directory
$ grep -r HIST /etc/profile.d/ <-- returns nothing
그럼, 왜 설정입니다 HISTSIZE
및 HISTFILESIZE
에 ~/.bashrc
내가 명시 적으로 설정하지 않는 충분하지 $HISTFILE
기본값이 아닌 다른 뭔가 ~/.bash_history
?
history
명령 을 실행할 때 , 당신이 보는 출력 cat .bash_history
은 줄 번호가 아닌 당신이 보는 것과 동일 합니다. 나는 평균은 수행 history
명령 목록 타임 스탬프 또는 기타 정보를? 내가 묻는 이유는, 당신이 이러한 난해한 것을 본다면, 그것은 다른 모듈 / 기능 / 프로그램이 있다는 것을 의미합니다. 이것은 쉘 히스토리와 그것이 무엇이든 잘못되거나 버그가있는 버전으로 엉망이되어 슬픔을 유발할 수 있습니다 .
;)
. 기본값이 아닌 다른 파일을 HISTFILE로 시도하십시오 ~/.bash_history
. 매우 구성된 설명 : bash는 기본 쉘이라고 가정하므로 시스템 시작시 비 대화식 쉘은 X 세션의 부모입니다 (또한 X를 사용한다고 가정합니다). histappend 옵션에 대해서는 아무것도 알지 못합니다 (.bashrc는 대화 형 쉘에 의해 읽히는 것),이 상위 쉘이 모든 것을 실행하는 한 모든 것이 정상이지만 종료시 (즉, 시스템 정지) 재정의 ~/.bash_history
(기본값)를 무시 하고 히스토리를 엉망으로