it-swarm-eu.dev

Automatisieren des Startens von Terminalinstanzen für bestimmte Aufgaben

Ich lerne einige Programmier-Tutorials kennen und muss für jede Sitzung mindestens 3 Terminalfenster starten (eines für einen Protokolldateischwanz, eines zum Testen der Ausgabe, eines zum Ausführen verschiedener Shell-Befehle usw.).

Im Moment starte ich sie alle manuell: Klicken Sie auf das Terminal-Symbol, wechseln Sie in den richtigen Ordner, geben Sie die Befehle ein und ändern Sie den Fenstertitel in einen aussagekräftigen.

Gibt es eine Möglichkeit, ein Skript zu schreiben oder etwas, das das für mich automatisiert? Und wenn ja, wie?

(Ich finde es cool, wenn ich kein vollständiges Skript als Antwort bekomme. Ein Zeiger, wo ich anfangen soll zu lesen, würde auch funktionieren.)

10
Adam Lear

Da Sie auf das Terminal-Symbol klicken, verwenden Sie vermutlich gnome-terminal.

Ich habe eine Liste von Optionen erhalten, indem ich gnome-terminal --help in der Befehlszeile verwendet und von dort gelesen habe.

Aufbauend auf Macos Antwort könnte ich Folgendes vorschlagen:

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

In diesem Beispiel werden drei Fenster gestartet (obwohl Sie --tab für Registerkarten übergeben könnten) und die Arbeitsverzeichnisse (relativ zur Startseite) und Titel für jedes Fenster festgelegt. Anschließend wird der Befehl tail in einem Fenster gestartet und das dritte Fenster aktiviert.

Natürlich können Sie es vorziehen, separate Zeilen zu verwenden, um jedes Fenster zu starten, insbesondere wenn Sie viele Argumente haben.

Eine andere nützliche Sache, die Sie tun können, wenn Sie Ihre Fenster nach Ihren Wünschen angeordnet haben, ist die Verwendung

gnome-terminal --save-config=FILE

Dadurch wird eine Konfigurationsdatei mit Informationen zu allen geöffneten Terminalfenstern und -registern (einschließlich der Titel, Arbeitsverzeichnisse usw.) erstellt. Wenn Sie gnome-terminal mit der Option --load-config starten, wird Ihr Layout neu erstellt.

Viele Entwickler, die mit mehreren Terminals arbeiten, verwenden gerne Terminator , da es Funktionen wie ein Rasterlayout und Tastenkombinationen hinzufügt.

9
jbowtie

Unabhängig davon, welchen Terminalemulator Sie verwenden, sollte ein Befehl als Argument akzeptiert werden können. Zum Beispiel:

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

Fügen Sie solche Befehle einfach zu Ihrem Autostart unter System -> Einstellungen -> Sitzungen (Ubuntu) oder Systemeinstellungen -> Autostart (Kubuntu) hinzu.

8
maco

Sie können dies auch mithilfe eines Skripts automatisieren. Ich empfehle, das Advanced Bash Scripting Guide oder das Bash Programming HOWTO zusammen mit der Manpage für das von Ihnen verwendete Terminal zu lesen.

Hier ist ein einfaches Beispiel:

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

Dann mach es einfach ausführbar:

$ chmod +x your-script
4
anonymous