Jak zautomatyzować uruchamianie instancji terminalu dla określonych zadań

10

Przechodzę przez kilka samouczków programowania i dla każdej sesji muszę uruchomić co najmniej 3 okna terminali (jedno dla ogona pliku dziennika, jedno do testowania danych wyjściowych, jedno do uruchamiania różnych poleceń powłoki itp.)

Teraz uruchamiam je wszystkie ręcznie: kliknij ikonę Terminala, przejdź do odpowiedniego folderu, wpisz polecenie i zmień tytuł okna na coś znaczącego.

Czy istnieje sposób na napisanie skryptu lub coś, co zautomatyzuje to dla mnie? A jeśli tak, to w jaki sposób?

(Fajnie jest, że nie otrzymałem kompletnego skryptu jako odpowiedzi. Wskaźnik, od którego zacząć czytanie, też by działał).

Adam Lear
źródło

Odpowiedzi:

9

Ponieważ klikasz ikonę Terminala, zakładam, że używasz gnome-terminal.

Mam listę opcji, korzystając gnome-terminal --helpz wiersza polecenia i czytając stamtąd.

Opierając się na odpowiedzi Maco, mogę zasugerować coś takiego:

gnome-terminal --window --title=Log -e "tail -f /var/log/syslog" --window --title=Output --working-directory=output --window --active --title=Dev --working-directory=dev/project

Ten przykład uruchamia trzy okna (chociaż można przejść --tabdo kart) i ustawia katalogi robocze (względem domu) i tytuły dla każdego, uruchamia tailpolecenie w jednym i włącza trzecie okno.

Oczywiście możesz preferować użycie osobnych linii do uruchomienia każdego okna, szczególnie jeśli masz wiele argumentów.

Inną przydatną rzeczą do zrobienia, gdy masz już ustawione okna, jest użycie

gnome-terminal --save-config=FILE

Spowoduje to utworzenie pliku konfiguracyjnego z informacjami o wszystkich otwartych oknach i kartach terminalu (w tym tytuły, działające katalogi i tak dalej). Uruchomienie gnome-terminal z --load-configopcją odtworzy twój układ.

Wielu programistów, którzy pracują z wieloma terminalami, lubi używać Terminatora, ponieważ dodaje on funkcje takie jak układ siatki i skróty klawiaturowe.

jbowtie
źródło
Czy zrobienie tego w ten sposób z flagą -e spowoduje zamknięcie okna zaraz po wykonaniu polecenia? A jeśli tak, to czy można spowodować, że okno pozostanie otwarte?
emf
8

Jakikolwiek emulator terminala, którego używasz, powinien być w stanie zaakceptować polecenie jako argument. Na przykład:

gnome-terminal -e "tail -f /var/log/syslog"

Wystarczy dodać takie polecenia do autostartu w Systemie -> Preferencje -> Sesje (Ubuntu) lub Ustawienia systemu -> Autostart (Kubuntu)

maco
źródło
4

Można to również zautomatyzować za pomocą skryptu. Polecam przeczytanie Advanced Bash Scripting Guide lub Bash Programming HOWTO, wraz ze stroną podręcznika dla dowolnego terminalu, którego używasz.

Oto prosty przykład:

$ vi your-script
#!/bin/bash
gnome-terminal -e "tail -f /var/log/syslog"
gnome-terminal --working-directory=/foo/bar
gnome-terminal --whatever-else

Następnie po prostu spraw, aby był wykonywalny:

$ chmod +x your-script
anonimowy
źródło
nie potrzebujesz exectych wszystkich?
maco
Tak, chyba że terminal gnome jest już uruchomiony, wówczas polecenie po prostu otwiera nowe okno dla drugiego uruchomionego procesu, a następnie zamyka.
LassePoulsen