리눅스에서 명령어 이력 검색하기

Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.

리눅스에는 사용자가 콘솔 환경에서 대화식으로 명령어를 입력하면서 사용하는 쉘(Shell) 이라는 소프트웨어가 있다.
은 사용자가 입력한 명령어들을 ~/.bash_history 파일에 기록해두는데, 이를 이용해 명령어 이력을 호출 및 검색할 수 있다.

명령어 이력은 두 가지 방향으로 검색할 수 있다.

  • 후방 검색(~/.bash_history에서 ↑ 방향, 최근 => 오래된 순): Ctrl + R
  • 전방 검색(~/.bash_history에서 ↓ 방향, 오래된 => 최근 순) : Ctrl + S

하지만 전방 검색의 경우, Ctrl + S 는 초기 상태에서 이미 다른 조작이 할당되있으므로 .bashrc에서 따로 설정을 변경해주어야 사용할 수 있다.

$ echo "stty stop undef" >> ~/.bashrc

위의 명령어를 실행한 후, 터미널을 재시작하거나 원격으로 접속한 경우 재로그인하여 bash를 재실행한다.

만약 더 오래된 명령어도 검색할 수 있기 위해 명령어 이력 저장 건수를 늘리고 싶다면 .bashrc 에서 HISTSIZEHISTFILESIZE 환경 변수의 값을 증가시켜준다.

  • HISTSIZE : 메모리에 저장할 이력의 최대 건수
  • HISTFILESIZE : .bash_history에 저장할 이력의 최대 건수

bash가 실행되면 .bash_history에서 명령어 이력 내용을 메모리에 복사하고 그 메모리 복사본에서 명령어 이력을 검색하는 구조이기 때문에 두 변수 모두 증가시켜주어야 한다.


출처