리눅스 콘솔 사용시에 생산성을 향상시킬 수 있는 콘솔 단축키를 소개합니다.
(맥 OS 터미널에서도 동일하게 동작합니다.)
간단하기 때문에 실행을 해보시기를 추천합니다.
간단하지만 예제는 처음부터 해보시길 바라겠습니다.

클라이언트나 주변 개발자에게 있어 보이는?? 모습도 보여줄 수 있습니다.

⚠ 소스코드의 #은 주석

 

커서 이동

일단 홈디렉토리로 이동하겠습니다.

$ cd ~

foobar라는 빈 파일을 생성하는 명령어인 touch실행해보죠.

$ touch foobar□         # ⚠ □ 는 커서위치

입력후 엔터 (foobar라는 빈 파일이 생성됩니다.)
화살표 키 ↑ 를 눌러주세요.
CTRL + A를 타이핑 해보세요.

$ □ouch foobar          # 커서가 가장 처음으로 이동합니다. (CTRL + A)

화살표 ↑ 는 이전 명령을 출력하는 키입니다.
CTRL + A는 커서를 맨 처음으로 보냈습니다.

다양한 커서 이동 단축키

CTRL + A의 케이스와 같은 방법으로 다양한 콘솔 단축키를 사용해보겠습니다.
ALT가 맥에서는 OPT라고 생각할 수 있지만 ESC입니다.

  • CTRL + A : 줄 맨 앞으로 커서 이동
  • CTRL + E : 줄 맨 끝으로 커서 이동
  • CTRL + F : 한글자씩 이동
  • CTRL + B : 이전 한글자로 이동
  • ALT + F (ESC + F) : 다음 한단어로 커서 이동
  • ALT + B (ESC + B) : 이전 한단어로 커서 이동
  • CTRL + L : 화면을 지우고 커서를 왼쪽 상단으로 이동 (clear 명령어와 동일)

 

텍스트 편집

콘솔에 입력한 텍스트를 수정하는 방법을 알아보겠습니다.
다시 화살표 ↑ 을 눌러서 touch foobar를 로딩합니다.

$ touch fooba□

이 상태에서 ALT + T (ESC + T) 를 타이핑 하면 커서가 위치한 곳의 단어와 앞의 단어가 foobar touch 바뀝니다.

$ foobar touch     # touch foobar 가 뒤집힘

더 많은 콘솔 텍스트 편집 단축키

콘솔에 입력된 텍스트는 다음과 같은 텍스트 단축키를 이용해서 편집이 가능합니다.

  • CTRL + D : 현재 커서 위치 글자 지우기
  • CTRL + T : 현재 커서 위치에 있는 글자와 바로 앞 글자의 위치 바꾸기
  • ALT + T (ESC + T) : 현재 커서 위치의 단어와 바로 앞 단어의 위치 바꾸기
  • ALT + L (ESC + L) : 현재 커서 위치의 글자부터 그 단어 끝 부분까지 소문자로 바꾸기
  • ALT + U (ESC + U) : 현재 커서 위치의 글자부터 그 단어 끝 부분까지 대문자로 바꾸기

잘라내기 / 붙이기 단축키

⚠ 지워진 텍스트는 kill-ring 이라는 버퍼에 저장됩니다. (메모리에 저장)
(삭제된 데이터는 CTRL + Y를 누르면 붙여넣기가 됩니다.)

  • CTRL + K : 현재 커서 위치로부터 그 줄 끝 부분까지 텍스트 지우기
  • CTRL + U : 현재 커서 위치로부터 그 줄 처음 부분까지 텍스트 지우기
  • ALT + D (ESC + D) : 현재 커서 위치로부터 그 단어 끝 부분까지 텍스트 지우기
  • ALT + BACKSPACE (ESC + BACKSPACE) : 현재 커서 위치에서부터 그 단어 앞부분까지 텍스트 삭제하기 (단 커서가 단어 맨 앞에 위치하다면 바로 앞 단어를 삭제)
  • CTRL + Y : kill-ring에 있는 텍스트를 현재 커서 위치에 삽입

 

자동 완성

탭(tab)키를 이용한 자동 완성

리눅스 콘솔 단축키중 가장 편리하고 가장 많이 사용하는 단축키를 하나만 소개해야 한다면 주저없이 tab키를 이용한 자동완성을 소개하겠습니다. 사용법은 매우 간단합니다.

f만 입력한 후 탭(tab)을 두번 누르면

$ ls f              # 탭 탭

다음 처럼 foobar가 자동완성됩니다.

$ ls foobar   

ls의 파라미터 중 f의 시작이 만족하는 파일이 하나일때는 키워드가 완성됩니다.

만약 f로 시작하는 단어가 둘 이라면 f만 입력한 상태에서 탭을 두번 누르면 만족하는 리스트가 모두 출력됩니다.

$ touch ffoobar                 # f 로 시작하는 파일을 하나 더 생성
$ cat f                         # 탭 탭 
ffoobar  foobar                 # f 로 시작하는 모든 파일리스트 출력

명령어 자동 완성

c라고 입력한후 탭(tab)을 두번 누르면
환경 변수 PATH~/bin/ 경로에 포함된 c로 시작하는 모든 명령어를 볼 수 있습니다.

$ c             # 탭 탭
caller             chcon              chrt               compopt
captoinfo          chcpu              chsh               compose
case               chfn               cksum              continue

경로 자동 완성

cd 입력 후 /u 만 입력하고 탭을 누르면

$ cd /u         # 탭 탭

루트(/) 아래 u로 시작하는 모든 경로를 보여주거나 자동 완성됩니다.
명령어와 마찬가지로 여러가지라면 탭을 두번 누르면 만족하는 모든 리스트를 보여줍니다.

$ cd /usr       # 탭 탭 

위와 같은 완성된 경로에서 탭을 두번 누르면
/usr/ 하위의 모든 경로를 보여줍니다.

$ cd /usr/      
bin/     games/   include/ lib/     local/   sbin/    share/   src/ 

 

정리

리눅스 콘솔을 스마트?? 하게 사용할 수 있는 몇가지 단축키를 소개했습니다.
리눅스 콘솔(BASH)는 더욱 많은 편리한 환경을 제공합니다.
이것들을 찾아보는것도 생산성 향상에 큰 도움이 될거라 생각합니다.

 

참고

The Linux Command Line: A Complete Introduction