Ctrl + 문자 키보드 단축키를 사용할 때 왜 ^ C, ^ V 등이 터미널에 나타 납니까?


26

명령의 출력에서 텍스트를 복사 - 붙여 넣을 때 때때로, 나는 실수로 사용합니다 Ctrl+ c대신 Ctrl+ Shift+ c.

따라서 명령 줄은이를 다음과 같이 해석합니다 ^C.

왜 이런거야? 명령 행이 control입력을 ^? 로 해석하는 이유는 무엇 입니까?

답변:


35

실제로 문자 "^ C"를 삽입하지는 않습니다. 다음과 같이 인쇄 할 수없는 ASCII 제어 문자를 나타냅니다.

  • ^C → ETX (텍스트 끝, 종료 신호 전송), ASCII 0x03
  • ^D → EOT (전송 종료, 입력 종료), ASCII 0x04
  • ^H→ BS (백 스페이스 \b), ASCII 0x08
  • ^J→ LF (줄 바꿈 \n), ASCII 0x0A
  • ^L → FF (양식 공급, 새 페이지, 터미널 삭제), ASCII 0x0C
  • ^M→ CR (캐리지 리턴 \r), ASCII 0x0D

이것은 키보드를 사용하여 삽입 할 수있는 가능한 ASCII 제어 문자의 작은 추출입니다. 여기 에서 전체 목록을 찾을 수 있습니다 .

가장 기억해야 할 것은 Ctrl+ C, Ctrl+ DCtrl+ L입니다.


^"컨트롤"에 대한 기호로 캐럿 을 사용하는 것은 터미널이 텍스트 전용이었던 그래픽 이전 시대로 거슬러 올라가며 그 전에도 터미널과 카드가없고 카드와 종이가 있었을 때도 믿습니다. 캐럿이 상징으로 선택 되었는지 알고 싶습니다 .
Paddy Landau

8

CTRL+ KEY콤보는 터미널에서 인쇄 할 수없는 ASCII 문자로 해석 되므로 인쇄 할 수없는 문자를 나타내야합니다.

ANSI를 지원하는 VT 터미널 에서 유래 된 규칙 은 캐럿 ( ) 및 으로 표시되는 CTRL+ KEY콤보를 나타내는 것 입니다 .CTRL^KEYKEY


5

터미널에서 복사하거나 터미널로 붙여 넣을 때 단축키 Ctrl+ InsertShift+를 Insert각각 사용하는 것이 가장 좋습니다 .

X 그래픽 환경에서 Ctrl+ InsertShift+ Insert는 동일한 Ctrl+ CCtrl+에 연결되어 있지만 터미널 사용을위한보다 일반적인 단축키입니다 V.

대부분의 터미널에서 Ctrl+ C(로 표시 ^C)는 프로세스 실행을 중지하는 데 사용되므로 해당 바로 가기로 붙여 넣기가 작동하지 않습니다.

빠른 복사 및 붙여 넣기를 위해 복사하려는 텍스트를 강조 표시 한 다음 붙여 넣을 위치를 마우스 오른쪽 버튼으로 클릭하여 X의 기본 버퍼를 활용할 수 있습니다. 키보드가 필요하지 않습니다.


2
죄송하지만 질문을 오해했습니다. OP는 ^CCTRL + C (또는 다른 문자 CTRL +)를 누를 때 문자열 또는 이와 유사한 문자열 이 나타나는 이유를 알고 싶어했습니다 . 터미널에서 물건을 올바르게 복사하여 붙여 넣는 방법이 아닙니다. 답변이 좋습니다.
바이트 사령관

@ByteCommander, 바로 당신입니다! 내 사과, 나는 질문에 이미 올바르게 대답 된 것처럼 대답을 그대로 남겨 둘 것입니다 :) 누군가 이것에 걸려 넘어져서 쓸만한 것을 발견 할 수 있습니다.
키퍼 루크

-2

당신은 해야 사용 할 수 Ctrl+를 C하지 Shift+ Ctrl+ C, 명령 행에서, 그들은 같은 일을 (하기 때문에 Ctrl+가 C보다 쉽습니다 Shift+ Ctrl+ C). GUI가 일부 키 입력을 캡처하고 특별한 작업을 수행하는 특정 그래픽 환경에서는 그렇지 않을 수 있지만, 키 입력이 실제로 명령 행으로 전송되면 차이가 없습니다. 그렇기 때문에 Ctrl+를 누르면 C소문자 C 대신 ^ C를 대문자 C로 표시 할 수 있습니다. 편지의 경우에도 마찬가지입니다. 다른 캐릭터의 Shift경우 효과가있을 수 있습니다.)

Ctrl-를 누르면 CASCII 테이블에서 대문자 위치 아래 64 (ASCII 테이블에서 소문자 위치보다 96 이하) 인 ASCII 코드를 보냅니다. 따라서 Ctrl- c(소문자)를 누르면 ASCII 코드 3 (대문자 C의 ASCII 코드 67 보다 64가 작음)이 전송 됩니다. 많은 환경 에서 숫자 키패드 Alt를 누른 상태 3에서 눌렀다가 ( 3키 를 놓은 다음 키 를 놓음 Alt) 동일한 효과를 얻을 수 있습니다.

^ C와 관련하여 ^는 " Ctrl"키 의 잘 알려진 축약 형입니다 . 마찬가지로 M-는 " Alt"키 의 줄임말입니다 . 예 M은 잡고 입력 할 수있는 단어 "메타"의 약자 Alt를 눌러 다음, 또는 때때로 온다 무엇이든 누르면 Esc(및 해제 Esc) 한 후 다음 온다 무엇이든 누르면. "Control Key"에 대한 Wikipedia의 기사 : "Notation"섹션에서는 이를 "전통 표기법"으로 설명합니다. 이것은 Caret Notation ( Caret notation에 관한 Wikipedia의 기사 , Unix StackExchange : Caret Notation에 대한 ryvnf의 질문 )으로도 알려져 있습니다.

마지막 질문과 관련하여 명령 셸은 캐럿이되는 것을 "해석"하지 않습니다. 즉, 껍질은 아무것도 읽지 않고 캐럿이라고 생각합니다. 일어나고있는 일은 쉘이 출력에 잘 알려진 캐럿 표기법을 사용하고 있다는 것입니다. 또 다른 예로, 잘 알려진 호출기 인 "less"는 다음을 실행하여 캐럿 표기법을 사용합니다.dd if=/dev/zero bs=64 count=1 | less

"nano"텍스트 편집기는 온라인 도움말에서 ^ G, 일명 Ctrl-를 누른 후 표시되는 전체 온라인 도움말을 포함하여 캐럿 표기법을 사용합니다 g.


4
DevRobot은 특히 복사 및 붙여 넣기와 관련하여 Ctrl-C (또는 Shift-Ctrl-C)를 사용하도록 요청합니다. 이는 GUI 터미널을 의미합니다. 당신은 반드시 틀린 것은 아니지만 GUI 사용자 관점에서 누군가에게 분명히 혼란 스럽습니다.
RM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.