종종 github 버그에 무언가를 게시하고 싶습니다.
$ ping google.com
PING google.com (216.58.195.238): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms
지금 내가 명령을 실행, 사용 screen
의 C-a C-[
, 영역을 강조하기 enter
에 붙여, 그 버퍼에 복사 vim
한 후, 파일에 기록하고 cat
그로 pbcopy
. 더 좋은 방법이 있어야합니다.
tee
내가 입력 할 수 있는 명령에 접두사 a $
와 모든 출력을 추가 할 수 있는 명령 이 pbcopy
있습니까? 아니면 가까운 것이 있습니까? 나는 구상
$ demo ping google.com
PING google.com (216.58.195.238): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms
^C
$
이제 붙여 넣은 원본은 내 맥 클립 보드에 있습니다.
답변
하나의 옵션은 -x
명령을 실행하는 서브 쉘에서 추적 (with ) 을 활성화하는 것 입니다. 이것은 명령을 STDERR에 쓰고 표준 출력을 STDOUT에 씁니다. 둘 다 수집하고 파이프 pbcopy
:
$ ( set -x; ping -c 3 google.com ) 2>&1 | pbcopy
$ pbpaste
+ ping -c 3 google.com
PING google.com (173.194.217.138): 56 data bytes
64 bytes from 173.194.217.138: icmp_seq=0 ttl=44 time=37.436 ms
64 bytes from 173.194.217.138: icmp_seq=1 ttl=44 time=38.891 ms
64 bytes from 173.194.217.138: icmp_seq=2 ttl=44 time=39.329 ms
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 37.436/38.552/39.329/0.809 ms
답변
script
유틸리티를 사용 하여 프롬프트, 명령 및 출력을 포함하여 전체 상호 작용을 캡처 할 수 있습니다 .
script temp.log; cat temp.log | pbcopy
[ do stuff ]
[ end the interaction with ^D or logging out of the shell ]
그런 다음 파일을 검토하면 파일 내용이 이미 클립 보드에 있습니다.
당신은 또한 수:
script temp.log 'somecommand'; cat temp.log | pbcopy
답변
iterm2에는 쉘 통합 기능 이있어 cmd-shift-A를 사용하여 마지막 명령의 출력을 선택 (및 자동 복사) 할 수 있습니다.
답변
다른 답변에 대한 귀하의 의견에서 전체 프롬프트를 복사 하지 않고 단지 $
.
이 문제를 해결하는 방법은 다음과 같습니다.
16:54:53 [myname mydirectory] 535 $ bash
bash-3.2$ PS1='\$ '
$ echo some command
some command
$ exit
exit
16:57:17 [myname mydirectory] 536 $
쉬운. 그런 다음 마우스를 사용하여 원하는 프롬프트, 명령 및 출력을 복사하여 붙여 넣습니다.
나는 다른 사용 사례를 들어 단지 가 아닌 출력되지에게 프롬프트를 명령을 원하는, 내가 별칭 설정 한 사람의 지침을 제공 할 수 있도록 zv
하기 위해 (키보드에 가까운 “명령 V”로)를 복사 클립 보드에 마지막 명령 :
alias zv='printf %s "$(history -p \!\!)" | pbcopy'
클립 보드에 printf
후행 줄 바꿈을 포함하지 않으 려면 사용 및 명령 대체를 참고하십시오 history
.
답변
지금은 명령을 실행하고 화면의 Ca C- [를 사용하여 영역을 강조 표시하고 입력하여 해당 버퍼에 복사합니다.
이미 사용중인 경우 GNU screen
외부 도구를 사용하여 선택 항목을 직접 복사 할 수 있습니다. 예를 들어 ~/.screenrc
Linux 에서 이것을 추가했습니다 .
bind b eval writebuf 'exec /bin/sh -c " xsel -i </tmp/screen-exchange"' 'exec /bin/sh -c "killall xsel"'
지금은 선택 WIH을 표시 할 수 있습니다 Control– a
[눌러 Space지금 누르십시오
Control– a b실행 xsel
. 내 생각이 아니라 실제로는 매우 일반적 입니다. 있습니다 어떤 사람들은 그것을 사용하는 pbcopy
대신에xsel
당신을 위해 작동 할 수 있도록 문제없이.