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ł).

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.


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)


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.