programing

무제한 Bash 이력

goodcopy 2023. 4. 8. 11:26
반응형

무제한 Bash 이력

나는 나의 것을 원한다..bash_history예를 들어, 파일을 무제한으로 만듭니다.그러면 언제든지 과거로 돌아가서 내가 어떻게 구축/구성했는지, 그 nifty 명령어가 무엇이었는지, 또는 몇 주 전에 어떤 명령어가 어떻게 고장났는지 확인할 수 있습니다.이 설정을 변경하려면 어떻게 해야 합니까?

몇 년 동안 크고 추악한 반복과 이상한 모서리 케이스를 겪으면서 저는 이제 이 에 전념할 수 있는 간결한 부분을 갖게 되었습니다.

먼저 (Ubuntu의 경우 기본값)의 이 섹션을 설명하거나 삭제해야 합니다.그렇지 않은 경우 특정 환경(실행 등)screensessions)는 이력을 잘라냅니다.

# 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 시작 시간에 큰 영향을 주지 않습니다.

세트HISTSIZE그리고.HISTFILESIZE빈 문자열에 .syslogrc:

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).

bash --versionbash 버전을 확인합니다.

Jörg Beyer가 답변에서 언급했듯이,HISTSIZE그리고.HISTFILESIZE핵심입니다.

또한 환경변수를 반드시 확인해야 한다.HISTCONTROL이를 통해 중복된 이력 명령어를 저장하지 않는 등 쿨한 작업을 수행할 수 있습니다.HISTCONTROL=erasedups수백 개의 행을 검색해야 한다면 이력을 무제한으로 갖는 것은 의미가 없습니다.cd ..또는 이와 유사합니다.

링크: 여기bash 이력 관련 작업.bash 변수 FAQ도 참조할 가치가 있습니다.

여기에는 (적어도) 두 개의 관련 env var가 있다.

  • HISTSIZE: 메모리에 저장되어 있는 엔트리의 수
  • HISTFILESIZE: 이력 파일에 저장되는 줄 수

**고객님 오셨습니다

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

언급URL : https://stackoverflow.com/questions/9457233/unlimited-bash-history

반응형