Kann ich meine Sitzung (Tabs, Verlauf usw.) mit einem (aktuellen) Linux-Terminalemulator speichern?

6

Mit der Zeit investiere ich in meine Terminalsitzungen: Registerkarten, Befehlsverlauf, Fensterlayout und -titel usw. Nach einem Neustart muss ich wieder von vorne beginnen, was meine Zeit verschwendet.

Die beiden mir bekannten Terminalemulatoren waren hier zumindest teilweise funktionsfähig, aber die Funktionalität wurde inzwischen entfernt: konsole hat diese Funktionalität auf dem Weg zu KDE4 verloren. gnome-terminal hat irgendwo vor Version 3.10.2 die Option --save-config als "obsolet" verloren, dh die Antwort hier gilt nicht mehr: Mehrere gnome-terminal-Layouts speichern?

Ich möchte den aktuellen Status aller Terminalsitzungen erfassen und nach einem Neustart wiederherstellen. Eine skriptbasierte Lösung ist in Ordnung, sofern keine manuellen Aktualisierungen erforderlich sind, um Sitzungsänderungen zu verfolgen.

srking
quelle
1
Definiere "Zustand". Wenn Sie beispielsweise eine Datei mit lesen less, möchten Sie, dass beim nächsten Öffnen des Terminals dieselbe Datei gespeichert wird, oder möchten Sie nur, dass die Registerkarten / Fenster eingerichtet und die entsprechenden Programme gestartet werden? Würde etwas wie meine Antwort hier für Sie arbeiten?
Terdon
1
Status bedeutet: Fenster, Registerkarten, Befehlsverlauf, Fensterlayout, Fenster- und Tabulatortitel. Ich muss keinen Status für beliebige Prozesse speichern, die in der Terminalsitzung ausgeführt werden, z. B. "less". Sogar Bash muss hier etwas überredet werden, da der Befehlsverlauf nicht ohne einige Tricks pro Instanz gespeichert wird. Ich überprüfe deinen Link. Das nächste, das ich bisher gefunden habe, sind die Lesezeichen der Konsole.
srking
In diesem Fall terminatorkönnen Sie dies tun, wie ich in dem Link erläutert habe, den ich in meinem vorherigen Kommentar angegeben habe. Lassen Sie mich wissen, wenn Sie etwas anderes brauchen und ich werde es entsprechend optimieren und als neue Antwort hier posten. Wenn nicht, werde ich dafür stimmen, dies als Duplikat zu schließen.
terdon
1
@terdon, danke, ich bin froh über terminator Bescheid zu wissen. Nachdem ich kurz experimentiert habe, gibt es für mich Mängel: (1) speichert nicht den Bash-Verlauf pro Shell und (2) kann Tabs nicht umbenennen? Ich vermute, ich kann nicht tun, was ich will, ohne ein paar fragile Skripte zu rollen.
srking
1
@terdon: Ja, zum Speichern / Wiederherstellen des Verlaufs sind Bash-Ismen erforderlich. Dies kann jedoch funktionieren, wenn jede Bash-Shell ihre eigene, eindeutige HISTFILE hat. Das Terminal-Programm könnte diesbezüglich Abhilfe schaffen, indem es die Ausführung von Verlaufs-Setup-Befehlen beim Start zulässt. Es sieht so aus, als ob Terminator das Starten pro Shell erlaubt, aber es ist ein gehirn- und arbeitsintensiver Prozess für Anfänger. Ideal wäre eine Dosenlösung, die über eine grafische Benutzeroberfläche geführt wird.
srking

Antworten:

1

Das ist nicht genau das, wonach Sie gefragt haben, tmuxhat aber solche Fähigkeiten.

Stellen Sie einfach sicher, dass das tmux-resurrect- Plugin installiert ist, damit die tmux- Umgebung (Windows, Splits und bestimmte laufende Programme) nach einem Neustart wiederhergestellt werden kann.

Auf der positiven Seite wird tmux mit allen funktionieren

sgp667
quelle
0

Ich denke, das ist keine wirkliche Antwort auf Ihre Frage, aber so habe ich es eingerichtet:

Eine Reihe von Skripten, die verschiedene "Gnome-Terminal-Voreinstellungen" öffnen würden.

Zum Beispiel öffne ich in diesem Skript das Gnome-Terminal mit drei Registerkarten und rufe SSH mit Parametern in jeder auf.

#!/bin/sh
PATH=/usr/bin:/bin 

gnome-terminal \
--tab -t CustomTabText1 -e 'sh -c "ssh hostname.one"' \
--tab -t CustomTabText2 -e 'sh -c "ssh hostname.two"' \
--tab -t CustomTabText3 -e 'sh -c "ssh hostname.three"'

Ich habe auch die SSH-Konfigurationsdatei verwendet, um bestimmte Host-SSH-Parameter widerzuspiegeln. Wenn Sie eine Ausnahme benötigen, übergeben Sie die Parameter einfach im gnome-terminal-Skript an SSH, das Vorrang vor der SSH-Konfigurationsdatei hat.

Kaurin
quelle
Um einfache Befehle wie "ssh machine" auszuführen, muss keine Shell (sh -c) ausgeführt werden. Es ist erforderlich, um Umleitungen und Pipelining, Platzhaltererweiterungen, Bedingungen usw. auszuführen, nicht jedoch, um einfache Befehle auszuführen.
Raúl Salinas-Monteagudo