Skrypt lub program uruchamiający, aby skonfigurować wiele kart terminali w różnych lokalizacjach

14

Studiowałem to już jakiś czas temu, ale nie znalazłem żadnego rozwiązania, które otwierałoby karty terminali, uruchamiało niektóre polecenia, a następnie pozwalało mi dalej korzystać z tych kart terminali. Wszystkie sposoby, w jakie znalazłem uruchamianie kart terminalu z wiersza poleceń, tylko uruchamiały karty i nie pozwalały mi na dalsze ich używanie.

Problem, który próbuję rozwiązać, polega na tym, że za każdym razem, gdy muszę uruchomić komputer (w tym przypadku maszynę wirtualną), muszę skonfigurować około sześciu różnych kart terminali, aby wskazywać różne foldery i eksportować niektóre zmienne środowiskowe na niektórych z nich.

Eksperymentowałem z terminalem xfce i znalazłem sposób na takie polecenie:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab

Ale jeśli dodam argument polecenia, karta nie będzie już użyteczna po otwarciu:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab --command="cd ~/folder1"

http://docs.xfce.org/apps/terminal/command-line

Obecnie używam Red Hat Linux z gnome 2.28.2.

użytkownik232548
źródło

Odpowiedzi:

18

Możesz to zrobić za pomocą, GNOME terminatorktóry jest doskonałym terminalem, między innymi z możliwością podziału paneli w poziomie lub w pionie.

Po zainstalowaniu terminatormożesz skonfigurować profil z żądanymi ustawieniami (instrukcje dostosowane tutaj ):

  1. Uruchom terminatori skonfiguruj odpowiedni układ. Możesz użyć Ctrl+ Shift+, Eaby podzielić okna w pionie, a Ctrl+ Shift+ O(to O jak w bryłach, a nie zero), aby podzielić w poziomie. W tym przykładzie utworzyłem układ z 6 oknami:

    wprowadź opis zdjęcia tutaj

  2. Kliknij terminatorokno prawym przyciskiem myszy i wybierz „Preferencje”. Po otwarciu okna Preferencji przejdź do „Układów” i kliknij „Dodaj”:

    wprowadź opis zdjęcia tutaj

  3. Spowoduje to zapełnienie listy Układ nowym układem:

    wprowadź opis zdjęcia tutaj

  4. Znajdź każdy z terminali, który utworzyłeś w układzie, i kliknij na nich, a następnie po prawej stronie wprowadź polecenie, które chcesz uruchomić na nich podczas uruchamiania:

    wprowadź opis zdjęcia tutaj

    WAŻNE: Zauważ, że po poleceniu następuje ; bash. Jeśli tego nie zrobisz, terminale nie będą dostępne, ponieważ uruchomią polecenie, które wydasz i zakończ. Musisz uruchomić powłokę po każdym poleceniu, aby móc korzystać z terminali.

    Po ustawieniu wszystkich poleceń kliknij „Zamknij”, a następnie zakończ terminator.

  5. Otwórz terminatorplik konfiguracyjny ~/.config/terminator/configi usuń sekcję pod układami dla domyślnej konfiguracji. Następnie zmień nazwę utworzonego układu na domyślny. Powinno to wyglądać mniej więcej tak:

    [global_config]
    [keybindings]
    [profiles]
      [[default]]
    [layouts]
      [[default]]
        [[[child0]]]
          position = 446:100
          type = Window
          order = 0
          parent = ""
          size = 885, 550
        [[[child1]]]
          position = 444
          type = HPaned
          order = 0
          parent = child0
        [[[child2]]]
          position = 275
          type = VPaned
          order = 0
          parent = child1
        [[[child5]]]
          position = 219
          type = HPaned
          order = 1
          parent = child1
        [[[child6]]]
          position = 275
          type = VPaned
          order = 0
          parent = child5
        [[[child9]]]
          position = 275
          type = VPaned
          order = 1
          parent = child5
        [[[terminal11]]]
          profile = default
          command = 'df -h; bash'
          type = Terminal
          order = 1
          parent = child9
        [[[terminal10]]]
          profile = default
          command = 'export foo="bar" && cd /var/www/; bash'
          type = Terminal
          order = 0
          parent = child9
        [[[terminal3]]]
          profile = default
          command = 'ssh -Yp 24222 [email protected]'
          type = Terminal
          order = 0
          parent = child2
        [[[terminal4]]]
          profile = default
          command = 'top; bash'
          type = Terminal
          order = 1
          parent = child2
        [[[terminal7]]]
          profile = default
          command = 'cd /etc; bash'
          type = Terminal
          order = 0
          parent = child6
        [[[terminal8]]]
          profile = default
          command = 'cd ~/dev; bash'
          type = Terminal
          order = 1
          parent = child6
    [plugins]
    

Ostateczny wynik jest taki, że po uruchomieniu terminatorotworzy się z 6 oknami, z których każde uruchomiło lub uruchomiło podane polecenia:

wprowadź opis zdjęcia tutaj

terdon
źródło
Po wpisaniu poleceń w Custom commandpolu i naciśnięciu przycisku Zamknij nie jest ono zapisywane po ponownym otwarciu. Czy mogę wiedzieć dlaczego? Używam Ubuntu 16 Desktop
Nam G VU
@NamGVU hmm, właśnie przetestowałem i mam ten sam problem. Wygląda jak błąd w bieżącej wersji terminatora (działało to 3 lata temu, kiedy opublikowano tę odpowiedź). Nadal działa, jeśli edytujesz ~/.config/terminator/configplik, jak pokazano w kroku 5.
terdon
2

Aby Terminator cdznalazł się w katalogu podczas uruchamiania, polecenie do skonfigurowania to:

cd ~/someFolder; bash

Spowoduje to otwarcie terminala w lokalizacji cdedytowanej do.

Właściwie terdon wspomina o tym w swoim poście, ale jest on pochowany w jego cudownym mini-tutorialu. Dopiero po tym, jak to wymyśliłem, zauważyłem, że jest ukryty w swoim poście, więc zostawiam tę odpowiedź, aby podkreślić.

dotancohen
źródło