[unix] 히스토리 리콜 명령 수를 설정하는 방법

bash를 사용하고 있습니다. 내 명령 기록을 탐색하려면 history동일한 이름의 Gnu 프로그램을 호출한다고 생각 하는 명령을 호출합니다. (나는 더 나은 bash 특정 방법이 있는지 모르겠다).

내 .bashrc에는 현재 export PROMPT_COMMAND='history -a'실행중인 여러 bash 세션의 기록을 보존 하는 줄 이 있습니다.

히스토리를 수행하면 현재 524 개의 항목 만 표시됩니다. 이 구성 가능합니까? 나는 이것을 2000보다 훨씬 더 큰 숫자로 늘리고 싶습니다.



답변

우선, history 이다 bash는 특정 방법은 없음 더. 이 history명령은 bash 내장으로 실행하여 볼 수 있습니다.

$ type history
history is a shell builtin

이제 기억하는 명령의 수는 HISTSIZE변수에 의해 제어됩니다 . 큰 숫자로 설정하려면이 줄을 추가하여 .profile(이 것보다 더 나은 곳입니다 이유를 .bashrc참조하십시오 여기가 ) :

export HISTSIZE=2000

이제부터는 history마지막으로 실행 한 2000 개의 명령을 반환합니다.


답변

그렇습니다 man bash.

HISTSIZE-명령 기록에서 기억할 명령 수

그러나 Readline의 변수가 있습니다.history-size

히스토리 목록에 저장된 최대 히스토리 항목 수를 설정하십시오. 0으로 설정하면 기존 기록 항목이 삭제되고 새 항목이 저장되지 않습니다. 0보다 작은 값으로 설정하면 히스토리 항목 수가 제한되지 않습니다. 기본적으로 히스토리 항목 수는 제한되지 않습니다.

당신은 설정할 수 있습니다 history-size와 함께 HISTSIZE=1000, bind 'set history-size 1000'또는에서 다음과 같은 라인 ~/.inputrc:set history-size 1000

:

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-size이후 사용 가능 bash-4.0-alpha: CHANGES


답변

HISTSIZE변수 지시는 얼마나 많은 명령을 실행 역사에 보관되어 HISTFILESIZE실행중인 역사에서 많은 명령은 쉘이 종료하면 저장되는 방법을 결정합니다.


답변