Terminator: mehrere Linux-Terminals verwalten

Wenn ihr viel mit Linux-Terminals arbeitet, kennt ihr das vielleicht: ihr müsst euch immer wieder auf unterschiedliche Server verbinden und dafür dieselben Befehle immer wieder ausführen. Vielleicht habt ihr auch schon eine Standard-Vorgehensweise, wie ihr euch die Fenster anordnet.

Was ist Terminator?

Beispiel für ein Fenster-Setup mit Terminator von der offiziellen Website

Jedenfalls ist das bei mir so. Um mir die Arbeit zu erleichtern, verwende ich unter Ubuntu den Terminal-Emulator Terminator. Hinter dem martialischen Namen verbirgt sich ein Tool, mit dem man erstens schnell Terminals nebeneinander öffnen und anordnen kann, zweitens kann man das aber auch skripten.

Beispiel für Skripting mit Terminator

Ein Screenshot wie oben zu sehen ist schön anzusehen (zumindest wenn man die Retro-Optik eines Terminals mag, aber nachdem du hier bist, hoffe ich dass das zutrifft ;-)), aber nur eine Demo und nicht unbedingt hilfreich.

Daher hier ein kurzes Beispiel, wie ich die Skripting-Funktionalität von Terminator verwende, um mir die tägliche Arbeit zu erleichtern:

  • Ich habe mir ein spezielles Layout erstellt für den Anwendungsfall, dass ich bei einem Magento-Kunden einen akuten Fehler im Live-System debuggen muss.
  • Der Kunde hat drei Live-Server. In Magento gibt es außerdem zwei relevante Verzeichnisse für Fehlermeldungen. Das macht insgesamt sechs Verzeichnisse, die ich direkt im Blick haben möchte. (Je nach Fehler können natürlich auch Infos zur Load, Disk-Space usw. usf. interessant sein.)
  • Das Layout habe ich deswegen so gescriptet, dass es sechs gleich große Terminals nebeneinander gibt. Drei in der oberen Reihe, drei in der unteren. Jede Spalte entspricht einem Server.
  • In jedem Fenster verbindet sich Terminator automatisch per SSH auf den richtigen Server.
    Dann wird in das jeweilige Verzeichnis gewechselt und je nach Verzeichnis entweder die zwanzig oder dreißig zuletzt geänderten Log-/Report-Files angezeigt.
    Zuletzt initialisiere ich eine Bash-Shell, damit ich in dem Verzeichnis bei Bedarf weitere Untersuchungen anstellen kann.
  • Jedes Terminal enthält einen Fenster-Titel, damit ich weiß, wo ich da gerade bin (z.B. „Live 1 Logs“ oder „Live 2 Reports“).
  • Außerdem habe ich für diese Terminals ein spezielles „Profil“ angelegt. In einem Profil kann man z.B. das Aussehen des Fensters verändern. Hier habe ich die Schriftgröße angepasst, damit alles was ich benötige auf einen FullHD-Screen passt. In anderen Setups unterscheide ich z.B. anhand der Hintergrundfarbe zwischen Terminals in meiner lokalen Entwicklungsumgebung und Test-, Staging- oder Live-Systeme.
  • Zuletzt habe ich mir in Ubuntu einen .desktop-Eintrag erstellt, damit ich über den Launcher direkt dieses Layout starten kann. Somit bin ich innerhalb von wenigen Sekunden mitten im Debugging.

Den Konfigurations-Code oder einen Screenshot kann ich an der Stelle leider nicht bieten, denn das Beispiel ist sehr speziell und der Kunde hat gerne seine Privatsphäre. 🙂 Wenn es euch interessiert, schreibt mir aber bitte in den Kommentaren und ich bastle etwas „Unverfängliches“ zusammen.

Ein Tipp vorab: ich verwende das GUI von Terminator nur, um das Fenster-Layout zusammen zu bauen. Den Rest der Konfiguration, den ich erwähnt habe, bearbeite ich direkt im File ~/.config/terminator/config. Da ist Terminator leider meiner Erfahrung nach nämlich leider recht buggy, auch wenn das Tool schon viele Jahre alt ist.

…und noch viel mehr

Damit haben wir nur einen kleinen Teil der Terminator-Features ausgenutzt. Spielt doch einmal damit herum.

Wenn ihr Terminator bereits verwendet, freue ich mich über eure Kommentare, wie ihr das Tool einsetzt!