비슷하다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개 이상의 역사적 명령이 남아 있는 것을 확인했습니다.뒤쪽에새로운 로그인.