Erlaubt mir ein (letzter) Linux-Terminal-Emulator das Speichern meiner Sitzung (Registerkarten, Verlauf usw.)?

2861
srking

Im Laufe der Zeit werde ich in meine Terminalsitzungen investiert: Registerkarten, Befehlsverlauf, Fensterlayout und Titel usw. Bei einem Neustart muss ich von vorne beginnen, was meine Zeit verschwendet.

Die beiden mir bekannten Terminal-Emulatoren waren hier zumindest teilweise einsetzbar, die Funktionalität wurde jedoch inzwischen entfernt: konsole hat diese Funktionalität irgendwann auf dem Weg zu KDE4 verloren. gnome-terminal hat die Option --save-config irgendwo vor Version 3.10.2 als "veraltet" verloren, dh die Antwort hier gilt nicht mehr: Speichern mehrerer gnome-terminal-Layouts?

Ich möchte den aktuellen Status aller Terminalsitzungen erfassen und nach einem Neustart wiederherstellen. Eine Skriptlösung ist in Ordnung, solange keine manuellen Aktualisierungen erforderlich sind, um Sitzungsänderungen nachzuverfolgen.

6
Definiere "state". Wenn Sie beispielsweise eine Datei mit "less" lesen, möchten Sie, dass diese Datei beim nächsten Öffnen Ihres Terminals in Erinnerung bleibt, oder möchten Sie nur, dass die Registerkarten / Fenster eingerichtet und die entsprechenden Programme gestartet werden? Würde so etwas wie meine [Antwort hier] (http://superuser.com/a/610048/151431) für Sie funktionieren? terdon vor 9 Jahren 1
Status bedeutet: Fenster, Registerkarten, Befehlsverlauf, Fensterlayout, Fenster- und Registerkartentitel. Ich muss den Status für beliebige Prozesse in der Terminalsitzung nicht speichern, z. B. "less". Sogar bash braucht hier ein wenig Koaxing, da die Befehlsgeschichte nicht pro Instanz ohne Tricks gespeichert wird. Ich werde Ihren Link überprüfen. Die nächsten, die ich bisher gefunden habe, sind die Lesezeichen der Konsole. srking vor 9 Jahren 1
In diesem Fall kann "terminator" dies tun, wie ich es in dem Link erkläre, den ich in meinem vorherigen Kommentar angegeben habe. Lass es mich wissen, wenn du noch etwas brauchst und ich werde es entsprechend anpassen und als neue Antwort hier posten. Wenn nicht, werde ich dafür stimmen, dies als Duplikat zu schließen. terdon vor 9 Jahren 0
@ terdon, danke, ich bin froh über terminator Bescheid zu wissen. Nach kurzem Experimentieren gibt es für mich Mängel: (1) speichert die Bash-Historie nicht pro Shell und (2) kann keine Tabs umbenennen? Ich vermute, ich kann nicht tun, was ich will, ohne fragile Skripte zu rollen. srking vor 9 Jahren 1
1) Nichts speichert die Bash-Historie pro Shell. So funktioniert das nicht, das hängt nicht vom Terminal-Emulator ab, sondern von der `history'-Funktion von bash selbst. Wie würde das funktionieren? Möchten Sie, dass der Befehl 'history' in den einzelnen Fenstern unterschiedliche Ausgaben liefert? Wenn ja, dann nein. 2) Ja, es benennt sie nicht. Sie könnten etwas mit einem "echo -ne" \ 033] 0; FOO \ 007 "ausarbeiten, der den Titel auf" FOO "setzen würde, aber ich glaube nicht, dass der Terminator selbst dies tun kann (der Befehl ist terminalagnostisch, es ist ein bashism. Weitere Informationen finden Sie [hier] (http://tldp.org/HOWTO/Xterm-Title-4.html)) terdon vor 9 Jahren 0
@terdon: Ja, bash-isms sind für das Speichern / Wiederherstellen von Historien erforderlich. Dies kann jedoch funktionieren, wenn jede Bash-Shell ihre eigene eindeutige HISTFILE hat. Das Terminalprogramm könnte diesbezüglich Abhilfe schaffen, indem die Befehle zum Einrichten des Verlaufs beim Start ausgeführt werden. Es sieht so aus, als ob Terminator das Per-Shell-Starten zulässt, aber es ist ein hirn- und arbeitsintensiver Prozess für Anfänger. Eine über eine GUI geführte Dosenlösung wäre ideal. srking vor 9 Jahren 1
Ah ja, ich verstehe was du meinst. Sie müssen für jede Registerkarte HISTFILE = 'foo'` exportieren. Entschuldigung, keine Ahnung von einer GUI-Methode, ich musste das nie tun. Wenn Sie nach einiger Zeit keine nützlichen Antworten erhalten, markieren Sie die Mod-Aufmerksamkeit und bitten Sie sie, zu [unix.se] zu wechseln. Sie könnten dort mehr Glück haben. Stellen Sie sicher, dass Sie die Klarstellungen, die Sie in den Kommentaren angegeben haben, genau angeben, was genau Sie benötigen. terdon vor 9 Jahren 0
Ich habe genau das schon lange gesucht. Ich habe genau das gleiche Problem wie das OP - ich habe seit Monaten 20-30 Registerkarten, dann muss ich neu starten und ich möchte nicht alle Registerkarten, den Verlauf, Pfadaufforderungen usw. verschwenden. Aber ich denke, das ist das, was offen ist -source geht es darum, wir können Terminator nehmen und die HISTFILE-Elemente pro Registerkarte hinzufügen :) BjornW vor 9 Jahren 0

3 Antworten auf die Frage

1
sgp667

Dies ist nicht genau das, wonach Sie gefragt haben, tmuxverfügt jedoch über solche Fähigkeiten.

Stellen Sie einfach sicher, dass Sie das tmux-resurrect- Plugin zusammen mit diesem installieren, wodurch die tmux-Umgebung (Windows, Splits und bestimmte laufende Programme) nach einem Neustart wiederhergestellt werden kann.

Tmux funktioniert auf jeden Fall mit allen

1
pulse

Hier ist eine xfce-Terminalspalte, mit der Sie die Sitzung nur über das Menü speichern / wiederherstellen können: https://github.com/repu1sion/xfce4-terminal

0
Kaurin

Ich denke, das ist nicht wirklich eine Antwort auf Ihre Frage, aber so hatte ich es eingerichtet:

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

In diesem Skript öffne ich beispielsweise 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 stark verwendet, um bestimmte Host-SSH-Parameter wiederzugeben. Wenn Sie eine Ausnahme benötigen, übergeben Sie die Parameter im Skript gnome-terminal an SSH. Dies hat Vorrang vor der SSH-Konfigurationsdatei.

Um einfache Befehle wie "ssh machine" auszuführen, müssen Sie keine Shell (sh -c) ausführen. Es ist erforderlich, um Umleitungen und Pipelining, Platzhaltererweiterung, Bedingungen usw. auszuführen, jedoch nicht für die Ausführung einfacher Befehle. Raúl Salinas-Monteagudo vor 9 Jahren 0