TTY에 명령을 붙여 넣는 방법?


20

클립 보드에 복사 한 TTY에서 실행 해야하는 다소 긴 명령과 파일 경로가 있지만 파일 경로가 너무 길어서 다시 입력 $하기가 어렵습니다. (명령을 다시 입력 할 수 있습니다. 그렇다면)이 작업을 수행 할 수있는 방법이 있습니까?

그래서 명령을 실행하고 다음 줄에 다음과 $같이 텍스트를 클립 보드에 복사하여 넣습니다.

$ specialCommandToPasteText
$ pastedText

그놈 3.20과 함께 우분투 그놈 16.04를 실행하고 있습니다.


3
텍스트 편집기에서 명령을 Bash 스크립트에 붙여 넣은 다음 TTY?
Nick Weinberg

@ NickWeinberg : 실제로는 옵션이 아닙니다. 이것은 모두 CLI에 있으며 실행중인 프로그램에는 복사 기능 만 있습니다.

2
어떤 프로그램을 복사합니까?
Nick Weinberg

이전 질문에 대한 귀하의 답변gpm 에서 제안한 것처럼 VT에서 마우스 지원을 제공하기 위해 사용 하고 있습니까?
스틸 드라이버

1
한 가지 가능한 솔루션 / 복사를 사용의 기능을 붙여 넣기하는 것 TMUX 또는 화면
닉 와인버그

답변:


28

간단하지만 추가 도구가 필요합니다.

  1. xsel클립 보드에 액세스하기위한 쉬운 명령을 제공하는 패키지 를 설치하십시오 .

    sudo apt-get install xsel
    
  2. $DISPLAY사용중인 데스크탑을 찾으십시오 . 일반적으로이어야 :0하지만 GUI 데스크탑의 터미널 에뮬레이터에서이 명령을 실행하여 확인할 수 있습니다.

    echo $DISPLAY
    

    출력이 있다고 가정하고 :0다음 명령에서 실제 출력으로 바꾸십시오.

  3. TTY에서 실행하려는 명령을 복사하십시오 (예 : Ctrl+ 사용) C.

  4. 사용하려는 TTY로 전환하십시오 (예 : Ctrl+ Alt+를 사용하여 TTY1로) F1.
    사용자 이름과 비밀번호를 입력하여 로그인하십시오.

  5. 실행할 전체 명령을 입력하되 클립 보드에서 삽입 할 부분을로 바꿉니다 $(DISPLAY=:0 xsel -ob).

    예를 들어 설치하기 위해 많은 패키지 목록을 복사 한 경우이를 TTY에 입력 할 수 있습니다.

    sudo apt-get update && sudo apt-get install $(DISPLAY=:0 xsel -ob)
    

    클립 보드 스 니펫은 반드시 명령의 끝에있을 필요는 없지만 어디에서나 나타날 수 있습니다.


일을 더 단순화하기 위해 이것을 여전히 약간 복잡한 DISPLAY=:0 xsel -ob스크립트로 옮깁시다 . 이름을 지정합니다 PASTE( paste이미 사용되었으므로). 다르게 호출 할 수도 있습니다.

모든 사용자가 전체 경로를 지정하지 않고 실행할 수있는 위치에 스크립트 파일을 작성하고 (권장 /usr/local/bin) 실행 가능하게하려면 다음 두 명령을 실행하십시오.

( echo '#!/bin/bash' && echo 'DISPLAY=:0 xsel -ob' ) | sudo tee /usr/local/bin/PASTE
sudo chmod +x /usr/local/bin/PASTE

이제 $(PASTE)TTY의 명령에 간단히 포함 시켜 데스크탑의 클립 보드 내용을 삽입 할 수 있습니다.


2
감사! 이것은 내가 원래 요구했던 것보다 훨씬 더 많은 것들을 지금 도울 것입니다! :)

1
DISPLAY=:0 xsel -obBash 별칭이나 작은 스크립트로 이름을 지정할 수 있으며 명령에 클립 보드 내용을 사용하는 PASTE것과 같은 단축 형식 만 사용할 $(PASTE)수 있습니다.
바이트 사령관

아주 좋은 접근
Sergiy Kolodyazhnyy

21

개인적으로 텍스트 파일을 사용합니다.

  1. 데스크탑 환경에서 터미널을 열고

    echo "whatever long text you have copied" > file
    
  2. tty에 드롭

    $(cat file)
    

2
알아두면 좋습니다. 실제로 이와 같은 간단한 명령이 잘 작동한다고 생각하지 않았습니다. 때때로 마음은 너무 복잡하다고 생각합니다. 고맙습니다! =)
Terrance

1
그냥 some-command 'Shift + Insert를 사용 하여 붙여 넣습니다. '반환. 작은 따옴표 나 큰 따옴표 안에 붙여 넣으면 붙여 넣은 텍스트의 줄 바꿈으로 명령을 실행하여 문제를 해결할 수 있습니다. 텍스트를 파일에 넣는 것이 IDK입니다. Bash에는 ctrl-left 또는 ctrl-right arrow와 같이 단어별로 이동하는 매우 강력한 줄 편집 키 입력이 있습니다. 뒤로 단어를 삭제하려면 alt-backspace를 사용하십시오. 앞으로 단어 등을 삭제하는 Alt-d
Peter Cordes 2016 년

오, 나는 OP가 TTY라고 말할 때 텍스트 콘솔 VT를 의미한다는 것을 알았습니다. 쉘을 실행할 수있는 모든 터미널은 xterm과 같은 프로그램에 의해 제어되는 의사 터미널을 포함하여 tty이므로 누군가는 실제로 질문을 편집해야합니다.
Peter Cordes 2016 년

@PeterCordes 예. "tty"라는 용어는 종종 정확하지 않은 경우 가상 콘솔을 나타내는 데 사용됩니다.
terdon

4

위에 나열되지 않은 또 다른 가능한 해결 방법 은 명령 모드에서 vim, 붙여 넣기 및 실행 :!unix_command을 사용하는 것입니다 .

  1. 명령과 경로를 클립 보드에 복사
  2. 오픈 vim, 명령 모드로 이동 Esc프롬프트를 입력,:
  3. bang을 입력 한 ! 다음 프롬프트에서 이전에 복사 한 명령을 Ctrl+ Shift+ 붙여 넣기V
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.