Bash의 기록 목록은 새 로그인 시 항상 5000줄로 잘립니다.

Bash의 기록 목록은 새 로그인 시 항상 5000줄로 잘립니다.

비슷하다5000행 제한 문제첫 번째 일이 있을 때.bashrc나는 가지고 export HISTSIZE=10001 있고 export HISTFILESIZE=$HISTSIZE

내 사용자에게는 파일이 없으며 ~/.inputrc시스템 전체 /etc/inputrc파일(Ubuntu 11.10의 기본값과 변경되지 않음)에는 정의가 없습니다 history-size. 매뉴얼 페이지에는 readline힌트를 제공하는 것 외에는 기본값이 표시되지 않습니다.(0)또는 무제한.

history -w그러나 마지막 세션에서 더 많은 고유한 명령줄을 추가했거나 로그아웃하지 않고 저장했음에도 불구하고 로그인할 때마다 프롬프트에 5000개만 있다고 표시됩니다 .

이 한계는 어디에 설정되어 있으며 이를 극복하는 방법은 무엇입니까?

내 팁과 기타 흥미로운 설정은 다음에서 제공됩니다.~/.bashrc또는 파일 소스:

PS1='\u@\h\w \d,\t\$ (\!) '
HISTCONTROL=erasedups:ignorespace
HISTSIZE=10001
export HISTIGNORE="[   ]*:&:bg:fg:exit"
export HISTFILESIZE=$HISTSIZE
export PROMPT_COMMAND="history -a"  
shopt -s histappend
HISTTIMEFORMAT="%Y-%m-%d_%H-%M-%S " 
shopt -s histreedit

팁 예시:

master@quant~/dev Mon Feb 27,10:08:29$ (5721)

일부 의견에 답변하려면:

# to unpollute from other concurrent sessions, which previously already truncated file to 5000 at login:
master@ventana~ Mon Feb 27,18:47:35$ (9220) history -w  

master@ventana~ Mon Feb 27,18:51:34$ (9220) history |wc
   9219   69109  795143
master@ventana~ Mon Feb 27,18:51:51$ (9220) wc -l ~/.bash_history
18442 /home/master/.bash_history

# ignoring timestamps, nominally every other line like #1328201645
master@ventana~ Mon Feb 27,18:51:58$ (9220) grep -vc "^#[0-9]\{10\}$" .bash_history
9222

답변1

나는 이것에 대한 작동 이론을 가질 수 있습니다.

나는 예전에

HISTSIZE=10001

그러나 ~/.bash_history의 실제 줄은 다음과 같습니다.

#1341908063
w;df
#1341908291
wizmo reboot!
#1341909327
sc stop uxsms; sleep 1; sc start UxSms

즉, 내 HISTTIMEFORMAT="%Y-%m-%d_%H-%M-%S "쉘 환경 설정으로 인해 다른 모든 줄은 타임스탬프입니다.

따라서 5000개의 명령 기록을 위해서는 파일에 10000줄이 필요합니다.

이제 제한을 HISTSIZE=20001로 설정했습니다.

마지막으로 내 프롬프트에 5000개 이상의 역사적 명령이 남아 있는 것을 확인했습니다.뒤쪽에새로운 로그인.

관련 정보