더북(TheBook)
$ HISTCONTROL=ignoredups

서로 다른 셸이 명령 히스토리를 공유하는가?

각각의 셸은 저마다 별도의 명령 히스토리를 갖는다.

지금 막 실행한 대화형 셸에 명령 히스토리가 있다. 왜 그런가?

대화형 셸을 닫으면, 그때까지의 명령 히스토리를 $HOME/.bash_history 파일이나 환경변수 HISTFILE에 설정된 값이 가리키는 파일에 저장한다.

$ echo $HISTFILE
/home/smith/.bash_history

그리고 새로 셸을 실행하면 이 파일에서 명령 히스토리를 불러온다. 이 때문에 지금 막 실행한 셸에도 명령 히스토리가 존재하는 것이다. 만약 여러 개의 셸을 사용한다면 모든 셸이 명령 히스토리를 같은 파일에 저장하므로, 새로운 셸을 실행했을 때 어떤 명령 히스토리가 복원될지를 정확하게 예측하기는 어렵다.

환경변수 HISTFILESIZE는 파일에 저장할 명령 히스토리의 건수를 설정한다. HISTSIZE 변수의 값을 변경해 명령 히스토리 건수를 조정했다면 이 변수 역시 함께 수정하는 것이 좋다.

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