Ctrl + V를 Bash (Linux 셸)에 붙여 넣지 않는 이유는 무엇입니까?


192

클립 보드에 무언가를 복사하고 Bash에서 Ctrl+ V를 누르면 아무 일도 일어나지 않습니다. 그러나 마우스 오른쪽 단추를 클릭하고 붙여 넣기를 선택 하면 작업이 수행됩니다.

왜? Linux에서이 동작 뒤에 합리적인 문제가 있습니까?


25
Shift- Insert또한 작동
bonyiii

33
개인적으로 선호합니다 Ctrl-Shift-V.
amalloy

3
대부분의 쉘 환경에서 Shift + Insert 를 사용할 수도 있습니다 .
Fabian

4
Insert 키가 없으면 어떻게합니까?
Ben Racicot

3
그것은 Windows의 명령 프롬프트에서도 작동하지 않습니다
phuclv

답변:


360

물리적 터미널 시대에는 세션 전체 클립 보드가 없었으며, 종종 "버퍼"또는 "킬 링"이라는 이름으로 내부 복사 / 붙여 넣기를 지원하는 프로그램은 거의 없었으며 다양한 키 스트로크를 사용했습니다. 예를 들어, bash 쉘은 CtrlK또는 CtrlU"kill"(잘라 내기), CtrlY"yank"(붙여 넣기)를 사용합니다. 이에서 오는 이맥스 편집기 .

CtrlC유닉스의 거의 모든 곳 은 현재 프로그램이나 작업을 취소하는 데 사용되는 "인터럽트"키 였습니다 . 이 CtrlV키는 종종 "verbatim insert"를 의미했습니다. 즉, 연관된 조치를 수행하지 않고 다음 문자를 문자 그대로 삽입하십시오. 예를 들어, 일반 Esc스위치는 모드 명령하는 VI의 편집기를하지만 CtrlV, Esc삽입 할 ESC문서에 문자를.

사용 CtrlC복사 및 CtrlV세션 전체의 클립 보드에서 붙여 넣을 수는 1983 년 맥 OS 도입 및 Microsoft Windows 3.x를 1990 년 (이전 Windows 버전 (1.x 및 2.x에서)뿐만 아니라, IBM OS에서 / 2되었다 , 복사 및 붙여 넣기 를 위한 IBM CUA 키만 지원되었으며 이러한 단축키는 모든 Windows 버전에서 지원됩니다.)CtrlInsShiftIns

클립 보드를 지원하는 GUI가 마침내 Unix에 도달했을 때 Ctrl많은 터미널 프로그램에서 이미 키를 사용하고있었습니다. 또한 X 그래픽 인터페이스에는 "선택"과 "컷 버퍼"라는 메커니즘 이 약간 다릅니다 . 이제는 하나의 프로그램에서 텍스트를 선택하고 명확한 복사 작업없이 마우스 가운데 버튼을 사용하여 삽입 할 수 있습니다.

요컨대, Xterm과 GNOME Terminal이 쓰여질 때 (후자를 사용한다고 추측하고 있습니다), CtrlV 이미 몇 년 동안 완전히 다른 의미를 가졌으며 바꿀 수 없었습니다. 또한 텍스트를 복사하는 대체 방법 인 "선택"이 X11에 이미 있었으므로 명시적인 복사 / 붙여 넣기 작업은 Windows 에서처럼 중요하지 않은 것으로 간주되었습니다. 그놈 터미널, 사용처럼, 예를 들어, 가장 현대적인 터미널 프로그램을 - 이것은 다른 키보드 바로 가기를 선택했다는 것을 의미 CtrlShiftC하고 CtrlShiftV. (Xterm을 사용하는 경우 XTerm * vt100 * translations Xresource를 사용하여 동일한 바로 가기를 수동으로 추가 할 수 있습니다 . Rxvt에는 이러한 옵션이 없습니다.)

(대부분의 X11 툴킷은 터미널 프로그램과 충돌하지 않는 CUA "복사"및 "붙여 넣기"키도 지원합니다. 불행히도 구현은 다소 일치하지 않습니다 CtrlIns. 대부분의 프로그램 (GTK, Qt4에서는 "클립 보드"에 복사하지만 무시합니다. 그러나 ShiftIns대부분의 GTK 및 Qt4 프로그램의 "기본 선택", Firefox의 "클립 보드"및 현재 사용되지 않는 Xaw의 현재 사용되지 않는 컷 버퍼에서 붙여 넣습니다.)


말했다 모두는, 어떤 단말기 또는 콘솔 (특히 윈도우 10 콘솔) 이러한 키를 지원합니다. Windows 콘솔은 항상 별도의 "표시 / 선택"모드를 CtrlC사용하므로 컨텍스트에 따라 두 가지 의미가 있습니다. 일반 모드에서는 인터럽트를 보내고 선택 모드에서는 클립 보드에 복사합니다 ( Enter사용하는 것처럼 ).

한편 Windows 명령 줄 도구는 실제로 어떤 용도 CtrlV 로도 사용 되지 않았 으므로 많은 것을 방해하지 않고 "붙여 넣기"할 수밖에 없었습니다. 그러나 유닉스 계열 터미널에서 동일한 작업을 수행하는 것이 더 문제가 될 수 있습니다.


10
흠. Vim에서“생크”는 붙여 넣기보다는 복사를 의미합니다. 이것도 더 의미가있는 것 같습니다. 이 용어의 의미가 확실합니까?
Konrad Rudolph

11
예, 확실합니다. Bash는 Emacs와 동등한 기본 단축키를 상속합니다 .
grawity

4
@ grawity : 마지막 의견은 약간 잘못 안내됩니다. Bash는 vim 모드와 emacs 모드의 두 가지 명령 줄 편집 모드를 제공합니다. emacs-mode는 대부분의 설치에서 기본값입니다. 그것은 bash조차도 yank 라는 용어를 사용함에있어 모호성을 증가 시킵니다.
rahmu

1
아하! 나는 알고 그들은 전환 할 때 명 Vimperator 개발자가 실수 <C-v>i버전 3에서, 그러나 나는 확실히 내 손가락을 넣어 수없는 이유 .
이즈 카타

2
@Colin : 당신은 여전히 ​​클립 보드와 X 선택의 차이점을 놓쳤습니다. 몇 가지 선택 사항 (PRIMARY, SECONDARY, CLIPBOARD)이 있지만 그 중 하나만 일반적으로 "클립 보드"– CLIPBOARD 선택이라고합니다. 왜냐하면 Ctrl-C가 복사되는 위치와 Ctrl-V가 붙여지는 위치이기 때문입니다. 기본 선택은 클립 보드가 아닙니다.
grawity

47

CtrlShiftV붙여 넣기에 사용 합니다.

Ctrl 다른 문자와 함께 일반적으로 특수 기능을 위해 쉘에서 사용됩니다.


4
그렇다면 리눅스가 특수 기능을 위해 CTRL + SHIFT를 등록하지 않는 이유는 무엇입니까? 일부 사용자는 복사 붙여 넣기가 특정 기능보다 더 일반적이라고 생각합니다.
Yasser Zamani

22
잘라 내기 및 붙여 넣기 기능이있는 그래픽 터미널 및 GUI가 있기 전에 쉘이 존재 했으므로, 당신의 주장은 실제로 유효하지 않습니다. @YasserZamani
slhck

9
Ctrl + Shift + V는 bash그 자체가 아니라 터미널 에뮬레이터 (GNOME 터미널을 사용한다고 가정)에 의해 실행 됩니다. GUI 환경 외부에 있거나 다른 용어 에뮬레이터를 사용하는 경우에는 작동하지 않을 수 있습니다. 이 명령이 이식 가능하다고 생각하지 마십시오.
rahmu

@rahmu 아, 그것에 대해 몰랐습니다. 재고 우분투 설치 만 사용하십시오. 보편적 인 명령이 있습니까?
Akash

2
클립 보드에 액세스 할 수있는 것이 없을 수도 있습니다 (기본 선택의 경우 Shift + Ins 만). 클립 보드 자체조차도 X11로, tty에서는 액세스 할 수 없습니다. 그러나 Ctrl + Shift + V는 GNOME 터미널, Xfce4 터미널, KDE Konsole에서 지원합니다. 가장 인기있는 GUI 환경을 다룹니다.
grawity

20

다음은 널리 사용되는 터미널을 사용한 범용 복사 붙여 넣기 설정입니다.

gnome-terminal (Linux에서 가장 많이 사용됨)
복사 : CtrlShiftC
붙여 넣기 : CtrlShiftV
참고 : 복사하여 선택 middle-click하여 붙여 넣기도 가능하지만 대체 클립 보드를 사용합니다.

퍼티 (윈도우에서 가장 인기있는 단말기가)
복사 (마우스로 선택하고, 키보드의 상호 작용)
붙여 넣기 : Right-click (이상 안정적으로 : shiftRight-click)
참고 : 마우스 입력을 (같은 걸릴 앱은 vimlinks) 훔칠 수 Right-click- shiftRight-click항상 응용 프로그램에서 작동하지 않습니다.

OSX 터미널
복사 : AppleC
붙여 넣기 : AppleV
참고 : 마우스 제어 (예 : vimlinks)를 사용 하는 앱은 텍스트 선택의 의미를 무시할 수 있으며,이 경우 복사가 예상대로 작동하지 않습니다. 이 경우 Control마우스를 드래그하여 선택하십시오. 터미널 설정에서 앱과의 마우스 상호 작용은 기본적으로 비활성화되어 있으므로 대부분의 사람들은 이에 대해 알지 못합니다.


인가되지 cmd.exeWindows에서 PuTTY를보다 더 인기? :-)
Ben

@Ben SSH 터미널이 아닙니다.
tylerl

1
아니요, cmd.exeSSH 터미널이 아닙니다. 매우 사실입니다.
Ben

3
@Ben : 터미널이 아니며 쉘만 있습니다. Windows의 기본 터미널은 csrss의 "Windows Console"구성 요소입니다.
grawity

@Ben이지만 마우스 오른쪽 버튼을 클릭하여 붙여 넣기 기능이 작동합니다 cmd.exe( 빠른 편집 모드 에서 메뉴> 편집> 붙여 넣기를 열지 않는 유일한 방법 임) . win-win10 이전 명령 프롬프트에는 바로 가기가 없습니다
phuclv

17

Ctrl문자와 함께 키가 대문자의 ASCII 값에서 64를 빼서 찾은 ASCII 제어 문자를 생성하는 것은 뿌리 깊은 전통입니다 . 이 계산은 Ctrl-등 A으로 매핑 됩니다. 예를 들어 Ctrl- I이다 TabCtrl-는 J줄 바꿈됩니다.

더 유사한 전통에 대한이 없다 Ctrl- Shift. Ctrl- Shift- V특정 문자 발생되지 않습니다.

터미널 에뮬레이터는 Ctrl컨벤션 을 투명하게 통과 하여 해당 터미널 창을 통해 운영되는 프로그램에 문자 입력으로 표시되도록 하여 전통을 지원해야합니다 . 터미널 기반 프로그램은 제어 키를 명령에 매핑합니다. 예를 들어, Bash는 "다음 문자를 문자 그대로"라는 명령으로 Ctrl- V를 사용합니다 . 이를 통해 명령 줄에 제어 문자를 포함시킬 수 있습니다. 터미널이 자체 제어 키를 훔치는 경우 해당 명령을 사용할 수 없게됩니다. 따라서 가로 채기 Ctrl- V메타 기능에 대한 문제는 의외입니다 (적어도 기본 구성에서는).

그러나, 터미널 에뮬레이터는 차단 무료입니다 Ctrl- Shift- V캐릭터를 생성 않을 것으로 예상된다. Ctrl- Shift- V표준 아니다; 그것은 그놈 터미널 일입니다 (다른 터미널에있을 수 있음).

X 기반 Unix 데스크탑에서는 규칙에 따라 복사 할 명령이 필요하지 않습니다. 당신은 텍스트를 선택합니다. 가운데 버튼은 그 텍스트를 다른 곳에 붙여 넣습니다. Xterm, Gnome Terminal 및 Firefox에서 모두 작동한다는 것을 알 수 있습니다.

Ctrl- V의 모방을하는 마이크로 소프트 윈도우 규칙입니다 Apple- V매킨토시에서이.


3
그것은 정확히 빼기 가 아닙니다. 전통적으로 Ctrl은 문자 의 6 번째와 7 번째 비트지 웠습니다 . 이 때문에 Ctrl / Shift + letter는 대부분의 터미널에서 Ctrl + Letter와 동일하게 작동합니다 (복사 / 붙여 넣기 바로 가기와 같이 터미널에서 명시 적으로 재정의하지 않는 한).
grawity

1
키는 기본적으로 ASCII 표준과 관련하여 무작위로 정렬되므로 프로그램 ROM에는 ASCII 코드 생성을 지원하는 몇 가지 조회 테이블이 포함되어 있습니다. ... 다른 키를 누를 때 CONTROL 키를 소유하면 다른 테이블이 조회됩니다. [VT100 시리즈 기술 매뉴얼, 4.4.9.3, 디지털].
Kaz

1
@Linger 편집 해 주셔서 감사합니다. 잘 렌더링되지만 <kbd>향후 게시물에 이러한 태그를 모두 입력하는 방법은 없습니다 .
Kaz

Ctrl-A입니다 1. 어떻게하면 되나요? 을 누르면 내 Gnome 터미널이 아무 작업도 수행하지 않습니다 Ctrl-A.
robert

3

나에게 쉘에서 페이스트를 복사하는 가장 간단한 방법은 다음과 같습니다.

원하는 코드를 선택한 다음 mouse-middle-key


1
마우스 가운데 키가있는 한.
jpierson

1
@jpierson 나는 이것을 강력히 권장하지는 않지만 단순히 xdotool click 2세 번째 버튼 클릭을 에뮬레이트하는 데 사용되는 작은 스크립트를 작성할 수 있습니다. 그리고, 어떤 윈도우 매니저 / 데스크탑 당신이있는 환경에서, 당신이 키에이 스크립트를 바인딩 할 수 있습니다 - 말 mod i(삽입) 또는 어떤 키 바인딩 사용 가능한있을 수 있습니다 (또는 어떤 모드를 의미 할 수 있습니다 - 당신이 결합 곳 정말 의존하는)
dylnmc

2

키보드 삽입 버튼을 사용하여 복사 및 붙여 넣기를 수행 할 수 있습니다 (오래된 키보드에서는 누락 될 수 있음)

복사 : CtrlInsert
붙여 넣기 :CtrlShiftInsert


1

게으른 느낌이들 경우 마우스 가운데 버튼을 사용하여 텍스트 문서, 스크립트 또는 웹 또는 포럼에서 명령을 선택할 수도 있습니다. 원하는 명령을 선택하면 간단히 터미널로 이동하여 마우스의 가운데 버튼을 클릭하십시오. 오른쪽 클릭 후 붙여 넣기의 정상적인 동작을 지원하지 않는 강아지 리눅스를 사용할 때이 방법을 사용합니다. 터미널 창이 아닌 파일 핸들러 창에서 수행됩니다. 왜 그런지 모르겠지만 나는 조용히 중간 버튼 방법에 대해 알게되어 매우 편리합니다! ;-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.