여러 탭이 있는 gnome 터미널을 열고 각 탭에서 일부 명령을 실행합니다.

여러 탭이 있는 gnome 터미널을 열고 각 탭에서 일부 명령을 실행합니다.

이것이 내가 달성하고 싶은 것입니다:

  1. 5개의 탭이 있는 gnome 터미널을 열고 싶습니다.
  2. 각 탭에서 일련의 명령(5~10개 명령)을 자동으로 실행하고 싶습니다.
    첫 번째 탭: 명확한 사례 보기를 설정한 다음 하나 이상의 명령을 실행해야 합니다.
    두 번째 탭: 서버에 로그인하고 일부 명령을 실행해야 합니다.
    세 번째 탭: 실행만 수행해야 합니다. 일부 명령

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab(잘 작동하고 뷰가 설정되었지만 그 이후에는 명령이 실행되지 않습니다)

나는 이것을 시도하고 아래 스크립트에서 실행해 보았습니다.

gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript

#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact 

예제에서 해당 줄을 제거하고 다른 파일에서 스크립트를 호출 하면 exec gnome-terminal --geometry 125x49-0+81 –tab제대로 작동합니다. 서버에 로그인하여 모든 명령을 실행합니다. 누구든지 이 문제를 해결하도록 도와줄 수 있나요?

각 탭에 대해 호출되는 스크립트를 작성하는 것은 옵션이 아닙니다. 각각 5~7개의 탭이 있는 5개의 터미널로 끝나게 되므로 25~30개의 스크립트를 작성해야 합니다(도움이 되는 것보다 비용이 더 많이 듭니다).

답변1

이것은 내 컴퓨터에서 작동하는 것 같습니다.

gnome-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab

-e로 실행된 프로세스는 실행이 끝나면 종료됩니다. 이 경우 bash가 로드되고 전달된 명령을 실행하며 즉시 존재합니다. 사용자 입력을 기다리기 위해 읽기 문을 넣었습니다. 이렇게 하면 이 예에서 볼 수 있듯이 키를 누를 때까지 탭이 닫히지 않습니다. 그렇지 않으면 다른 두 탭이 너무 빨리 실행되고 닫히기 때문에 두 개의 탭만 열려 있는 것처럼 보입니다.

답변2

명령이 완료된 후 bash가 종료되므로 bash명령 후에 다른 인스턴스를 호출하여 대화형 셸을 얻을 수 있습니다.

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"

답변3

다음을 script.sh로 저장하세요.

#!/usr/bin/env bash

me=$(realpath $0)

commands=(
"echo"
"ls -l && echo 'yes'"
"top"
"ps"
)
len=${#commands[@]}

if [ $# -eq 0 ];then
    num=$len
else
    num=$1
fi

n=$((len-num))
command=${commands[$n]}
num=$((num-1))

xdotool key ctrl+shift+t

if [ $num -gt -1 ]; then
    sleep 1; xdotool type --delay 1 --clearmodifiers "$me $num; ${command}"; xdotool key Return;
fi

$PATH에 script.sh를 추가하고 실행하세요.

gnome-terminal -x script.sh

바라보다명령줄을 사용하여 gnome-terminal에서 새 탭을 엽니다..

답변4

GUI를 엄격하게 사용하려면 다음을 수행하십시오.

  1. (종료 문자 입력 후) 터미널 영역을 마우스 오른쪽 버튼으로 클릭하고 탭 열기를 선택하여 원하는 만큼 탭을 엽니다.
  2. 대안: 터미널 영역(제목 표시줄 아님)의 오른쪽 상단에 있는 아이콘을 클릭하고 모두 브로드캐스트를 선택하거나 새 그룹 - 이름 선택을 선택합니다. 각 탭에 대해 이 아이콘을 클릭하고 방금 생성한 그룹을 선택합니다. 아이콘을 클릭하고 선택합니다. 방송 그룹

이제 탭에 입력하는 모든 내용이 모든 탭에 복사됩니다. 브로드캐스트를 끄면 이 기능이 꺼집니다.

변형의 경우 KDE의 konsole을 설치하십시오. 여러 개의 탭을 생성하려면 하단의 여유 공간을 더블클릭하세요. 그런 다음 편집 -> 입력 복사 대상을 선택하고 복사 방법을 선택합니다. 해당 탭에 입력하는 모든 내용(종료자의 "모든 탭"과 반대)은 선택한 모든 탭에 복사됩니다. 입력을 ->None으로 복사하면 기능이 꺼집니다.

마지막 변형은 Clustersh입니다.

이 기능을 사용하는 경우 vi 사용에 매우 주의하십시오(또는 사용하지 마십시오). vi는 원하는 대로 작동하는지 확인하기 위해 특정 키 입력을 해석하는 방법에 대한 구성 가능성이 너무 많습니다. bash의 검색 기록 기능을 사용하는 경우에도 마찬가지입니다(다른 이유로). 모든 터미널 세션에서 동일한 항목을 찾으십시오.

관련 정보