한 터미널에 명령을 쓰고 다른 터미널에 결과를보십시오


답변:


46

그렇습니다. 천 단어의 가치가있는 그림 :

라두의 터미널

따라서 >operator를 사용하여 명령의 출력을로 리디렉션해야 합니다 /dev/pts/#. 또는 명령을 #사용하여 찾을 수 있습니다 . tou를 리디렉션하고 오류를 원하면 다음을 사용하십시오.whow

<command> >& /dev/pts/#

감사. 그러나 다른 터미널이 존재하지 않는 경우. 우리는 무엇을해야합니까? 아니면 새로운 것으로 전달하는 것이 더 낫습니까?
모하마드 레자 레즈 와니

5
이를 위해서는 스크립트가 필요할 것입니다. 스크립트는 명령을 인수로 취한 다음 새 명령을 열고 새 gnome-terminal터미널의 tty ( tty명령 사용 )를 감지 하여 출력을 보내야합니다.
Radu Rădeanu

8

당신을 위해 이와 같은 것 $HOME/.bashrc:

ng() { gnome-terminal -x sh -c "$*; bash"; }

명령이 실행되고 새 터미널 창에 결과가 표시됩니다.

예 :

ng ls -l
ng echo foo

편집 :$HOME/.bashrc 대신 별칭을 사용 하려면 다음 을 사용하십시오.

ng() { gnome-terminal -x bash -ic "$*; bash"; }

그런 다음 출력을 ls채색해야합니다 (이 힌트에 대해 Radu Rădeanu에게 감사드립니다 ).


새 터미널에서 직접 명령을 실행합니다.
Radu Rădeanu

예. 그러나 이전 터미널에서 먼저 실행하면 어떤 이점이 있습니까?
TuKsn

이점은 없지만 실제로이 의견에 대한 답변 입니다.
Radu Rădeanu

4
당신이 실행할 경우 이해 type ls다음과 ng type ls:
라두 Rădeanu

1
bashrc에서 한 줄에 함수를 쓰면 세미콜론으로 끝나거나 "예기치 않은 파일 끝"오류가 발생합니다. 그래서 ng() { gnome-terminal -x sh -c "$*; bash" ;}더해야한다. xfce (xfce4-terminal을 기본 에뮬레이터로)를 사용하는 경우 : ng() { xfce4-terminal -x sh -c "$*; bash" ;}또는 기본 에뮬레이터로 간단히 실행할 수 있습니다ng() { x-terminal-emulator -x sh -c "$*; bash";}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.