Bash에서 무한 명령 기록을 얻는 방법은 무엇입니까?

Bash에서 무한 명령 기록을 얻는 방법은 무엇입니까?

설정했는데 export HISTSIZE=99999999999999그게 최선인가요? 오버플로가 발생할 수 있는지 알 수 없습니다. 저는 명령 기록 제한을 제거할 수 있는 테스트되고 안정적인 방법을 찾고 있습니다.

답변1

정말이다~ 아니다(글쎄) 문서화되어 있으며 이 계획의 bash 사용자 중 99%가 HISTSIZE를 아주 큰 숫자로 설정한 것 같습니다.

GNU bash 기록은 강력한 readline 라이브러리를 통해 처리됩니다. 라이브러리에는 히스토리 크기(readline 전문 용어로 "stifle")를 제한할 것인지 여부를 선택할 수 있는 옵션이 있으며 bash는 단순히 readline 히스토리를 stifled/unstifled로 설정합니다. 예를 들어 GNU bash 버전 4.2, 파일 Variables.c, 4443행, 함수 void sv_histize (char*)를 살펴보면 이 주석을 찾을 수 있습니다(및 다음 함수에서 전체 숨막히는/숨겨지지 않는 내용).

/* HISTSIZE 또는 HISTFILESIZE 변수가 변경된 후 수행할 작업.
이 HISTSIZE에 대한 값이 있고 숫자인 경우 기록을 억제합니다. 그렇지 않고 이 변수에 대한 값이 없으면
기록을 억제합니다. 이름이 HISTFILESIZE이고 해당 값이
숫자인 경우 해당 행 수를 초과하지 않도록 기록 파일을 자릅니다
. */

그래서 이것은 트릭을 수행해야합니다 :

export HISTSIZE=""

그리고 이것도 (당신이 반항적이라고 느낀다면):

export HISTSIZE="GOTCHA"

도움이 되었기를 바랍니다.

관련 정보