무제한 Bash 이력
나는 나의 것을 원한다..bash_history
예를 들어, 파일을 무제한으로 만듭니다.그러면 언제든지 과거로 돌아가서 내가 어떻게 구축/구성했는지, 그 nifty 명령어가 무엇이었는지, 또는 몇 주 전에 어떤 명령어가 어떻게 고장났는지 확인할 수 있습니다.이 설정을 변경하려면 어떻게 해야 합니까?
몇 년 동안 크고 추악한 반복과 이상한 모서리 케이스를 겪으면서 저는 이제 이 일에 전념할 수 있는 간결한 부분을 갖게 되었습니다.
먼저 (Ubuntu의 경우 기본값)의 이 섹션을 설명하거나 삭제해야 합니다.그렇지 않은 경우 특정 환경(실행 등)screen
sessions)는 이력을 잘라냅니다.
# 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 --version
bash 버전을 확인합니다.
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
'programing' 카테고리의 다른 글
Bash 조건: 표현식 "및" 방법은?([! -z $VAR & -e $VAR ]의 경우) (0) | 2023.04.08 |
---|---|
파라미터의 큰따옴표 이스케이프 (0) | 2023.04.08 |
파이프 출력 및 캡처 종료 상태(Bash) (0) | 2023.04.08 |
대상 시스템에서 백그라운드에서 명령을 실행하도록 ssh를 가져오는 중 (0) | 2023.04.08 |
한 셸 스크립트에서 다른 셸 스크립트로 모든 변수를 전달하시겠습니까? (0) | 2023.04.08 |