bash에서 무한한 명령 기록을 얻는 방법?


54

내가 설정 export HISTSIZE=99999999999999했지만 그게 가장 좋은 방법입니까? 오버플로가 발생할 수 있는지 모르겠습니다. 명령 기록 제한을 제거하는 테스트되고 신뢰할 수있는 방법을 찾고 있습니다.


내가 아는 내장 메커니즘은 없습니다.

나는 이것이 대답 할 때 나도 알 수 있도록 주석을 달고있다!

2
debian-administration.org/articles/543 이 더 좋은 대답 일 수 있습니다. 적어도 수퍼 유저 솔루션보다 더 큰 무한대 값을 처리합니다. :-)

실제로는 9999로 줄일 수 있습니다 (또는 999; 1000을 사용합니다). 나는 약 1000보다 큰 역사가 유용하다는 것을 결코 발견하지 못했습니다. 스크립트로 만들기 위해 명령을 복구하려면 일반적으로 천 명령 내에서 잘 수행하십시오. 그렇지 않으면 갈 수 있고 아무런 해가 없습니다.
Jonathan Leffler

@JonathanLeffler : 광산 은 1300 줄로 만들 수있는만큼 작습니다. Ctrl-R은 매우 유용합니다.
l0b0

답변:


69

그것은 참으로 하지 문서화 (잘)와 나는 veeery 많은 수의 HISTSIZE를 설정하는 계획이었습니다이에서 bash 사용자의 99 %를 같아요.

GNU bash 히스토리는 강력한 readline 라이브러리를 통해 처리됩니다. 라이브러리는 히스토리 크기를 제한하는 옵션 (읽기 선 전문 용어의 "소독")을 포함하지 않고 bash는 단순히 읽기 라인 히스토리를 stifled / unstifled로 설정합니다. 예를 들어 GNU bash 버전 4.2, 파일 variables.c, 4443 행, void void sv_histsize (char *)를 살펴보면이 주석 (및 다음 함수에서 전체 stifling / unstifling)을 찾을 수 있습니다.

/ * HISTSIZE 또는 HISTFILESIZE 변수가 변경된 후 수행 할 작업
이 HISTSIZE의 값이 있고 숫자 인 경우 히스토리를 억제하십시오. 그렇지 않으면이 변수에 값이
없으면 히스토리를 제거하십시오. name이 HISTFILESIZE이고 값이
숫자 인 경우 히스토리 파일을 잘라서 여러
줄을 넘지 않도록하십시오 . * /

따라서 이것은 트릭을 수행해야합니다.

export HISTSIZE=""

또한 이것 (충분하다고 느끼는 경우) :

export HISTSIZE="GOTCHA"

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


2
턱시도 축복 :)
meeDamian

17
내가 제안 : 수출 HISTSIZE = "INFINITE"
AmanicA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.