Programming

명령 출력을 클립 보드에 직접 복사하려면 어떻게해야합니까?

procodes 2020. 2. 15. 23:37
반응형

명령 출력을 클립 보드에 직접 복사하려면 어떻게해야합니까?


터미널을 사용할 때 명령 출력을 클립 보드에 파이프하여 다시 붙여 넣는 방법은 무엇입니까? 예를 들어 :

cat file | clipboard

나는 항상 이것을하고 싶었고 훌륭하고 쉬운 방법을 찾았습니다. 다른 사람이 필요로하는 경우를 대비하여 완전한 절차를 작성했습니다.

먼저 다음과 같은 16kB 프로그램을 설치하십시오 xclip.

sudo apt-get install xclip

그런 다음 출력을 파이프 xclip보드로 복사하여 파이프 보드에 복사 할 수 있습니다.

cat file | xclip

방금 복사 한 텍스트를 붙여 넣으려면 다음을 사용해야합니다.

xclip -o

수명을 단순화하기 위해 .bashrc 파일에 별명을 설정할 수 있습니다.

alias "c=xclip"
alias "v=xclip -o"

이것이 얼마나 유용한 지 보려면 새 터미널 창에서 현재 경로를 열고 싶다고 상상해보십시오 ( 일부 시스템에서는 Ctrl+ 와 같은 다른 방법이있을 수 T있지만 이것은 단지 설명을위한 것입니다).

Terminal 1:
pwd | c

Terminal 2:
cd `v`

` `주변에 주목하십시오 v. v명령은 먼저 명령으로 실행 된 다음 cd사용 하기 위해 대신 사용됩니다.

내용을 X클립 보드 로만 복사

cat file | xclip

X응용 프로그램 이외의 다른 곳에 붙여 넣으려면 다음을 시도하십시오.

cat file | xclip -selection clipboard

OS X에서는 pbcopy;를 사용하십시오 . pbpaste반대 방향으로갑니다.


Linux / OSX / Cygwin 용 도구를 만들었습니다.이 도구는 다른 도구와 비슷하지만 약간 독특합니다. 내가 전화를 cb하고 그것을이 github의의 요점에서 찾을 수 있습니다 .

그 요지는 Linux, macOS 및 Cygwin을 사용하여 명령 줄을 통해 복사하여 붙여 넣는 방법을 보여줍니다.

리눅스

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

맥 OS

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

시그윈

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

참고 : 나는 원래 Bob Enohp의 답변에 대한 의견에서 이것을 언급하려고했습니다 . 그러나 나는 내 요지에 README를 추가해야한다는 것을 깨달았습니다. 요점 편집자는 Markdown 미리보기를 제공하지 않기 때문에 여기에 답 상자를 사용하고 그것을 요점 생각에 복사 / 붙여 넣은 후에 "답변을 제출할 수도 있습니다."

cb

클립 보드에 누수 방지 티

이 스크립트는 다음에 모델링됩니다 tee(참조 man tee).

일반적인 복사 및 붙여 넣기 명령과 비슷하지만 통합 가능하고 체인 가능할 때 감지 할 수 있습니다.

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

체인

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

파일 리디렉션을 통해 복사

(시간순으로 이것을 시연하는 것이 합리적이었습니다)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00

복사 / 붙여 넣기 명령에서 추측 작업을 수행하는이 작은 스크립트를 작성했습니다.

스크립트의 Linux 버전은 시스템에 이미 설치되어있는 xclip을 사용합니다. 스크립트를 클립 보드라고합니다.

#!/bin/bash
# Linux version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard     # Pipe someapp's output into clipboard
#        clipboard | someapp     # Pipe clipboard's content into someapp
#

if command -v xclip 1>/dev/null; then
    if [[ -p /dev/stdin ]] ; then
        # stdin is a pipe
        # stdin -> clipboard
        xclip -i -selection clipboard
    else
        # stdin is not a pipe
        # clipboard -> stdout
        xclip -o -selection clipboard
    fi
else
    echo "Remember to install xclip"
fi

스크립트의 OS X 버전은 모든 Mac에 사전 설치된 pbcopy 및 pbpaste에 의존합니다.

#!/bin/bash
# OS X version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard     # Pipe someapp's output into clipboard
#        clipboard | someapp     # Pipe clipboard's content into someapp
#

if [[ -p /dev/stdin ]] ; then
    # stdin is a pipe
    # stdin -> clipboard
    pbcopy
else
    # stdin is not a pipe
    # clipboard -> stdout
    pbpaste
fi

clipboard이 두 예제에 표시된 것처럼 단순히 파이프 인 또는 파이프 아웃하기 때문에 스크립트 사용은 매우 간단합니다 .

$ cat file | clipboard

$ clipboard | less

에 추가하십시오 ~/.bashrc:

# Now `cclip' copies and `clipp' pastes'
alias cclip='xclip -selection clipboard'
alias clipp='xclip -selection clipboard -o'

이제 p 페이스트와 c 클립 사본을 자르십시오. 그러나보다 멋진 작업을 수행 할 수도 있습니다.

clipp | sed 's/^/    /' | cclip

↑ 클립 보드를 들여 씁니다. 스택 오버플로 { }버튼이 없는 사이트에 적합

다음을 실행하여 추가 할 수 있습니다.

printf "\nalias clipp=\'xclip -selection c -o\'\n" >> ~/.bashrc
printf "\nalias cclip=\'xclip -selection c -i\'\n" >> ~/.bashrc

Parcellite를 사용하고 있으며 xsel마지막 커밋 메시지를 git클립 보드 관리자 에게 복사하려고합니다 (어떤 이유로 xclip작동하지 않음).

$ git log -1 --pretty=%B | xsel -i -b

외부 도구를 사용하지 않고 서버보기 SSH에 연결하는 경우 비교적 쉬운 명령입니다.

Windows 7 이상 명령 프롬프트에서 :

ssh user@server cat /etc/passwd | clip

원격 파일의 내용이 로컬 클립 보드에 저장됩니다.

(이 명령을 실행하려면 키에 대해 Pageant를 실행해야합니다. 그렇지 않으면 암호를 묻습니다.)


xclip이나 xsel을 사용하지 않고 비슷한 기능을 제공하는 작은 도구를 만들었습니다. stdout클립 보드에 복사되고 터미널에 다시 붙여 넣을 수 있습니다. 보다:

https://sourceforge.net/projects/commandlinecopypaste/

이 도구에는 X- 세션이 필요하지 않습니다. 클립 보드는 터미널 내에서만 사용할 수 있으며 Ctrl+V다른 X- 윈도우에 붙여 넣거나 마우스 가운데 버튼을 클릭 해서는 안됩니다 .


xclip이 설치된 Linux에서 :

xclip-선택 클립 보드 <파일


이전 게시물을 기반으로 다음에 추가 할 수있는 다음과 같은 가벼운 무게 별칭 솔루션으로 끝났습니다 .bashrc.

if [ -n "$(type -P xclip)" ]
then
  alias xclip='xclip -selection clipboard'
  alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi

예 :

# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018

# Paste
$ date
Sat Dec 29 14:12:57 PST 2018

# Chain
$ date | clipboard | wc
   1       6      29

mac의 경우 명령 줄을 사용하여 (클립 보드로) 붙여 넣기 (클립 보드에서)를 복사하는 예제 방법입니다

다른 이름으로 클립 보드에 복사

$ pwd | pbcopy

클립 보드의 내용을 다음과 같이 사용하십시오.

$ cd $(pbpaste)

Windows 시스템 (WSL (Windows Subsystem for Linux))에 설치된 bash를 사용하는 경우 xclip을 시도하면 오류가 발생합니다.

Error: Can't open display: (null)

대신 리눅스 서브 시스템은 Windows 실행 파일에 액세스 할 수 있습니다. 다음과 같이 clip.exe를 사용할 수 있습니다

echo hello | clip.exe

붙여 넣기 명령 (ctrl-v)을 사용할 수 있습니다.


벗겨진 KDE 배경에서 왔으며 xclip, xsel또는 다른 멋진 항목에 액세스 할 수 없습니다 . 문제를 악화시키기 위해 TCSH Konsole이 있습니다.

필수 조건 : qdbus klipper xargs bash

bash 실행 파일을 작성하십시오 foo.sh.

#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null

참고 : TCSH는 여러 줄 인수를 지원하지 않으므로 bash 여야합니다.

에 TCSH 별칭이옵니다 .cshrc.

alias clipboard xargs -0 /path/to/foo

설명:

xargs -0stdin을 단일 인수로 파이프합니다. 이 인수에 요청 "클립 보드에 복사의"를 전송 bash는 실행 파일에 전달됩니다 klipper사용 qdbus. 파이프 는 콘솔에 /dev/null반환 된 줄 바꿈 문자를 인쇄하지 않는 것 qdbus입니다.

사용법 예 :

ls | clipboard

현재 폴더의 내용이 클립 보드에 복사됩니다.

참고 : 파이프로만 작동합니다. 인수를 복사해야 할 경우 bash 실행 파일을 직접 사용하십시오 .


단지 대소 문자를 다루기 위해 :) 질문 제목은 명령 출력을 클립 보드에 직접 복사하는 방법을 묻습니다.

종종 명령이 이미 실행 된 후 명령의 출력을 복사하여 명령을 다시 실행하고 싶지 않거나 실행할 수없는 경우가 종종 있습니다.

이 시나리오에서는 gdm 또는 유사한 마우스 유틸리티를 사용하고 마우스를 사용하여 선택할 수 있습니다. apt-get install gdm그런 다음 마우스 오른쪽 버튼을 클릭하거나 Cntrl + Shift + c 및 Cntrl + Shift + v 조합을 사용하여 터미널에 복사하여 붙여 넣습니다.

또는 나에게 선호되는 방법입니다 (여러 개의 창이 나란히 있고 하나 이상의 행을 선택해야 할 때 마우스가 하나의 창에서 올바르게 선택할 수 없기 때문에) tmux를 사용하면 표준을 사용하여 tmux 버퍼에 복사 할 수 있습니다 [, 공백, 이동으로 선택, 입력 또는 코드 블록을 선택할 수 있습니다. 또한 이것은 tmux와 같은 CLI 멀티플렉서의 레인 중 하나에 있고 여러 줄의 텍스트를 선택해야하지만 줄 번호는 필요하지 않을 때 특히 유용합니다 (내 vim 설정은 줄 번호를 렌더링합니다)

이 후 다음 명령을 사용할 수 있습니다.

tmux 저장 버퍼-| xclip -i

물론 tmux 구성 파일에서 좋아하는 것으로 별칭을 지정하거나 직접 바인딩 할 수 있습니다

이것은 명령을 다시 실행할 수 없을 때이 중요한 경우를 다루는 개념적 대답을 제공하기위한 것입니다. 더 구체적인 코드 예제가 필요하면 알려주십시오.

건배

참고 URL : https://stackoverflow.com/questions/5130968/how-can-i-copy-the-output-of-a-command-directly-into-my-clipboard



반응형