Linux의 Bash Shell에서 텍스트를 복사하여 붙여넣는 방법

Bash 쉘에서 텍스트 복사 및 붙여넣기 방법

Bash 쉘 명령줄에서 텍스트를 복사하여 붙여넣는 여러 방법을 소개합니다. 키보드, 마우스 등 어떤 방식을 선호하든, 그래픽 데스크톱 환경이나 텍스트 기반 TTY 환경 모두에서 사용할 수 있는 다양한 기술을 살펴보겠습니다.

일반적인 키보드 단축키의 한계

컴퓨터 사용에서 텍스트 복사 및 붙여넣기는 필수적인 기능입니다. 하지만 Linux를 처음 사용하는 사용자들은 종종 터미널 창에서 이 기능을 사용할 때 어려움을 겪습니다. Windows나 macOS 환경에서 익숙했던 방식과는 다르기 때문입니다.

일반적으로 Windows에서는 Ctrl+C로 텍스트를 복사하고 Ctrl+V로 붙여넣습니다. macOS에서는 Command+C로 복사하고 Command+V로 붙여넣는 방식이 익숙합니다. 복사에는 ‘C’, 붙여넣기에는 ‘V’ 키를 사용하는 규칙은 동일합니다.

대부분의 Linux 그래픽 프로그램(예: gedit 또는 LibreOffice)에서도 동일한 키 조합을 사용합니다. Ctrl+C는 텍스트를 복사하고 Ctrl+V는 커서 위치에 붙여넣는 방식입니다. 이러한 프로그램에서는 사용자들은 별다른 의식 없이 익숙한 키 입력을 사용하여 작업을 수행합니다.

하지만 터미널 창에서 복사 및 붙여넣기를 시도하면 상황이 달라집니다. Bash 쉘 명령 프롬프트에서는 Ctrl+C와 Ctrl+V가 다른 기능에 할당되어 있기 때문입니다. 사실 이 키 조합은 그래픽 쉘이 등장하기 훨씬 이전, 텔레타이프(TTY)가 물리적인 장치였던 시절부터 사용되었습니다.

TTY 환경에서의 Ctrl+C 및 Ctrl+V의 역할

과거 물리적 TTY 장치 시절에는 Ctrl+C가 현재 프로세스를 종료하는 ‘시그널’을 생성하는 편리한 키 조합으로 선택되었습니다. 터미널 창은 이러한 TTY를 에뮬레이션한 것이므로, 해당 키 조합(및 다른 많은 조합)이 에뮬레이션 환경에서도 유지되었습니다. 여기서 중요한 점은 터미널 창 자체가 에뮬레이션이라는 것이고, Bash 쉘은 에뮬레이션된 TTY에서 실행되는 프로그램이라는 것입니다.

Ctrl+C와 Ctrl+V에 할당된 기능을 확인해 보겠습니다. 예를 들어, 다음 명령을 입력하고 “Enter” 키를 누른다고 가정해 봅시다.

ls -R /

ls 명령은 -R(재귀) 옵션으로 인해 루트 디렉터리에서 시작하여 모든 파일과 디렉터리를 나열하기 시작합니다. 만약 실행 중에 이것이 원하던 것이 아니라는 것을 깨달았다면, Ctrl+C를 눌러 프로세스를 중단할 수 있습니다.

Ctrl+C

ls 프로세스가 종료되고, Ctrl+C의 흔적은 스크린샷에서 ^C로 표시됩니다.

반면 Ctrl+V 키 조합은 “리터럴 삽입” 기능을 호출합니다. 즉, 키의 효과를 발생시키는 대신, 입력한 키 자체의 표현을 입력할 수 있게 해줍니다. 예를 들어 다음 명령을 시도해 보십시오. (쉼표는 입력하지 마십시오.) 첫 번째 예제를 실행하려면 Ctrl+V를 누른 후 Enter를 누릅니다.

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

결과적으로, Enter 키 입력이 ^M으로 표시되는 것을 볼 수 있습니다. Ctrl+C가 ^C로 표시되는 것을 본 것처럼, ^ 기호는 Ctrl 키를 나타내는 것으로 보입니다. 따라서 Ctrl+M은 Enter 키와 동일한 의미일 것입니다. 즉, Ctrl+M을 입력하여 Enter 키와 동일한 효과를 낼 수 있다는 의미입니다. 터미널 창에서 직접 시도해 보면 실제로 그렇게 작동한다는 것을 확인할 수 있습니다.

결론적으로, Ctrl+C 및 Ctrl+V 키 조합은 이미 다른 기능에 할당되어 있기 때문에 텍스트 복사 및 붙여넣기 용도로 사용할 수 없습니다. 그렇다면 어떤 키 조합을 사용해야 할까요?

Ctrl+Shift+C 및 Ctrl+Shift+V

Ctrl+Shift+C 및 Ctrl+Shift+V는 Ctrl+C 및 Ctrl+V의 직접적인 대안으로 사용될 수 있어 기억하기 쉽습니다. 터미널 창에서 마우스로 텍스트를 강조 표시한 다음 Ctrl+Shift+C를 누르면 해당 텍스트가 클립보드 버퍼에 복사됩니다.

Ctrl+Shift+C

복사된 텍스트는 동일한 터미널 창이나 다른 터미널 창에서 Ctrl+Shift+V를 눌러 붙여넣을 수 있습니다.

Ctrl+Shift+V

물론 gedit와 같은 다른 그래픽 응용 프로그램에도 붙여넣을 수 있습니다. 하지만 터미널 창이 아닌 다른 응용 프로그램에 붙여넣을 때는 Ctrl+V 키를 사용해야 합니다.

반대로, gedit에서 텍스트를 선택하고 Ctrl+C를 눌러 복사한 후, 터미널 창에서 Ctrl+Shift+V를 눌러 붙여넣을 수도 있습니다.

Ctrl+Insert 키 조합은 Ctrl+Shift+C와 동일한 기능을 하며, Shift+Insert 조합은 Ctrl+Shift+V와 동일한 기능을 합니다. 여기서 주의해야 할 점은 이러한 키 조합은 동일한 터미널 창 내에서만 사용 가능하다는 점입니다.

마우스 오른쪽 버튼을 이용한 복사 및 붙여넣기

마우스를 사용하여 터미널 창에 텍스트를 복사하고 붙여넣을 수도 있습니다. 복사하려는 텍스트를 강조 표시하기 위해 마우스를 사용하는 만큼, 마우스를 활용하여 복사 및 붙여넣기를 완료하는 것이 효율적일 수 있습니다.

텍스트를 강조 표시한 후 마우스 오른쪽 버튼을 클릭하고 상황에 맞는 메뉴에서 “복사”를 선택합니다.

복사한 텍스트를 붙여넣으려면 마우스 오른쪽 버튼을 다시 클릭하고 컨텍스트 메뉴에서 “붙여넣기”를 선택합니다.

텍스트는 명령줄의 커서 위치에 붙여넣어집니다. 위의 예시에서는 상대 경로가 잘못 지정되어 Bash가 디렉터리를 변경할 수 없는 상황입니다. 사용자는 경로 시작 부분에 “~/”를 누락했으며, “~/”를 입력한 후 이전 시도에서 복사한 경로의 나머지 부분을 두 번째 명령줄에 붙여넣었습니다.

Enter 키를 누르면 해당 디렉터리로 이동됩니다.

이 예제에서는 동일한 터미널 창 내에 붙여넣는 것을 보여주었지만, 마우스 오른쪽 클릭 방식을 사용하여 다른 터미널 창에 붙여넣을 수도 있습니다. 또한, 이 방법을 사용하여 그래픽 응용 프로그램에도 붙여넣을 수 있습니다.

마우스 가운데 버튼을 이용한 복사 및 붙여넣기

마우스에 가운데 버튼이 있다면 마우스를 사용한 복사 및 붙여넣기를 더 빠르게 할 수 있습니다. 마우스 휠을 아래로 누르면 딸깍 소리가 나는 경우, 가운데 버튼이 있는 것입니다.

터미널 창에서 텍스트를 강조 표시한 다음 가운데 버튼을 누르면, 강조 표시된 텍스트가 명령줄의 커서 위치에 붙여넣어집니다. 즉, 복사와 붙여넣기가 동시에 이루어지는 것입니다.

먼저 텍스트를 강조 표시합니다.

그런 다음 가운데 버튼을 누릅니다.

이 방법으로 다른 터미널 창이나 그래픽 응용 프로그램에도 텍스트를 붙여넣을 수 있습니다. 텍스트를 강조 표시한 후 다른 터미널 창이나 응용 프로그램으로 이동하여 가운데 버튼을 누르기만 하면 됩니다.

마우스 없이 복사 및 붙여넣기

마우스를 사용할 수 없는 환경에서는 어떻게 해야 할까요? 텍스트를 강조 표시할 수 없을 때 복사 및 붙여넣기가 어떻게 가능할까요?

Linux 서버는 종종 그래픽 데스크탑 환경(GDE) 없이 구성되어 마우스 사용이 불가능한 경우가 있습니다. 또한 GNOME과 같은 그래픽 데스크탑 환경을 사용하는 Linux 컴퓨터에서도 마우스로 텍스트를 강조 표시할 수 없는 상황이 발생할 수 있습니다.

예를 들어, 추가 TTY 중 하나로 전환했을 수 있습니다. 최신 배포판에서는 Ctrl+Alt+F3(TTY3)에서 Ctrl+Alt+F6(TTY6) 사이에 추가 TTY가 있습니다. (Ctrl+Alt+F2는 GDE 세션으로 돌아가고 Ctrl+Alt+F1은 GDE의 로그인 화면으로 이동합니다.)

또는 Linux나 Unix 컴퓨터에 연결하기 위해 실제 하드웨어 TTY 장치를 사용하고 있을 수도 있습니다.

어떤 경우든, 이 방법은 유용하게 사용할 수 있습니다. 중요한 점은 여기서 설명하는 방식은 완전한 의미의 복사 및 붙여넣기가 아니라 현재 명령줄에서만 잘라내어 복사하고 붙여넣는 방식이라는 것입니다. 물론 화살표 키를 사용하여 명령 기록을 탐색하여 잘라내고 복사할 명령줄을 찾을 수도 있습니다.

사용할 수 있는 키 입력은 다음과 같습니다.

  • Ctrl+W: 커서 앞의 단어를 잘라내어 클립보드 버퍼에 추가합니다.
  • Ctrl+K: 커서 뒤 부분을 잘라내어 클립보드 버퍼에 추가합니다. 커서가 줄의 시작 부분에 있으면 전체 줄을 잘라내고 복사합니다.
  • Ctrl+U: 커서 앞 부분을 잘라내어 클립보드 버퍼에 추가합니다. 커서가 줄 끝에 있으면 전체 줄을 잘라내고 복사합니다.
  • Ctrl+Y: 잘라내고 복사한 마지막 텍스트를 붙여넣습니다.

TTY3으로 전환해 보겠습니다. (Ctrl+Alt+F1을 사용하여 나중에 데스크톱으로 돌아갈 수 있습니다.)

Ctrl+Alt+F3
tty

삭제하려는 파일이 있다고 가정하고, 해당 파일이 있는지 확인해 보겠습니다.

ls -l file_to_delete.txt

위쪽 화살표 키를 사용하면 명령 기록에서 마지막으로 사용한 명령을 불러올 수 있습니다. 이 줄을 편집할 수도 있지만, 이 예시에서는 잘라내기, 복사 및 붙여넣기 방법을 보여주기 위해 파일 삭제 작업을 약간 지연시켜 수행할 것입니다.

커서를 파일 이름의 첫 글자로 이동시킨 후 Ctrl+K를 누르면, 해당 줄의 부분이 제거되고 텍스트가 클립보드 버퍼에 복사됩니다.

줄이 지워질 때까지 백스페이스 키를 누릅니다.

rm을 입력하여 파일을 삭제해 보겠습니다.

<img src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoYAAACTAgMAAABuYDDrAAAACVBMVEUAAAABAQHMzMygyw1NAAAD4UlEQVR42u3aQW7jOBAFUF/CDczsezOn8CU+gar9NyDepwz4ALVgTjkLUrKcdmxlRm5yMOUFQTFB8kCJpY9KDofxP