gnome-terminal을 사용하여 여러 탭 열기


16

Rails 스택, rails, spork 및 autotest에서 3 개의 서비스를 여는 명령을 작성하려고합니다. 3 개의 터미널을 열고 앱 폴더로 이동하여 실행하여 이러한 명령을 개별적으로 실행할 수 있습니다. 3 개의 새 탭을 열고 각 탭에서 명령을 실행할 수도 있습니다.

문제는 다음과 같이 그놈 터미널을 통해 탭을 열려고하면 실패한다는 것입니다.

gnome-terminal --tab --title="rails s" -e "rails s" --tab --title="spork" -e "spork" --tab --title="autotest" -e "autotest"

오류 (포자와 자동 테스트의 경우) :

There was an error creating the child process for this terminal
Failed to execute child process "spork" (No such file or directory)

놀랍게도 '레일 s'에서 작동합니다 (탭은 서버가 실행 중임을 나타냅니다).

어떤 아이디어?

답변:


9

아래는 stackoverflow.com 의 답변입니다.

  1. eval "$BASH_POST_RC".bashrc 끝에 a 를 추가 하십시오.

  2. BASH_POST_RC각 탭 의 환경 변수를 다음과 같이 실행하려는 명령으로 설정하십시오 . gnome-terminal --working-directory="/home/zardoz/projects/my_rails_app" --tab -e 'bash -c "export BASH_POST_RC=\"rails server\"; exec bash"' --tab -e 'bash -c "export BASH_POST_RC=\"autotest\"; exec bash"'


15

gnome-terminal세 번 호출 하고 명령을 함께 묶으면 작동 && 하지 않으며 탭이 동일한 터미널에 나타나지 않으므로 실제로 다음 터미널을 표시하려면 첫 번째 터미널을 종료해야합니다.

한 번에 gnome-terminal모든 탭을 동시에 여는 방법은 --tab-with-profile=PROFILENAME스위치 를 사용하는 것 입니다. 아래 명령에서 첫 번째 명령 gnome-terminal --tab이 생성되는 첫 번째 창인 것처럼 첫 번째 명령을 그대로 둘 수 있습니다 . 이제 당신이 알아야 할 것은 사용중인 프로파일이며 --tab-with-profile=YourProfile다른 명령을 호출하는 데 사용할 수 있으며 열린 원래 터미널에 모두 한 번에 나타납니다.

명령이 수정되었습니다 :

gnome-terminal --tab --title="rails s" -e "rails s" --tab-with-profile=Default --title="spork" -e "spork" --tab-with-profile=Default --title="autotest" -e "autotest"

(미래의 리더를 들어 : 후 주어진 프로그램 이름으로 대체 -e여기에 주어진 명령 줄 테스트 할을;에 대한 귀하의 목표를 기억 -e설치되어 있어야하며에서 $PATH, 것들을하지에 $PATH사용 절대 경로를 같은, 예를 들어 /opt/mike/program)

--tab-with-profile스위치에 사용중인 실제 프로파일을 지정하십시오 . 첫 번째 호출은 나머지 를 gnome-terminal사용해야합니다 . 이 방법을 사용하면 동일한 인스턴스에서 많은 수의 탭을 열 수 있습니다 .--tab--tab-with-profilegnome-terminal

마우스 오른쪽 버튼을 클릭하여 현재 사용중인 프로필을 찾아서 프로필을 보면 현재 사용중인 gnome-terminal프로필에 마커가 표시됩니다.

여기에 이미지 설명을 입력하십시오

자세한 정보 및 프로파일 이름을 확인하려면 프로파일 환경 설정으로 이동하십시오.

자세한 내용은 man gnome-terminalUbuntu 맨 페이지 온라인을 참조하십시오 .


참고 :

로 프로그램을 시작하는 데 문제가 있으면 gnome-terminal에 위치를 추가 $PATH하거나 심볼릭 링크를 만들어 위치에 배치하십시오 $PATH(또는 여기에서 매우 유용한 것). 간단한 bash 래퍼 스크립트를 만들고 gnome-terminal위 의 명령 줄 에서 호출하십시오 . ( /location/of/script이름 만 아니라 절대 경로로 호출해야 합니다.)

예로서:

#!/bin/bash
cd $HOME/.rvm/gems/ruby-2.0.0-p0/bin 
spork
exit 0

그런 다음 스크립트 이름을 지정하고 실행 가능하게 만들고 gnome-terminal위 의 명령 줄 에서 호출하십시오 . 문제가있는 모든 비리 포 프로그램에 대해이 작업을 수행하십시오.


프로필을 어떻게 알 수 있습니까? (기본, 내 사용자 이름 및 ~ / .profile을 사용해 보았습니다)
Manuel

기본이라고 표시되어 있지만 --tab-with-profile = Default를 사용하여 동일한 오류가 발생합니다.
Manuel

@Manuel 다른 가능성은 목표 명령이 당신의 안에 있지 않을 수도 있습니다 $PATH; spork절대 경로로 다른 곳의 위치를 ​​지정하십시오 .

내가 사용하는 명령은 gnome-terminal --tab --title = "rails s"-e "rails s"--tab-with-profile = Default --title = "spork"-e "spork"- tab-with-profile = Default --title = "autotest"-e "autotest"(답변에서 복사 / 붙여 넣기). $ PATH에 관하여, 이것이 문제라면 왜 메뉴를 통해 열린 탭에서 작동합니까?
Manuel

@Manuel 귀하의 질문에서 말하는 것처럼 "앱 폴더"로 이동하여 거기에서 실행해야합니다 $PATH. 대답의 방법은 모든 gnome-terminal창 에 설치된 모든 명령 줄 프로그램을 같은 창 에서 다른 탭으로 시작하는 데 사용하는 방법이며 다른 프로그램이 $ PATH에 있기 때문에 항상 작동합니다.

0

gnome-terminal --tab -- sh -c "python3 'test.py' ; bash"

이 코드는 파이썬 스크립트를 실행하는 터미널에서 새 탭을 열고 끝났을 때이 코드의 끝에 'bash'를 추가했기 때문에이 새 탭이 닫히지 않습니다 ...

여러 번 원한다면 bash 스크립트에서 while 루프에 넣으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.