[bash] 무제한 배쉬 기록 [닫힘]

.bash_history파일을 무제한으로 만들고 싶습니다 . 예를 들어 항상 돌아가서 내가 어떻게 무언가를 구축 / 구성했는지, 그 멋진 명령이 무엇인지, 몇 주 전에 어떤 명령이 어떻게 깨 졌는지 확인할 수 있습니다. 이 설정을 어떻게 변경합니까?



답변

설정 HISTSIZEHISTFILESIZE빈 문자열의 .bashrc에 :

HISTSIZE=
HISTFILESIZE=

bash 4.3 이상 에서는 다음 을 사용할 수도 있습니다 HISTSIZE=-1 HISTFILESIZE=-1.

n.  Setting HISTSIZE to a value less than zero causes the history list to be
    unlimited (setting it 0 zero disables the history list).

o.  Setting HISTFILESIZE to a value less than zero causes the history file size
    to be unlimited (setting it to 0 causes the history file to be truncated
    to zero size).


답변

수년에 걸쳐 많은 크고 추악한 반복과 이상한 일이 일어난 후에, 나는 이것을 위해 .bashrc 의 간결한 섹션을 가지고 있습니다 .

먼저 .bashrc의이 섹션을 주석 처리하거나 제거 해야합니다 (Ubuntu의 기본값). 그렇지 않으면 screen세션 실행과 같은 특정 환경에서 여전히 기록이 잘립니다.

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000

둘째, 이것을 .bashrc의 맨 아래에 추가 하십시오 :

# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

참고 : 모든 명령은 실행 직후에 기록되므로 실수로 암호를 붙여 넣은 경우 기록 기록을 피하기 위해 “kill -9 %%”만 할 수 없으므로 수동으로 제거해야합니다.

또한 각 bash 세션은 전체 히스토리 파일을 메모리에로드하지만 히스토리 파일이 10MB로 증가하더라도 ( 시간이 오래 걸리는 경우) bash 시작 시간에 큰 영향을 미치지 않습니다.


답변

요 르그 베이어는 위에서 언급 한 것처럼 HISTSIZEHISTFILESIZE열쇠입니다.

또한, 당신은해야 확실히 환경 변수 확인 HISTCONTROL당신이 멋진 일을 (중복 역사의 명령을 저장하지 좋아 수행 할 수 있습니다, HISTCONTROL=erasedups)를. 수백 줄 cd ..이상 을 탐색해야한다면 무제한 히스토리를 가질 필요가 없습니다 .

링크 : here , bash history 작업 . bash 변수 FAQ도 찾아 볼 가치 가 있습니다 .


답변

여기에 적어도 두 가지 관련 환경이 있습니다.

  • HISTSIZE : 히스토리 파일의 항목 수
  • HISTFILESIZE : 히스토리 파일의 줄 수

나는 무제한 이라는 용어 가 종종 매우 큰 것과 동일 하다는 것에 동의 할 수 있다고 생각합니다 (또는 무제한 파일 저장 공간이 있습니까?). 따라서 값을 매우 크게 설정하십시오.


답변