표기법

  • ^: Ctrl
    • 예: ^CCtrl + C를 의미한다.
  • M-: Meta
    • 예: M-CMeta + C를 의미한다.
    • option 이나 Alt 키가 Meta 키 역할을 해준다.

기억해둘만한 Ctrl 조합 제어 키

^C

  • ^C를 입력하면 인터럽트 신호(SIGINT)를 생성한다.
  • 보통 터미널에서 현재 실행 중인 작업을 중지시킬 때 사용한다.

^D

  • D0x44 이므로, ^D0x04(End of Transmission)이다.
  • 표준 입력의 끝, 파일의 끝을 표현할 때 ^D 문자를 사용한다.
  • 터미널 명령어 프롬프트에서 ^D를 입력하면 세션이 종료된다.

^J

  • J0x4A 이므로, ^J0x0A(Line Feed)이다.
  • 엔터 대신 사용할 수 있다.

^L

  • ^L: 화면을 지운다.
  • L0x4C 이므로, ^L0x0C(Form Feed)이다.
  • clear 명령어와 같은 효과를 낸다.

^M

  • M0x4D 이므로, ^M0x0D(Carriage Return)이다.
  • 엔터 대신 사용할 수 있다.

^V

  • ^V 입력 직후의 입력을 제어 문자로 해석하지 않도록 한다.
  • 터미널에서 특수한 제어 문자를 직접 입력하고 싶을 때 사용한다.
  • 예를 들어
    • ^V^C를 입력하면 ^C가 SIGINT를 발생시키지 않고, ^C 문자로 입력된다.
    • ^V를 입력하고, 엔터 키를 누르면 ^M 문자가 입력된다.

set -o emacs 모드에서의 편집 키

  • 이동
    • HOME, END
      • ^A: 커서를 줄의 처음으로 이동.
      • ^E: 커서를 줄의 끝으로 이동.
    • 한 칸 이동
      • ^F: 커서를 오른쪽으로 한 칸 이동. (와 똑같음)
      • ^B: 커서를 왼쪽으로 한 칸 이동. (와 똑같음)
    • 한 단어 이동
      • M-F: 커서를 오른쪽으로 한 단어 이동.
      • M-B: 커서를 왼쪽으로 한 단어 이동.
  • 삭제 관련
    • ^D: 커서 위치의 문자 한 개를 삭제. (오른쪽 방향으로 삭제)
    • ^H: 커서 왼쪽 문자 한 개 삭제.
    • ^K: 커서 위치부터 오른쪽 끝까지 삭제.
    • ^U: 커서 왼쪽으로 전부 삭제.
      • ^Y: ^U로 삭제한 내용을 붙여넣는다.
    • ^W: 커서 왼쪽의 단어 하나 삭제.
    • M-D: 커서 위치부터 현재 단어 오른쪽 끝까지 삭제.
  • 히스토리 관련
    • ^P: 히스토리에서 이전 명령어를 꺼내온다. (와 똑같음)
    • ^N: 히스토리에서 다음 명령어를 꺼내온다. (와 똑같음)
    • ^R: 히스토리에서 문자열을 검색한다.
    • 자세한 내용은 [[/cmd/bash/history]] 참고.
  • 그 외
    • M-#: 현재 편집중인 명령 제일 앞에 주석 문자(#)를 추가한다.
      • ^A#^M과 똑같은 효과를 낸다. 대단히 편리하다.

set -o vi 모드에서의 편집 키

  • 대부분 Vi와 똑같이 작동한다.
  • v는 [[/cmd/fc]]처럼, 명령을 편집할 수 있도록 Vi를 실행해 준다.