답변:
당신이 사용할 수있는 screen(1)
선택의 터미널 에뮬레이터 내에서 ( xterm
, gnome-terminal
, ...).
필요한 기능은에 내장되어 screen
있습니다. 작동 방식에 익숙해 져야합니다.
명령을 "복사"하고 다른 터미널에 "붙여 넣기"할 수 있습니다.
screen
재미 있고 일단 사용을 시작하면 전혀 사용하지 않았을 가능성이있을 것입니다.
screen
명령 이 없으므로 그놈 터미널에 명령을 설치하고 터미널에서 시작 screen
했습니다. 그러나 그 이후에는 시작할 수 없었습니다. 또한 내장 화면의 의미를 이해하지 못했습니다.
man screen
. 또한, 나는 '내장 썼다 에서 복사가 / 기능에 존재 붙여 의미 스크린' screen
디자인으로 .
space
원하는 영역을 선택 하려면 키 를 사용해야 합니다. Y
전체 라인 또는 원하는 영역을 복사하는 데 사용해야 합니다. 화면은 vi
움직임에 친숙합니다.
AltGr
열쇠 는 무엇 입니까? 나는Alt
screen
도구는 작동하지 않습니다. 그리고 그것은 질문에 대한 답을 제공하지 않는 것 같습니다.
이미 제공된 답변 외에도보다 유연한 터미널 에뮬레이터로 이동할 수 있습니다.
터미널을 rxvt-unicode 로 변경할 준비가 되었다면 urxvt-perls 와 같은 도구를 사용할 수 있습니다 : 터미널 에뮬레이터에서 다음 키보드 기능을 제공하는 스크립트 모음 :
패키지를 설치 한 다음에 몇 줄을 추가 ~/.Xresources
하면 설치류의 플러그를 뽑을 수 있습니다.
다음과 같은 프로그램을 사용하여이 작업을 수행 할 수 있습니다 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
로 명령을 종료 (잘라 내기) CtrlK한 다음 붙여 넣기 만하면 동일한 터미널에 붙여 넣을 수 있습니다 CtrlY.
bash의 히스토리를 사용하여 터미널에서 명령을 저장할 수도 있습니다. 이 줄을 다음에 추가하십시오 ~/.bashrc
.
PROMPT_COMMAND='history -a; history -r'
PROMPT_COMMAND
특수 배쉬 변수입니다. 설정된 경우 값은 새 프롬프트를 발행하기 전에 명령으로 실행됩니다. history -a
현재 세션의 기록을 기록 파일에 기록하고 history -r
해당 파일을 다시로드합니다. 즉, 실행하는 모든 명령이 즉시 기록 파일에 기록됩니다.
이제 긴 명령 행을 실행할 때 다른 터미널로 전환하고 return 키를 누르면 (단순히 실행 $PROMT_COMMAND
하거나 새 터미널 창을 열 수 있음)이 터미널의 히스토리에 액세스 할 수 있습니다. 적중 Up하면 새 터미널에서 실행할 수 있습니다.
$ xclip -o
내가 원하는 것을 인쇄하기 때문에 내가 원하는 것이 아니라고 생각 합니다 xclipe
. 그러나 +1에 대한 Ctrl+A
다음 Ctrl+K
과 Ctrl+Y
같은 단말기에 최소한으로 잘라내어 붙여 넣는.
@evilsoup은 좋은 해결책을 제안했지만 자주 중단됩니다.
끊임 없는 해결책 은 다음과 같습니다 .
history | tail -2 | head -1 | xclip -selection clipboard
이 명령을 실행하면 방금 실행 한 명령이 클립 보드에 복사됩니다.
기본적으로 명령 내역을 인쇄하고 두 번째 마지막 명령을 가져와 클립 보드에 공급합니다 (마지막 명령은 이것 자체이므로 두 번째 마지막 명령을 선택합니다).
빠른 솔루션을 개발할 때, 내가 작성한 작은 기능은 꽤 똑똑하고 마지막으로 사용한 명령을 복사합니다. 마지막 인수를 복사하기 위해 숫자 인수를 제공 할 수도 있습니다. 예를 들어 두 번째 마지막 명령을 복사하기 위해 2
인수로 제공
myclipcopy () {
if [ -z $1 ]
then # if no argument was provided then just copy the last used command
history | tail -2 | head -1 | sed -re 's/[[:space:]]+[[:digit:]]+[[:space:]]+//g' | xclip -selection clipboard
echo 'Anyways, the following command has been copied:'
history | tail -2 | head -1| sed -re 's/[[:space:]]+[[:digit:]]+[[:space:]]+//g'
else
myindex=$(( $1+1 ))
history | tail -$myindex | head -1 | sed -re 's/[[:space:]]+[[:digit:]]+[[:space:]]+//g' | xclip -selection clipboard
echo "The following command has been copied:"
history | tail -$myindex | head -1 | sed -re 's/[[:space:]]+[[:digit:]]+[[:space:]]+//g'
fi
#Delete this command itself from the history
myhisnum=$(history | tail -1 | grep -oP '\s\d+\s' | grep -oP '\d+'); history -d $myhisnum
}
위의 기능을 ~/.bashrc
파일 에 복사하여 붙여 넣습니다 . 이 파일을 별도의 bash 스크립트 파일에 넣고 스크립트를 실행하면 history 명령이이 경우 히스토리에 액세스 할 수 없으므로 작동하지 않습니다.
마지막으로 다음과 같이 실행하십시오.
myclipcopy 3
# This copies the third-last command
또한이 기능에 추가 된 멋진 기능 중 하나는 실행 후 기록에서 자신을 삭제한다는 것입니다. 이는 명령의 "뒤로"색인이 변경되지 않기 때문에 유용합니다.
screen
. 두 번째로 높은 평점 대답은 가정했다 bash
및 linux
. 또한 bash
스크립트가 zsh 또는 대부분의 다른 쉘에서 여전히 작동하기 때문에 가정하는 것이별로 중요하지 않습니다.
이 명령은 bash의 히스토리 확장을 사용하므로 !!
터미널에 입력 한 마지막 행으로 확장됩니다. 당신은 아마 중 하나를 설치해야합니다 xclip
나 xsel
.
echo "!!" | xclip -selection clipboard
echo "!!" | xsel -i --clipboard
마지막 명령이 Ctrl+ v클립 보드에 저장되므로 모든 GUI 프로그램 (또는 대부분의 터미널 에뮬레이터에서 Ctrl+ Shift+ v또는 "+p
vim) 에 붙여 넣을 수 있습니다 .
큰 따옴표가 포함 된 일부 줄의 경우 다음과 같습니다.
$ 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
그것은 당신이 예제로 준 명령에 효과가 있습니다. 큰 따옴표가 이스케이프 처리되는 경우에만 문제가 있습니다 ;
&
&&
|
||
.
echo !!
(이전 명령하는 황당한 경우를 제외하고는 완벽하게 작동 시작 으로 -n
하거나 -e
또는 그 몇 가지 다른 옵션 echo
자체가 소요).
아마도 가장 편리한 솔루션은 아니지만 사용하기 때문에 추가 소프트웨어를 추가로 설치하지 않아도 다른 사람들에게 도움이 될 수 있습니다.
편리한 디렉토리에서 임시 파일을 작성해야합니다.
필요한 방향이나 텍스트를 해당 파일로 전송하십시오. 방향 전환을 위해 사용할 수 있습니다
echo $(pwd) 1> tempo
파일 사용 명령에서 지시를 받으려면
cd $(tail -n 1 tempo)
복사 및 붙여 넣기 명령의 경우이 시스템은 물론 작동합니다. 도움이 되었으면하는 희망