리눅스에서 명령어 이력 검색하기
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
에서 HISTSIZE
와 HISTFILESIZE
환경 변수의 값을 증가시켜준다.
HISTSIZE
: 메모리에 저장할 이력의 최대 건수HISTFILESIZE
:.bash_history
에 저장할 이력의 최대 건수
bash가 실행되면 .bash_history
에서 명령어 이력 내용을 메모리에 복사하고 그 메모리 복사본에서 명령어 이력을 검색하는 구조이기 때문에 두 변수 모두 증가시켜주어야 한다.