13.12. 명령어 히스토리와 탭 자동 완성 기능

같은 명령어를 계속 반복해서 입력하는 것은 매우 피곤한 일입니다. 또한 아주 사소한 오타로 명령을 못 쓰게될 수도 있습니다.

한가지 해결책은 명령행 히스토리를 사용하는 것입니다. [위 화살표] 키와 [아래 화살표] 키를 사용하여 스크롤 해가면서, 이전에 입력했던 수많은 명령어들을 찾을 수 있습니다.

13.9.1 절에서 만든 sneakers.txt 파일을 다시 한번 살펴봅니다. 그러나 먼저, 쉘 프롬프트에서 다음과 같이 입력합니다:

cat sneakrs.txt

물론 아무 일도 일어나지 않습니다. 왜냐하면 sneakrs.txt란 파일이 존재하지 않기 때문입니다. 하지만 걱정 마십시오. 위, 아래 화살표 키를 이용하여 명령어를 다시 불러올 수 있습니다. 그 다음 왼쪽 화살표 키를 이용하여 "e"가 빠진 부분으로 이동한 후 단어를 적어넣고 다시 [Enter]를 누르십시오.

이제 sneakers.txt 파일의 내용이 나타날 것입니다.

기본 값으로 bash 명령행 히스토리 파일에는 최고 500개의 명령어가 저장되어 있습니다.

작은보힌트
 

쉘 프롬프트에서 env 명령을 입력하면, 명령 행 히스토리의 크기를 조절하는 환경 변수를 볼 수 있습니다. HISTFILESIZE=500 라고 쓰여진 라인은 bash가 저장하고 있는 명령어의 숫자를 말해줍니다.

명령행 히스토리는 언제나 로그인 디렉토리에 있는 .bash_history 파일에 저장되어 있습니다. vi, cat, less, more와 같은 텍스트 보기 명령을 사용하여 명령행 히스토리를 읽을 수 있습니다.

파일 길이가 길 수도 있다는 점을 염두해 두십시오. more 명령을 이용하여 읽으시려면, 여러분의 홈 디렉토리에서 다음과 같이 입력하십시오:

more .bash_history

화면 다음으로 진행하시려면, [Space]를 누르시면 됩니다; 화면 뒤로 이동하기 위해서는, [b] 키를 누르시면 됩니다; 종료하시려면, [q]를 누르십시오.

작은보힌트
 

히스토리 파일에서 화살표를 계속 눌러 각 페이지 마다 살펴보지 않고 원하는 명령어를 찾기 위해서는, 강력한 검색 유틸리티인 grep 명령을 사용하십시오 (13.11.3 절 참조). 이전에 사용한 명령어를 재빨리 찾을 수 있는 방법은 다음과 같습니다: cat sneak-어떤 단어 (something)과 유사한 명령어를 찾고 있다고 가정해 봅시다. 이 명령을 이전에 사용했었고 히스토리 파일 안에 있을 거라고 생각된다면, 쉘 프롬프트에서 다음과 같이 입력합니다:

history | grep sneak

또 다른 시간을 절약해주는 도구는 명령어 자동 완성 기능(command completion)이라고 알려진 것입니다. 파일이나 명령어 또는 경로명의 일부를 입력한 후 [Tab] 키를 누르시면, bash가 알아서 파일/경로명의 남아있는 부분을 채우거나 또는 (만일 시스템에 사운드가 켜있다면) 경고음을 낼 것입니다. 경고음이 들리면, 다시 [Tab] 키를 누르시면 지금까지 입력한 내용과 일치하는 파일과 경로명 목록을 볼 수 있습니다.

예를 들어, 만일 여러분이 updatedb 명령어를 잊어버리고 일부만 기억하신다면, su 명령을 사용하여 루트로 간 다음, 쉘 프롬프트에서 up을 입력하고 [Tab] 키를 두번 누릅니다. 그러면 updatedb 와 uptime를 포함한 가능한 명령어 목록을 보실 수 있을 겁니다. 다시 upd을 입력하고 [Tab] 키를 누르면, 자동으로 완성된 명령어가 나타납니다.