커맨드라인 키보드 기법
on Linux
커맨드라인의 목표 중 하나는 손을 많이 움직이지 않고도 다양한 일을 하게끔 하는 것이다.
마우스를 덜 사용하거나 키보드 내에서도 타이핑을 원활하게끔 하고 싶은 것인데, 이를 위한 기능들이 존재한다(해피해킹).
커서 이동이나 텍스트를 수정하는 등의 기능들이 ctrl 과 alt 등을 활용한 명령어로 구성되어 있기 때문에 익숙해지면 작업 능률이 향상된다.
커맨드라인 편집
우분투의 기본 쉘인 bash는 Readline
이라는 라이브러리를 사용한다.
화살표 키로 명령어를 왔다갔다 하는 것 역시 이 Readline 의 일부인데, 이외에도 다른 다양한 명령어들이 존재한다.
CTRL 을 사용할 경우는 주로 한 글자를 다루고, ALT 의 경우는 한 단어를 다룬다.
ALT 키를 누른 상태에서의 명령어 같은 경우는, ESC 키를 눌렀다 뗌을 통해 같은 역할을 수행할 수도 있다.
아래는 키보드로 커서를 이동시킬 수 있는 명령어들이다.
키 | 실행 |
---|---|
ctrl + a | 줄의 맨 앞으로 이동 (HOME) |
ctrl + e | 줄의 맨 끝으로 이동 (END) |
ctrl + f | 다음 칸으로 이동 (오른쪽 화살표) |
ctrl + b | 이전 칸으로 이동 (왼쪽 화살표) |
alt + f | 다음 단어로 이동 |
alt + b | 이전 단어로 이동 |
ctrl + l | 화면을 지우지만 (clear 명령어), 텍스트는 남아 있음 |
텍스트 편집
Readline 은 텍스트를 잘라내는 Killing 과, 버퍼에서 붙여넣는 Yanking 을 지원한다.
텍스트를 잘라낼 경우, 우리가 아는 클립보드의 개념인 kill-ring 이라는 버퍼에 저장해 놓는다.
키 실행 | |
ctrl + d | 현재 위치의 글자 하나 지우기 |
ctrl + t | 현재 위치의 글자와 앞 글자와 위치 바꾸기 |
alt + t | 현재 위치의 단어와 앞 단어와 위치 바꾸기 |
alt + l | 현재 위치부터 현재 단어의 끝까지 모두 소문자로 바꾸기 |
alt + u | 현재 위치부터 현재 단어의 끝까지 모두 대문자로 바꾸기 |
ctrl + k | 현재 위치부터 줄의 끝까지의 텍스트를 잘라내기 |
ctrl + u | 현재 위치부터 줄의 맨 앞까지 텍스트를 잘라내기 |
alt + d | 현재 위치부터 현재 단어의 끝까지 텍스트를 잘라내기 |
alt + backspace | 현재 위치부터 현재 단어의 맨 앞까지 텍스트를 잘라내기 |
ctrl + y | kill-ring 버퍼에 있는 잘라낸 텍스트를 현재 위치에 붙여넣기 |
자동 완성
사실상 가장 편하게 자주 쓰는 기능들 중 하나로 자동 완성 기능이 있다.
파일이나 디렉토리 명을 다 치기 귀찮을 때, 앞의 몇 단어를 치고 탭 키를 눌러줌으로써 디렉토리에서 찾아 자동으로 완성시켜준다.
다만 같은 단어로 시작하는 파일명이 여러개 있을 때는 시스템 알림 소리를 내보내고, 탭 키를 두번 누를 경우 그 여러개의 파일들을 임시로 stdout 에 리스트업 하여 보여준다.
경로명 뿐만 아니라 시스템 변수명들이나 명령어, 호스트명들도 자동 완성을 해준다.
배쉬의 최신 버전은 사용자가 쉘 스크립트에 규칙을 추가해서 사용하게 하는 programmable 자동 완성 기능을 지원하는데, 모든 배포판에서 기본 지원하는 것은 아니기 때문에 찾아서 따로 세팅해주어야 한다.