8. 고급 키보드 기법
키보드를 더 빠르고 효율적으로 사용할 수 있는 bash 기능을 살펴본다.
커맨드라인 편집
bash는 Readline
이라고 하는 라이브러리를 사용한다.
커서 이동
키 | 실행 |
---|---|
ctrl + a(head) | 줄 맨 앞으로 커서 이동 |
ctrl + e(nd) | 줄 맨 끝으로 커서 이동 |
ctrl + f(oward) | 다음 한 글자로 커서 이동 (오른쪽 화살키와 동일) |
ctrl + b(ackward) | 이전 한 글자로 커서 이동 (왼쪽 화살키와 동일) |
alt + f / Mac : alt + 오른쪽 화살키 | 다음 한 단어로 커서 이동 |
alt + b / Mac : alt + 왼쪽 화실키 | 이전 한 단어로 커서 이동 |
ctrl + L | 화면을 지우고 커서를 왼쪽 최상단으로 이동 (clear 명령어와 동일) |
메타 키(Meta Key)
Readline
개발자들은 기타 여분의 컨트롤 전용키가 있는지 확신할 수 없었기 때문에 메타(meta)라는 새로운 키를 만들어냈다.
맥에서는 ESC가 메타키를 대신하고 있다. 이 설정은 preferences -profile - keys
에서 변경할 수 있다.
텍스트 수정
Readline
문서는 Killing(텍스트 지우기)와 Yanking(텍스트 복사하기)라는 용어를 사용하는데 각각 의미하는 바는 잘라내기와 붙이기로 흔히 불린다. 잘라낸 데이터는 kill-ring이라고 하는 버퍼에 저장된다.
키 | 실행 |
---|---|
ctrl + k | 현재 커서 위치로부터 그 줄 끝 부분까지 텍스트 지우기 |
alt + d | 현재 커서 위치에서부터 그 단어 끝 부분까지 텍스트 지우기 |
ctrl + y | kill-ring에 있는 텍스트를 복사해서 현재 커서 위치에 삽입 |
자동 완성
명령어를 입력하는 동안 탭키를 누르면 자동 완성 기능이 작동한다.
자동완성은 경로명 뿐만 아니라 변수(단어 시작이 $
기호), 사용자명(~
기호로 시작), 명령어, 호스트명(@
기호로 시작)에도 사용될 수 있다.
히스토리 활용
히스토리 검색
$ history | less
$ history | grep /usr/bin
101 vi /usr/bin/env
# 히스토리 확장
$ !101
$ vi /usr/bin/env
히스토리 확장
쉘은 !
기호를 사용해서 히스토리 목록에 있는 항목들에 특수한 형식의 확장을 지원한다.
시퀀스 | 실행 |
---|---|
!! |
마지막 명령어를 반복하여 실행 |
!number |
number에 해당하는 항목을 실행 |
!string |
string로 시작하는 가장 최근에 입력된 항목을 실행 |
!?string |
string이 포함된 가장 최근 입력된 항목을 실행 |
$ !!
$ git push -u origin master
$ !pyenv
$ pyenv local introducing_python
$ !?virtualenv
$ pyenv virtualenv 3.6.0 introducing_python