더북(TheBook)

Note ≣ 명령 히스토리에 대해 자주 듣는 질문

명령 히스토리에 이전 명령이 몇 개까지 저장되는가?

명령 히스토리에 저장되는 최대 개수는 500개 또는 환경변수 HISTSIZE에 저장된 개수까지다. 이 변수의 값은 다음과 같이 설정할 수 있다.

$ echo $HISTSIZE
500
$ HISTSIZE=10000

컴퓨터 메모리의 가격이 저렴하고 충분히 갖춰져 있으므로 HISTSIZE의 값을 크게 먼 과거 명령까지 기억하도록 해도 문제가 없다(10,000개의 명령 히스토리는 약 200kb의 메모리를 차지한다). 과감하게 -1로 설정해 명령 히스토리 개수를 무제한으로 두는 것도 가능하다.

명령 히스토리에 저장되는 내용은 정확히 어떤 것인가?

명령 히스토리에는 여러분이 입력한 내용이 평가되지 않은 그대로 저장된다. 만약 ls $HOME이라는 명령을 실행했다면, 명령 히스토리에 ls $HOME은 담기지만 ls /home/smith는 담기지 않는다(한 가지 예외가 있는데, 이는 3.2.2절의 노트 ‘명령 히스토리 표현식은 명령 히스토리에 저장되지 않는다’를 참고하자).

동일한 명령을 반복 입력해도 명령 히스토리에 반복해서 저장되는가?

이 동작은 환경변수 HISTCONTROL의 값에 따라 달라진다. 이 변수가 설정돼 있지 않다면 반복되는 동일한 명령도 반복적으로 저장된다. 이 변수의 값이 ignoredups(나는 이 설정을 추천한다)로 돼 있다면 연속적으로 입력된 동일한 명령은 한 번만 저장된다(그 외 다른 설정은 man bash 명령으로 확인해보길 바란다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.