CLI에서 명령을 트리거할 때,방금 실행한 명령을 복사하고 싶습니다.또는 내가 터미널에 쓰는 것은 무엇이든다른 곳에 붙여넣으세요.마우스를 사용할 필요가 없습니다.
아래 이미지처럼 업데이트 명령(전체 또는 부분)을 복사해서 마우스를 사용하지 않고 어딘가에 붙여넣고 싶습니다.
답변1
당신은 그것을 사용할 수 있습니다screen(1)
선택한 터미널 에뮬레이터( xterm
, gnome-terminal
, ...).
필요한 기능은 에 내장되어 있습니다 screen
. 작동 방식을 숙지해야 합니다.
- 기본적으로 "명령" 키 바인딩은 Ctrl+ A이며 "명령" 시퀀스와 특정 작업을 실행하여 명령을 작성할 수 있습니다.
- "복사" 명령은 다음과 같습니다. AltGr+[
- "붙여넣기" 명령은 AltGr+]
명령을 "복사"하여 다른 터미널에 "붙여넣기"할 수 있습니다.
screen
재밌네요. 일단 사용하기 시작하면 어떻게 전혀 사용하지 않을 수 있었는지 궁금해집니다.
답변2
이미 제공된 답변 외에도 보다 유연한 터미널 에뮬레이터로 전환하는 것을 고려할 수도 있습니다.
터미널을 다음으로 변경할 준비가 되었다면rxvt-유니코드, 다음과 같은 도구를 사용할 수 있습니다.urxvt-perls: 이 터미널 에뮬레이터에서 다음 키보드 기능을 제공하는 스크립트 모음입니다.
- 텍스트 선택, 복사 및 붙여넣기
- 정방향 및 역방향 검색
- 즐겨 사용하는 브라우저에서 URL을 강조표시하고 엽니다.
패키지를 설치하고 몇 줄만 추가하면 ~/.Xresources
설치류를 영구적으로 분리할 수 있습니다.
답변3
다음과 같은 프로그램을 사용하여 이 작업을 수행할 수 있습니다 xclip
.
NAME
xclip - command line interface to X selections (clip‐
board)
일단 설치되면 이를 사용하여 X 클립보드에 연결할 수 있습니다. 불행하게도 이 방법은 여러분의 환경에서는 작동하지 않습니다 mysql
(줄 복사를 위한 자체 버퍼가 있음). 그러나 "일반" 명령을 실행하려는 경우에는 작동합니다. 예를 들어:
$ This is a long command line
CtrlA줄의 시작 부분으로 이동 하여 명령을 따옴표로 묶고 에코하려면 다음을 입력하세요.
$ echo -e "This is a long command line" |xclip
이제 클립보드를 마우스 가운데 버튼으로 클릭하면 "긴 명령줄입니다"라는 메시지가 표시됩니다.
마우스를 사용하지 않고 붙여넣으려면 붙여넣는 위치에 따라 다릅니다. 다음 명령을 실행하여 다른 터미널에 붙여넣을 수 있습니다.
$ xclip -o
동일한 터미널에 붙여넣을 수 있습니다. kill(잘라내기) 명령을 사용한 CtrlK다음 CtrlY.
bash의 기록을 사용하여 터미널 전체에 명령을 저장할 수도 있습니다. 다음 줄을 다음 항목에 추가하세요 ~/.bashrc
.
PROMPT_COMMAND='history -a; history -r'
PROMPT_COMMAND
특별한 bash 변수입니다. 이 값을 설정하면 새 프롬프트를 발행하기 전에 명령으로 실행됩니다. history -a
현재 세션의 기록이 기록 파일에 기록되고 history -r
파일이 다시 로드됩니다. 이는 실행하는 모든 명령이 즉시 기록 파일에 기록된다는 의미입니다.
이제 긴 명령줄을 실행할 때 다른 터미널로 전환하고 Enter 키를 누르면(실행하거나 $PROMT_COMMAND
새 터미널 창 열기) 해당 터미널 기록에 액세스할 수 있습니다. 지금 클릭하시면 Up새로운 터미널에서 실행하실 수 있습니다.
답변4
이 명령은 bash의 기록 확장을 사용합니다(따라서 !!
터미널에 입력한 마지막 줄로 확장됩니다). xclip
또는 를 설치해야 할 수도 있습니다 xsel
.
echo "!!" | xclip -selection clipboard
echo "!!" | xsel -i --clipboard
이렇게 하면 마지막 명령이 Ctrl+ 클립보드에 저장되므로 모든 GUI 프로그램에 붙여 넣을 수 있습니다(또는 v대부분의 터미널 에뮬레이터에서 Ctrl+를 사용 Shift하거나 vim에서 +를 사용).v"+p
이는 큰따옴표가 포함된 특정 줄에서 중단됩니다. 예를 들면 다음과 같습니다.
$ echo "foo;bar"
foo;bar
$ echo "!!"
echo "echo "foo;bar""
echo foo
The program 'bar' is currently not installed. You can install it by typing:
sudo apt-get install bar
하지만 예제로 제공한 명령에서는 작동하지만 ;
&
&&
|
||
큰따옴표가 이스케이프된 경우에만 문제가 발생합니다.